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 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-05-27 14:16:11 -04:00
parent 859980af02
commit 7be0dabf87
2 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
/// <summary>
/// <c>POST /tool/signup</c> request body. Spec:
/// <c>docs/api-spec/endpoints/pre-login/tool-signup.md</c>. Client source:
/// <c>Shadowverse_Code_2026-05-23/Cute/SignUpTask.cs</c> (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.
/// </summary>
[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; } = "";
}

View File

@@ -0,0 +1,10 @@
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses;
/// <summary>
/// <c>POST /tool/signup</c> response. The interesting outputs (viewer_id, short_udid, udid) all
/// live in <c>data_headers</c>; the <c>data</c> payload is empty. <c>SignUpTask.Parse</c> never
/// reads <c>data</c>.
/// </summary>
public class SignupResponse
{
}