From 7be0dabf8719f7f22a624e875cc94987c5a0f6f6 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Wed, 27 May 2026 14:16:11 -0400 Subject: [PATCH] dto: SignupRequest + empty SignupResponse Request mirrors LoginPostParams (device telemetry); response is empty because all signup outputs live in data_headers (viewer_id, short_udid, udid). MessagePackObject + Key mirrors JsonPropertyName per project convention. Co-Authored-By: Claude Opus 4.7 --- .../Models/Dtos/Requests/SignupRequest.cs | 40 +++++++++++++++++++ .../Models/Dtos/Responses/SignupResponse.cs | 10 +++++ 2 files changed, 50 insertions(+) create mode 100644 SVSim.EmulatedEntrypoint/Models/Dtos/Requests/SignupRequest.cs create mode 100644 SVSim.EmulatedEntrypoint/Models/Dtos/Responses/SignupResponse.cs diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/SignupRequest.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/SignupRequest.cs new file mode 100644 index 0000000..d050adf --- /dev/null +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/SignupRequest.cs @@ -0,0 +1,40 @@ +using MessagePack; +using System.Text.Json.Serialization; + +namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests; + +/// +/// POST /tool/signup request body. Spec: +/// docs/api-spec/endpoints/pre-login/tool-signup.md. Client source: +/// Shadowverse_Code_2026-05-23/Cute/SignUpTask.cs (LoginPostParams). +/// +/// All fields are device telemetry; the server doesn't use them in v1 but still binds them so +/// the request shape matches the spec exactly. +/// +[MessagePackObject] +public class SignupRequest +{ + [JsonPropertyName("device_name")] + [Key("device_name")] + public string DeviceName { get; set; } = ""; + + [JsonPropertyName("client_type")] + [Key("client_type")] + public string ClientType { get; set; } = ""; + + [JsonPropertyName("os_version")] + [Key("os_version")] + public string OsVersion { get; set; } = ""; + + [JsonPropertyName("app_version")] + [Key("app_version")] + public string AppVersion { get; set; } = ""; + + [JsonPropertyName("resource_version")] + [Key("resource_version")] + public string ResourceVersion { get; set; } = ""; + + [JsonPropertyName("carrier")] + [Key("carrier")] + public string Carrier { get; set; } = ""; +} diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/SignupResponse.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/SignupResponse.cs new file mode 100644 index 0000000..b42b94d --- /dev/null +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/SignupResponse.cs @@ -0,0 +1,10 @@ +namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses; + +/// +/// POST /tool/signup response. The interesting outputs (viewer_id, short_udid, udid) all +/// live in data_headers; the data payload is empty. SignUpTask.Parse never +/// reads data. +/// +public class SignupResponse +{ +}