using System.Text.Json.Serialization; namespace LeagueAPI.Models.ChampSelect; public record class ChampSelectSession { [JsonPropertyName("id")] public string? Id { get; init; } [JsonPropertyName("gameId")] public ulong GameId { get; init; } [JsonPropertyName("queueId")] public int QueueId { get; init; } [JsonPropertyName("timer")] public ChampSelectTimer? Timer { get; init; } [JsonPropertyName("chatDetails")] public ChampSelectChatRoomDetails? ChatDetails { get; init; } [JsonPropertyName("myTeam")] public ChampSelectPlayerSelection[] MyTeam { get; init; } = []; [JsonPropertyName("theirTeam")] public ChampSelectPlayerSelection[] TheirTeam { get; init; } = []; [JsonPropertyName("trades")] public ChampSelectSwapContract[] Trades { get; init; } = []; [JsonPropertyName("pickOrderSwaps")] public ChampSelectSwapContract[] PickOrderSwaps { get; init; } = []; [JsonPropertyName("positionSwaps")] public ChampSelectSwapContract[] PositionSwaps { get; init; } = []; [JsonPropertyName("actions")] public object[] Actions { get; init; } = []; [JsonPropertyName("bans")] public ChampSelectBannedChampions? Bans { get; init; } [JsonPropertyName("localPlayerCellId")] public long LocalPlayerCellId { get; init; } [JsonPropertyName("isSpectating")] public bool IsSpectating { get; init; } [JsonPropertyName("allowSkinSelection")] public bool AllowSkinSelection { get; init; } [JsonPropertyName("allowSubsetChampionPicks")] public bool AllowSubsetChampionPicks { get; init; } [JsonPropertyName("allowDuplicatePicks")] public bool AllowDuplicatePicks { get; init; } [JsonPropertyName("allowPlayerPickSameChampion")] public bool AllowPlayerPickSameChampion { get; init; } [JsonPropertyName("disallowBanningTeammateHoveredChampions")] public bool DisallowBanningTeammateHoveredChampions { get; init; } [JsonPropertyName("allowBattleBoost")] public bool AllowBattleBoost { get; init; } [JsonPropertyName("boostableSkinCount")] public int BoostableSkinCount { get; init; } [JsonPropertyName("allowRerolling")] public bool AllowRerolling { get; init; } [JsonPropertyName("rerollsRemaining")] public ulong RerollsRemaining { get; init; } [JsonPropertyName("allowLockedEvents")] public bool AllowLockedEvents { get; init; } [JsonPropertyName("lockedEventIndex")] public int LockedEventIndex { get; init; } [JsonPropertyName("benchEnabled")] public bool BenchEnabled { get; init; } [JsonPropertyName("benchChampions")] public BenchChampion[] BenchChampions { get; init; } = []; [JsonPropertyName("counter")] public long Counter { get; init; } [JsonPropertyName("skipChampionSelect")] public bool SkipChampionSelect { get; init; } [JsonPropertyName("hasSimultaneousBans")] public bool HasSimultaneousBans { get; init; } [JsonPropertyName("hasSimultaneousPicks")] public bool HasSimultaneousPicks { get; init; } [JsonPropertyName("showQuitButton")] public bool ShowQuitButton { get; init; } [JsonPropertyName("isLegacyChampSelect")] public bool IsLegacyChampSelect { get; init; } [JsonPropertyName("isCustomGame")] public bool IsCustomGame { get; init; } }