using System.Text.Json.Serialization; using MessagePack; namespace SVSim.EmulatedEntrypoint.Models.Dtos.ArenaColosseum; /// /// Event-level descriptor used by /event_info only — distinct shape from /// : only format, the event window, the announce id, /// and the final-round eliminate count. The client's ColosseumDetailTask reads /// these five fields plus the three string-keyed rounds. /// [MessagePackObject] public class ColosseumEventInfo { /// Event format. Mapped via ApiRuleParseAndSet on the client. [JsonPropertyName("format")] [Key("format")] public int Format { get; set; } [JsonPropertyName("start_time")] [Key("start_time")] public string StartTime { get; set; } = ""; [JsonPropertyName("end_time")] [Key("end_time")] public string EndTime { get; set; } = ""; /// Optional — emit null when no announce content is configured. [JsonPropertyName("announce_id")] [Key("announce_id")] public string? AnnounceId { get; set; } [JsonPropertyName("final_round_eliminate_count")] [Key("final_round_eliminate_count")] public int FinalRoundEliminateCount { get; set; } } [MessagePackObject] public class ColosseumRoundDetail { [JsonPropertyName("start_time")] [Key("start_time")] public string StartTime { get; set; } = ""; [JsonPropertyName("end_time")] [Key("end_time")] public string EndTime { get; set; } = ""; [JsonPropertyName("is_now_round")] [Key("is_now_round")] public bool IsNowRound { get; set; } [JsonPropertyName("round_detail")] [Key("round_detail")] public List RoundDetail { get; set; } = new(); } [MessagePackObject] public class ColosseumGroupRow { [JsonPropertyName("group")] [Key("group")] public string Group { get; set; } = ""; [JsonPropertyName("max_battle_count")] [Key("max_battle_count")] public int MaxBattleCount { get; set; } [JsonPropertyName("breakthrough_number")] [Key("breakthrough_number")] public int BreakthroughNumber { get; set; } [JsonPropertyName("entry_number")] [Key("entry_number")] public int EntryNumber { get; set; } }