diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/Card/CardCreateRequest.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/Card/CardCreateRequest.cs new file mode 100644 index 0000000..8285231 --- /dev/null +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Requests/Card/CardCreateRequest.cs @@ -0,0 +1,19 @@ +using MessagePack; +using System.Text.Json.Serialization; + +namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests.Card; + +/// +/// POST /card/create. The single payload field is a JSON-encoded STRING (double-encoded — +/// see docs/api-spec/endpoints/post-login/card-create.md). Inner object maps +/// cardId → "<num_to_create>,<client_possession_snapshot>". Both inner values +/// are strings. Same wire format as /card/destruct; CardController parses both with the +/// shared TryParseCardCountDict helper. +/// +[MessagePackObject] +public class CardCreateRequest : BaseRequest +{ + [JsonPropertyName("card_id_number_array")] + [Key("card_id_number_array")] + public string CardIdNumberArray { get; set; } = string.Empty; +} diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/Card/CardCreateResponse.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/Card/CardCreateResponse.cs new file mode 100644 index 0000000..d8d77d5 --- /dev/null +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/Responses/Card/CardCreateResponse.cs @@ -0,0 +1,20 @@ +using MessagePack; +using SVSim.EmulatedEntrypoint.Models.Dtos; +using System.Text.Json.Serialization; + +namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.Card; + +/// +/// /card/create response data. reward_list entries are POST-STATE TOTALS (the client's +/// PlayerStaticData.UpdateHaveUserGoodsNumByJsonData does direct assignment). One +/// RewardType=1 RedEther entry plus one RewardType=5 Card entry per crafted cardId, +/// plus cascade entries for any CardCosmeticReward rows attached to the crafted cards. +/// +[MessagePackObject] +public class CardCreateResponse +{ + [JsonPropertyName("reward_list")] + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + [Key("reward_list")] + public List RewardList { get; set; } = new(); +}