using System.Text.Json.Serialization;
using MessagePack;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.ArenaColosseum;
///
/// Round-level Colosseum descriptor. Shared by /top and /get_fee_info via
/// the client's static ColosseumEntryInfoTask.SetColosseumInfo helper. When
/// is false, the client skips parsing every other
/// field — server still emits this minimal payload so the lobby renders cleanly.
///
/// Also drives /mypage/index data.colosseum_info — the home-screen tab gating and
/// the per-endpoint lobby reads share one source of truth (the
/// POCO) projected via
/// . /event_info uses a different,
/// event-level shape — .
///
///
[MessagePackObject]
public class ColosseumLobbyInfo
{
/// Master gate. false = lobby renders empty.
[JsonPropertyName("is_colosseum_period")] [Key("is_colosseum_period")]
public bool IsColosseumPeriod { get; set; }
/// Format enum (Rotation=0, Unlimited=1, TwoPick=10, HOF=31, ...).
[JsonPropertyName("deck_format")] [Key("deck_format")]
public int? DeckFormat { get; set; }
/// STRING wire shape: "0"/"1". Client parses with
/// jsonData.ToString() == "1".
[JsonPropertyName("is_normal_two_pick")] [Key("is_normal_two_pick")]
public string? IsNormalTwoPick { get; set; }
[JsonPropertyName("colosseum_name")] [Key("colosseum_name")]
public string? ColosseumName { get; set; }
[JsonPropertyName("is_round_period")] [Key("is_round_period")]
public bool? IsRoundPeriod { get; set; }
/// Wire STRING used by the client as a UI color/theme code.
[JsonPropertyName("is_special_mode")] [Key("is_special_mode")]
public string? IsSpecialMode { get; set; }
[JsonPropertyName("card_pool_name")] [Key("card_pool_name")]
public string? CardPoolName { get; set; }
/// Present during round period — current stage number (1..3).
[JsonPropertyName("now_round")] [Key("now_round")]
public int? NowRound { get; set; }
/// Present outside round period — next stage number.
[JsonPropertyName("next_round")] [Key("next_round")]
public int? NextRound { get; set; }
[JsonPropertyName("start_time")] [Key("start_time")]
public string? StartTime { get; set; }
[JsonPropertyName("end_time")] [Key("end_time")]
public string? EndTime { get; set; }
[JsonPropertyName("is_display_tips")] [Key("is_display_tips")]
public int? IsDisplayTips { get; set; }
[JsonPropertyName("colosseum_id")] [Key("colosseum_id")]
public int? ColosseumId { get; set; }
[JsonPropertyName("tips_id")] [Key("tips_id")]
public int? TipsId { get; set; }
[JsonPropertyName("is_all_card_enabled")] [Key("is_all_card_enabled")]
public int? IsAllCardEnabled { get; set; }
/// Reuses the captured /mypage/index shape — single
/// sales_period_time field per prod capture.
[JsonPropertyName("sales_period_info")] [Key("sales_period_info")]
public ColosseumSalesPeriodInfo? SalesPeriodInfo { get; set; }
[JsonPropertyName("strategy_pick_num")] [Key("strategy_pick_num")]
public int? StrategyPickNum { get; set; }
}