namespace SVSim.Database.Models.Config; /// /// The 3-round bracket schedule for an active Colosseum season. Empty /// is the default shipped state — lobby /event_info renders a benign payload with /// no rounds active. Collection default is in per /// feedback_config_defaults (property-initializer collection defaults silently empty out /// under the tier merge). /// [ConfigSection("ColosseumRounds")] public class ColosseumRoundsConfig { public List Rounds { get; set; } = new(); public static ColosseumRoundsConfig ShippedDefaults() => new() { Rounds = new(), }; public class RoundEntry { /// 1, 2, or 3 in the canonical 3-round schedule. public int RoundId { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } /// Bracket groups within the round (e.g. distinct breakthrough thresholds /// for late-joiners). The first entry is the canonical lookup used by /// ColosseumProgressionService for the v1 single-bracket case. public List Groups { get; set; } = new(); } public class GroupEntry { public string Group { get; set; } = ""; /// Max battles a viewer can play in this round before bracket termination. public int MaxBattleCount { get; set; } /// Wins required to promote out of this round. public int BreakthroughNumber { get; set; } /// Total bracket entries allotted to this group. public int EntryNumber { get; set; } } }