using MessagePack;
using System.Text.Json.Serialization;

namespace SVSim.EmulatedEntrypoint.Models.Dtos;

[MessagePackObject]
public class PackChildGachaDto
{
    [JsonPropertyName("gacha_id")]
    [Key("gacha_id")]
    public int GachaId { get; set; }

    [JsonPropertyName("type_detail")]
    [Key("type_detail")]
    public int TypeDetail { get; set; }

    [JsonPropertyName("cost")]
    [Key("cost")]
    public int Cost { get; set; }

    [JsonPropertyName("count")]
    [Key("count")]
    public int Count { get; set; } = 8;

    /// <summary>Stringified on the wire when present (prod sends "10001" not 10001).</summary>
    [JsonPropertyName("item_id")]
    [Key("item_id")]
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
    public string? ItemId { get; set; }

    [JsonPropertyName("item_number")]
    [Key("item_number")]
    public int ItemNumber { get; set; }

    [JsonPropertyName("is_daily_single")]
    [Key("is_daily_single")]
    [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
    public bool IsDailySingle { get; set; }

    [JsonPropertyName("override_increase_gacha_point")]
    [Key("override_increase_gacha_point")]
    public string OverrideIncreaseGachaPoint { get; set; } = "0";
}
