feat(dto): TrialDeck + fleshed BuildDeck + trial/default on GetDeckListResponse
This commit is contained in:
27
SVSim.EmulatedEntrypoint/Models/Dtos/Common/TrialDeck.cs
Normal file
27
SVSim.EmulatedEntrypoint/Models/Dtos/Common/TrialDeck.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using MessagePack;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Common;
|
||||
|
||||
/// <summary>
|
||||
/// One archetype trial deck under <c>trial_deck_list</c> (DeckAttributeType.TrialDeck). Wire shape
|
||||
/// from the 2026-05-29 main_story/get_deck_list capture. Distinct from build decks: carries
|
||||
/// <c>deck_format</c> and no order_num/leader-skin-list. card_id_array only (no numbered card_id_N).
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class TrialDeck
|
||||
{
|
||||
[JsonPropertyName("deck_no")] [Key("deck_no")] public int DeckNo { get; set; }
|
||||
[JsonPropertyName("class_id")] [Key("class_id")] public int ClassId { get; set; }
|
||||
[JsonPropertyName("sleeve_id")] [Key("sleeve_id")] public int SleeveId { get; set; }
|
||||
[JsonPropertyName("leader_skin_id")] [Key("leader_skin_id")] public int LeaderSkinId { get; set; }
|
||||
[JsonPropertyName("deck_name")] [Key("deck_name")] public string DeckName { get; set; } = string.Empty;
|
||||
[JsonPropertyName("card_id_array")] [Key("card_id_array")] public List<long> CardIdArray { get; set; } = new();
|
||||
[JsonPropertyName("is_complete_deck")] [Key("is_complete_deck")] public int IsCompleteDeck { get; set; } = 1;
|
||||
[JsonPropertyName("restricted_card_exists")] [Key("restricted_card_exists")] public bool RestrictedCardExists { get; set; }
|
||||
[JsonPropertyName("is_available_deck")] [Key("is_available_deck")] public int IsAvailableDeck { get; set; } = 1;
|
||||
[JsonPropertyName("maintenance_card_ids")] [Key("maintenance_card_ids")] public List<long> MaintenanceCardIds { get; set; } = new();
|
||||
[JsonPropertyName("is_include_un_possession_card")] [Key("is_include_un_possession_card")] public bool IsIncludeUnPossessionCard { get; set; }
|
||||
[JsonPropertyName("deck_format")] [Key("deck_format")] public int DeckFormat { get; set; }
|
||||
[JsonPropertyName("is_recommend")] [Key("is_recommend")] public int IsRecommend { get; set; }
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
using MessagePack;
|
||||
using System.Text.Json.Serialization;
|
||||
using SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
using SVSim.EmulatedEntrypoint.Models.Dtos.Common;
|
||||
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Story;
|
||||
@@ -30,10 +32,36 @@ public class GetDeckListResponse
|
||||
[JsonPropertyName("build_deck_list")]
|
||||
[Key("build_deck_list")]
|
||||
public List<BuildDeck> BuildDeckList { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("trial_deck_list")]
|
||||
[Key("trial_deck_list")]
|
||||
public List<TrialDeck> TrialDeckList { get; set; } = new();
|
||||
|
||||
/// <summary>Global starter decks, keyed by deck_no 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>
|
||||
/// One named prebuilt story deck under <c>build_deck_list</c> (DeckAttributeType.BuildDeck). Wire
|
||||
/// shape from the 2026-05-29 capture. Emits card_id_array only — the numbered card_id_1..40 keys
|
||||
/// prod also sends are omitted (default/trial entries omit them and parse fine).
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class BuildDeck
|
||||
{
|
||||
// Placeholder — build decks return [] for v1 per spec.
|
||||
[JsonPropertyName("deck_no")] [Key("deck_no")] public int DeckNo { get; set; }
|
||||
[JsonPropertyName("order_num")] [Key("order_num")] public int OrderNum { get; set; }
|
||||
[JsonPropertyName("class_id")] [Key("class_id")] public int ClassId { get; set; }
|
||||
[JsonPropertyName("sleeve_id")] [Key("sleeve_id")] public int SleeveId { get; set; }
|
||||
[JsonPropertyName("leader_skin_id")] [Key("leader_skin_id")] public int LeaderSkinId { get; set; }
|
||||
[JsonPropertyName("entry_no")] [Key("entry_no")] public int EntryNo { get; set; }
|
||||
[JsonPropertyName("create_deck_time")] [Key("create_deck_time")] public DateTime? CreateDeckTime { get; set; }
|
||||
[JsonPropertyName("deck_name")] [Key("deck_name")] public string DeckName { get; set; } = string.Empty;
|
||||
[JsonPropertyName("card_id_array")] [Key("card_id_array")] public List<long> CardIdArray { get; set; } = new();
|
||||
[JsonPropertyName("is_complete_deck")] [Key("is_complete_deck")] public int IsCompleteDeck { get; set; } = 1;
|
||||
[JsonPropertyName("is_available_deck")] [Key("is_available_deck")] public int IsAvailableDeck { get; set; } = 1;
|
||||
[JsonPropertyName("maintenance_card_ids")] [Key("maintenance_card_ids")] public List<long> MaintenanceCardIds { get; set; } = new();
|
||||
[JsonPropertyName("is_recommend")] [Key("is_recommend")] public int IsRecommend { get; set; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user