40 lines
1.7 KiB
C#
40 lines
1.7 KiB
C#
using MessagePack;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.Deck;
|
|
|
|
/// <summary>
|
|
/// Shape consumed by <c>DeckGroupListData(jsonData, format)</c>. Spec at
|
|
/// <c>docs/api-spec/endpoints/post-login/deck-info.md</c> only enumerates <c>maintenance_card_list</c>
|
|
/// and <c>user_deck_list</c> explicitly (with <c>[k: string]: unknown</c> for the rest); the 2026-05-23
|
|
/// prod capture filled in the gap — <c>default_deck_list</c>, <c>user_leader_skin_setting_list</c>,
|
|
/// and <c>trial_deck_list</c> are all present and sourced from globals.
|
|
/// </summary>
|
|
[MessagePackObject]
|
|
public class DeckListResponse
|
|
{
|
|
[JsonPropertyName("maintenance_card_list")]
|
|
[Key("maintenance_card_list")] public List<long> MaintenanceCardList { get; set; } = new();
|
|
|
|
[JsonPropertyName("user_deck_list")]
|
|
[Key("user_deck_list")] public List<UserDeck>? UserDeckList { get; set; }
|
|
|
|
/// <summary>
|
|
/// Global starter decks, keyed by deck_no as string (prod ids 91-98 — one per class).
|
|
/// </summary>
|
|
[JsonPropertyName("default_deck_list")]
|
|
[Key("default_deck_list")] public Dictionary<string, DefaultDeck> DefaultDeckList { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Default leader skin per class, keyed by class_id as string.
|
|
/// </summary>
|
|
[JsonPropertyName("user_leader_skin_setting_list")]
|
|
[Key("user_leader_skin_setting_list")] public Dictionary<string, DefaultLeaderSkinSetting> UserLeaderSkinSettingList { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Trial / tutorial-specific decks. Empty in the 2026-05-23 prod capture; entry shape TBD.
|
|
/// </summary>
|
|
[JsonPropertyName("trial_deck_list")]
|
|
[Key("trial_deck_list")] public List<UserDeck> TrialDeckList { get; set; } = new();
|
|
}
|