@ -1680,6 +1680,113 @@ enum PadelTournamentStructurePreset: Int, Identifiable, CaseIterable {
case manual
case manual
case doubleGroupStage
case doubleGroupStage
case federalStructure_8
case federalStructure_12
case federalStructure_16
case federalStructure_20
case federalStructure_24
case federalStructure_32
case federalStructure_48
case federalStructure_64
// M a x i m u m q u a l i f i e d p a i r s b a s e d o n t h e s t r u c t u r e p r e s e t
func tableDimension ( ) -> Int {
switch self {
case . federalStructure_8 :
return 8
case . federalStructure_12 :
return 12
case . federalStructure_16 :
return 16
case . federalStructure_20 :
return 20
case . federalStructure_24 :
return 24
case . federalStructure_32 :
return 32
case . federalStructure_48 :
return 48
case . federalStructure_64 :
return 64
case . manual :
return 24
case . doubleGroupStage :
return 9
}
}
// W i l d c a r d s a l l o w e d i n t h e Q u a l i f i e r s
func wildcardBrackets ( ) -> Int {
switch self {
case . federalStructure_8 :
return 0
case . federalStructure_12 :
return 1
case . federalStructure_16 , . federalStructure_20 , . federalStructure_24 , . federalStructure_32 :
return 2
case . federalStructure_48 , . federalStructure_64 :
return 4
case . manual , . doubleGroupStage :
return 0
}
}
// W i l d c a r d s a l l o w e d i n t h e Q u a l i f i e r s
func wildcardQualifiers ( ) -> Int {
switch self {
case . federalStructure_8 :
return 0
case . federalStructure_12 , . federalStructure_16 :
return 1
case . federalStructure_20 , . federalStructure_24 :
return 2
case . federalStructure_32 :
return 4
case . federalStructure_48 :
return 6
case . federalStructure_64 :
return 8
case . manual , . doubleGroupStage :
return 0
}
}
// N u m b e r o f t e a m s a d m i t t e d t o t h e Q u a l i f i e r s
func teamsInQualifiers ( ) -> Int {
switch self {
case . federalStructure_8 :
return 8
case . federalStructure_12 :
return 12
case . federalStructure_16 :
return 16
case . federalStructure_20 :
return 20
case . federalStructure_24 :
return 24
case . federalStructure_32 :
return 32
case . federalStructure_48 :
return 48
case . federalStructure_64 :
return 64
case . manual , . doubleGroupStage :
return 0
}
}
// M a x i m u m t e a m s t h a t c a n q u a l i f y f r o m t h e Q u a l i f i e r s t o t h e F i n a l T a b l e
func maxTeamsFromQualifiers ( ) -> Int {
switch self {
case . federalStructure_8 , . federalStructure_12 :
return 2
case . federalStructure_16 , . federalStructure_20 , . federalStructure_24 :
return 4
case . federalStructure_32 , . federalStructure_48 , . federalStructure_64 :
return 8
case . manual , . doubleGroupStage :
return 0
}
}
func localizedStructurePresetTitle ( ) -> String {
func localizedStructurePresetTitle ( ) -> String {
switch self {
switch self {
@ -1687,6 +1794,22 @@ enum PadelTournamentStructurePreset: Int, Identifiable, CaseIterable {
return " Défaut "
return " Défaut "
case . doubleGroupStage :
case . doubleGroupStage :
return " 2 phases de poules "
return " 2 phases de poules "
case . federalStructure_8 :
return " Structure fédérale 8 "
case . federalStructure_12 :
return " Structure fédérale 12 "
case . federalStructure_16 :
return " Structure fédérale 16 "
case . federalStructure_20 :
return " Structure fédérale 20 "
case . federalStructure_24 :
return " Structure fédérale 24 "
case . federalStructure_32 :
return " Structure fédérale 32 "
case . federalStructure_48 :
return " Structure fédérale 48 "
case . federalStructure_64 :
return " Structure fédérale 64 "
}
}
}
}
@ -1695,8 +1818,74 @@ enum PadelTournamentStructurePreset: Int, Identifiable, CaseIterable {
case . manual :
case . manual :
return " 24 équipes, 4 poules de 4, 1 qualifié par poule "
return " 24 équipes, 4 poules de 4, 1 qualifié par poule "
case . doubleGroupStage :
case . doubleGroupStage :
return " Poules qui enchaîne sur une autre phase de poule : les premiers de chaque se retrouve ensemble, puis les 2èmes, etc. "
return " Poules qui enchaînent sur une autre phase de poules: les premiers de chaque se retrouvent ensemble, puis les deuxièmes, etc. "
case . federalStructure_8 :
return " Tableau final à 8 paires, dont 2 qualifiées sortant de qualifications à 8 paires maximum. Aucune wildcard. "
case . federalStructure_12 , . federalStructure_16 , . federalStructure_20 , . federalStructure_24 , . federalStructure_32 , . federalStructure_48 , . federalStructure_64 :
return " Tableau final à \( tableDimension ( ) ) paires, dont \( maxTeamsFromQualifiers ( ) ) qualifiées sortant de qualifications à \( teamsInQualifiers ( ) ) paires maximum. \( wildcardBrackets ( ) ) wildcard \( wildcardBrackets ( ) . pluralSuffix ) en tableau et \( wildcardQualifiers ( ) ) wildcard \( wildcardQualifiers ( ) . pluralSuffix ) en qualifications. "
}
}
func groupStageCount ( ) -> Int {
switch self {
case . manual :
4
case . doubleGroupStage :
3
case . federalStructure_8 :
2
case . federalStructure_12 :
2
case . federalStructure_16 :
4
case . federalStructure_20 :
4
case . federalStructure_24 :
4
case . federalStructure_32 :
8
case . federalStructure_48 :
8
case . federalStructure_64 :
8
}
}
func teamsPerGroupStage ( ) -> Int {
switch self {
case . manual :
4
case . doubleGroupStage :
3
case . federalStructure_8 :
4
case . federalStructure_12 :
6
case . federalStructure_16 :
4
case . federalStructure_20 :
5
case . federalStructure_24 :
6
case . federalStructure_32 :
4
case . federalStructure_48 :
6
case . federalStructure_64 :
8
}
}
func qualifiedPerGroupStage ( ) -> Int {
switch self {
case . doubleGroupStage :
0
default :
1
}
}
}
func hasWildcards ( ) -> Bool {
wildcardBrackets ( ) > 0 || wildcardQualifiers ( ) > 0
}
}
}
}