using MessagePack;
using System.Text.Json.Serialization;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;

namespace SVSim.EmulatedEntrypoint.Models.Dtos.Story;

[MessagePackObject]
public class GetDeckListRequest : BaseRequest
{
    [JsonPropertyName("story_id")]
    [Key("story_id")]
    public int StoryId { get; set; }
}

[MessagePackObject]
public class GetDeckListResponse
{
    [JsonPropertyName("user_deck_rotation")]
    [Key("user_deck_rotation")]
    public List<UserDeck> UserDeckRotation { get; set; } = new();

    [JsonPropertyName("user_deck_unlimited")]
    [Key("user_deck_unlimited")]
    public List<UserDeck> UserDeckUnlimited { get; set; } = new();

    [JsonPropertyName("maintenance_card_list")]
    [Key("maintenance_card_list")]
    public List<long> MaintenanceCardList { get; set; } = new();

    [JsonPropertyName("build_deck_list")]
    [Key("build_deck_list")]
    public List<BuildDeck> BuildDeckList { get; set; } = new();
}

[MessagePackObject]
public class BuildDeck
{
    // Placeholder — build decks return [] for v1 per spec.
}
