using MessagePack; using System.Text.Json.Serialization; namespace SVSim.EmulatedEntrypoint.Models.Dtos; /// /// Per-link entry in transition_account_data. Production sends three string fields per /// entry even though GameStartCheckTask.Parse only reads social_account_type. /// The extra two are read by adjacent tasks (GetGameDataByTransitionCode, /// GetGameDataBySocialAccountTask) 窶・kept here so the wire matches prod regardless of /// which task ends up consuming the payload. /// [MessagePackObject] public class TransitionAccountData { /// /// The social provider's account id (e.g. SteamID as a string). Sent as string on the wire. /// [JsonPropertyName("social_account_id")] [Key("social_account_id")] public string? SocialAccountId { get; set; } /// /// Cute/CuteNetworkDefine.ACCOUNT_TYPE enum, **sent as string** on the wire even /// though it's numeric. GameStartCheckTask.Parse calls .ToInt() on it so /// LitJson coerces transparently 窶・but matching prod's string form makes us safer against /// future client paths that might compare it as a literal. /// 1=GooglePlay, 2=GameCenter, 3=Facebook, 4=DMM, 5=Steam, 6=AppleID. /// [JsonPropertyName("social_account_type")] [Key("social_account_type")] public string? SocialAccountType { get; set; } /// /// The viewer id this social connection is linked to. Sent as string. /// [JsonPropertyName("connected_viewer_id")] [Key("connected_viewer_id")] public string? ConnectedViewerId { get; set; } }