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; }
}