using System.Text.Json.Serialization; using MessagePack; namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.ItemPurchase; /// /// /item_purchase/info response. /// /// item_purchase_info is an array of catalog entries with per-viewer rest /// (PurchaseLimit minus the viewer's counter for the relevant period). /// /// /// user_card_pack_ticket_list is the FULL set of card-pack-ticket items (catalog /// Items.Type == 2) joined with the viewer's owned counts — even zero counts are emitted, as /// the client's parser unconditionally calls PlayerStaticData.UpdateItemNum(item_id, number) /// for every entry to refresh its in-memory mapping. /// /// [MessagePackObject] public class ItemPurchaseInfoResponse { [JsonPropertyName("item_purchase_info")] [Key("item_purchase_info")] public List ItemPurchaseInfo { get; set; } = new(); [JsonPropertyName("user_card_pack_ticket_list")] [Key("user_card_pack_ticket_list")] public List UserCardPackTicketList { get; set; } = new(); } [MessagePackObject] public class ItemPurchaseEntryDto { [JsonPropertyName("purchase_id")] [Key("purchase_id")] public int PurchaseId { get; set; } [JsonPropertyName("require_item_type")] [Key("require_item_type")] public int RequireItemType { get; set; } [JsonPropertyName("require_item_id")] [Key("require_item_id")] public long RequireItemId { get; set; } [JsonPropertyName("require_item_num")] [Key("require_item_num")] public int RequireItemNum { get; set; } [JsonPropertyName("purchase_name")] [Key("purchase_name")] public string PurchaseName { get; set; } = string.Empty; [JsonPropertyName("purchase_item_type")] [Key("purchase_item_type")] public int PurchaseItemType { get; set; } [JsonPropertyName("purchase_item_id")] [Key("purchase_item_id")] public long PurchaseItemId { get; set; } [JsonPropertyName("purchase_item_num")] [Key("purchase_item_num")] public int PurchaseItemNum { get; set; } /// 0 or 1 — client compares to int 0. [JsonPropertyName("is_monthly_reset")] [Key("is_monthly_reset")] public int IsMonthlyReset { get; set; } [JsonPropertyName("rest")] [Key("rest")] public int Rest { get; set; } } [MessagePackObject] public class UserCardPackTicketDto { [JsonPropertyName("item_id")] [Key("item_id")] public int ItemId { get; set; } [JsonPropertyName("number")] [Key("number")] public int Number { get; set; } }