From beaab645b9b287971064bd4374dfb33d0a16f98d Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Tue, 19 Aug 2025 17:36:44 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20du=20min=20d'=C3=A9quipe=20pour=20homol?= =?UTF-8?q?ogation=20ajout=20d'une=20option=20pour=20terminer=20les=20tour?= =?UTF-8?q?nois=20ouverts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PadelClubData/Data/Tournament.swift | 4 ++ PadelClubData/ViewModel/PadelRule.swift | 60 +++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/PadelClubData/Data/Tournament.swift b/PadelClubData/Data/Tournament.swift index d8fdbb4..809f965 100644 --- a/PadelClubData/Data/Tournament.swift +++ b/PadelClubData/Data/Tournament.swift @@ -2382,6 +2382,10 @@ defer { } } + public func minimumNumberOfTeams() -> Int { + return federalTournamentAge.minimumNumberOfTeams(inCategory: tournamentCategory, andInLevel: tournamentLevel) + } + // MARK: - func insertOnServer() throws { diff --git a/PadelClubData/ViewModel/PadelRule.swift b/PadelClubData/ViewModel/PadelRule.swift index b47dc2e..2c8a0cb 100644 --- a/PadelClubData/ViewModel/PadelRule.swift +++ b/PadelClubData/ViewModel/PadelRule.swift @@ -166,6 +166,7 @@ public enum TournamentDifficulty { public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifiable { case unlisted = 0 + case a09_10 = 100 case a11_12 = 120 case a13_14 = 140 case a15_16 = 160 @@ -184,6 +185,8 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi switch self { case .unlisted: return (nil, nil) + case .a09_10: + return (year - 10, year - 9) case .a11_12: return (year - 12, year - 11) case .a13_14: @@ -205,6 +208,8 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi switch self { case .unlisted: return "Animation" + case .a09_10: + return "09/10 ans" case .a11_12: return "11/12 ans" case .a13_14: @@ -241,6 +246,8 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi public var order: Int { switch self { case .unlisted: + return 8 + case .a09_10: return 7 case .a11_12: return 6 @@ -263,6 +270,8 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi switch self { case .unlisted: return displayStyle == .title ? "Aucune" : "" + case .a09_10: + return "U10" case .a11_12: return "U12" case .a13_14: @@ -289,14 +298,16 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi switch self { case .unlisted: return true + case .a09_10: + return age < 11 case .a11_12: return age < 13 case .a13_14: return age < 15 case .a15_16: - return age < 17 + return age < 17 && age >= 11 case .a17_18: - return age < 19 + return age < 19 && age >= 11 case .senior: return age >= 11 case .a45: @@ -310,6 +321,8 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi switch self { case .unlisted: return false + case .a09_10: + return true case .a11_12: return true case .a13_14: @@ -326,6 +339,42 @@ public enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifi return false } } + + func minimumNumberOfTeams(inCategory category: TournamentCategory, andInLevel level: TournamentLevel) -> Int { + + if self.isChildCategory() { + if level == .p250, category == .men { + return 8 + } + return 4 + } else { + switch level { + case .p25, .p100, .p250: + if category == .women { + return 4 + } + if level == .p100 { + return 8 + } + return 12 + case .p500: + if category == .women { + return 8 + } + return 16 + case .p1000: + if category == .women { + return 16 + } + return 24 + + case .p1500, .p2000: + return 24 + default: + return -1 + } + } + } } public enum TournamentLevel: Int, Hashable, Codable, CaseIterable, Identifiable { @@ -432,7 +481,12 @@ public enum TournamentLevel: Int, Hashable, Codable, CaseIterable, Identifiable } } - public func minimumPlayerRank(category: TournamentCategory, ageCategory: FederalTournamentAge) -> Int { + public func minimumPlayerRank(category: TournamentCategory, ageCategory: FederalTournamentAge, seasonYear: Int) -> Int { + + if seasonYear == 2026, category == .mix { + return 0 + } + switch self { case .p25: switch ageCategory {