using System.Text.Json.Serialization; using MessagePack; namespace SVSim.EmulatedEntrypoint.Models.Dtos.ArenaColosseum; /// /// Per-viewer Colosseum state. All fields optional — when the viewer has no run, ALL fields /// are null and the global WhenWritingNull policy renders this as {}, which /// the client's SetColosseumOwnStatus short-circuits with status.Count != 0. /// [MessagePackObject] public class ColosseumOwnStatus { [JsonPropertyName("rest_entry_num")] [Key("rest_entry_num")] public int? RestEntryNum { get; set; } [JsonPropertyName("now_round_id")] [Key("now_round_id")] public int? NowRoundId { get; set; } [JsonPropertyName("next_round_id")] [Key("next_round_id")] public int? NextRoundId { get; set; } [JsonPropertyName("is_last_day")] [Key("is_last_day")] public bool? IsLastDay { get; set; } [JsonPropertyName("is_champion")] [Key("is_champion")] public bool? IsChampion { get; set; } /// Only present when is true — client uses it to overwrite /// ColosseumData.Name for the champion screen. [JsonPropertyName("colosseum_name")] [Key("colosseum_name")] public string? ColosseumName { get; set; } }