|
|
|
|
@ -32,7 +32,6 @@ class Tournament : ModelObject, Storable { |
|
|
|
|
var federalLevelCategory: TournamentLevel |
|
|
|
|
var federalAgeCategory: FederalTournamentAge |
|
|
|
|
var groupStageCourtCount: Int? |
|
|
|
|
var seedCount: Int |
|
|
|
|
var closedRegistrationDate: Date? |
|
|
|
|
var groupStageAdditionalQualified: Int |
|
|
|
|
var courtCount: Int = 2 |
|
|
|
|
@ -48,7 +47,7 @@ class Tournament : ModelObject, Storable { |
|
|
|
|
@ObservationIgnored |
|
|
|
|
var navigationPath: [Screen] = [] |
|
|
|
|
|
|
|
|
|
internal init(event: String? = nil, name: String? = nil, startDate: Date = Date(), endDate: Date? = nil, creationDate: Date = Date(), isPrivate: Bool = true, groupStageFormat: MatchFormat? = nil, roundFormat: MatchFormat? = nil, loserRoundFormat: MatchFormat? = nil, groupStageSortMode: GroupStageOrderingMode, groupStageCount: Int = 4, rankSourceDate: Date? = nil, dayDuration: Int = 1, teamCount: Int = 24, teamSorting: TeamSortingType? = nil, federalCategory: TournamentCategory, federalLevelCategory: TournamentLevel, federalAgeCategory: FederalTournamentAge, groupStageCourtCount: Int? = nil, seedCount: Int = 8, closedRegistrationDate: Date? = nil, groupStageAdditionalQualified: Int = 0, courtCount: Int = 2, prioritizeClubMembers: Bool = false, qualifiedPerGroupStage: Int = 1, teamsPerGroupStage: Int = 4, entryFee: Double? = nil) { |
|
|
|
|
internal init(event: String? = nil, name: String? = nil, startDate: Date = Date(), endDate: Date? = nil, creationDate: Date = Date(), isPrivate: Bool = true, groupStageFormat: MatchFormat? = nil, roundFormat: MatchFormat? = nil, loserRoundFormat: MatchFormat? = nil, groupStageSortMode: GroupStageOrderingMode, groupStageCount: Int = 4, rankSourceDate: Date? = nil, dayDuration: Int = 1, teamCount: Int = 24, teamSorting: TeamSortingType? = nil, federalCategory: TournamentCategory, federalLevelCategory: TournamentLevel, federalAgeCategory: FederalTournamentAge, groupStageCourtCount: Int? = nil, closedRegistrationDate: Date? = nil, groupStageAdditionalQualified: Int = 0, courtCount: Int = 2, prioritizeClubMembers: Bool = false, qualifiedPerGroupStage: Int = 1, teamsPerGroupStage: Int = 4, entryFee: Double? = nil) { |
|
|
|
|
self.event = event |
|
|
|
|
self.name = name |
|
|
|
|
self.startDate = startDate |
|
|
|
|
@ -68,7 +67,6 @@ class Tournament : ModelObject, Storable { |
|
|
|
|
self.federalLevelCategory = federalLevelCategory |
|
|
|
|
self.federalAgeCategory = federalAgeCategory |
|
|
|
|
self.groupStageCourtCount = groupStageCourtCount |
|
|
|
|
self.seedCount = seedCount |
|
|
|
|
self.closedRegistrationDate = closedRegistrationDate |
|
|
|
|
self.groupStageAdditionalQualified = groupStageAdditionalQualified |
|
|
|
|
self.courtCount = courtCount |
|
|
|
|
@ -563,7 +561,7 @@ class Tournament : ModelObject, Storable { |
|
|
|
|
let selectedTeams : [TeamRegistration] = selectedSortedTeams() |
|
|
|
|
let callDateIssue : [TeamRegistration] = selectedTeams.filter { $0.callDate != nil && isStartDateIsDifferentThanCallDate($0) } |
|
|
|
|
let duplicates : [PlayerRegistration] = duplicates(in: players) |
|
|
|
|
let problematicPlayers : [PlayerRegistration] = players.filter({ $0.sex == -1 }) |
|
|
|
|
let problematicPlayers : [PlayerRegistration] = players.filter({ $0.sex == nil }) |
|
|
|
|
let inadequatePlayers : [PlayerRegistration] = inadequatePlayers(in: players) |
|
|
|
|
let playersWithoutValidLicense : [PlayerRegistration] = playersWithoutValidLicense(in: players) |
|
|
|
|
let playersMissing : [TeamRegistration] = selectedTeams.filter({ $0.unsortedPlayers().count < 2 }) |
|
|
|
|
@ -697,7 +695,7 @@ class Tournament : ModelObject, Storable { |
|
|
|
|
let dataURLs = SourceFileManager.shared.allFiles.filter({ $0.dateFromPath == newDate }) |
|
|
|
|
let sources = dataURLs.map { CSVParser(url: $0) } |
|
|
|
|
|
|
|
|
|
try await player.updateRank(from: sources, lastRank: (player.sex == 0 ? lastRankWoman : lastRankMan) ?? 0) |
|
|
|
|
try await player.updateRank(from: sources, lastRank: (player.sex == .female ? lastRankWoman : lastRankMan) ?? 0) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -1286,7 +1284,6 @@ extension Tournament { |
|
|
|
|
case _federalLevelCategory = "federalLevelCategory" |
|
|
|
|
case _federalAgeCategory = "federalAgeCategory" |
|
|
|
|
case _groupStageCourtCount = "groupStageCourtCount" |
|
|
|
|
case _seedCount = "seedCount" |
|
|
|
|
case _closedRegistrationDate = "closedRegistrationDate" |
|
|
|
|
case _groupStageAdditionalQualified = "groupStageAdditionalQualified" |
|
|
|
|
case _courtCount = "courtCount" |
|
|
|
|
@ -1365,7 +1362,7 @@ extension Tournament { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static func fake() -> Tournament { |
|
|
|
|
return Tournament(event: "Roland Garros", name: "Magic P100", startDate: Date(), endDate: Date(), creationDate: Date(), isPrivate: false, groupStageFormat: .nineGames, roundFormat: nil, loserRoundFormat: nil, groupStageSortMode: .snake, groupStageCount: 4, rankSourceDate: nil, dayDuration: 2, teamCount: 24, teamSorting: .rank, federalCategory: .men, federalLevelCategory: .p100, federalAgeCategory: .a45, groupStageCourtCount: nil, seedCount: 8, closedRegistrationDate: nil, groupStageAdditionalQualified: 0, courtCount: 4, prioritizeClubMembers: false, qualifiedPerGroupStage: 2, teamsPerGroupStage: 4, entryFee: nil) |
|
|
|
|
return Tournament(event: "Roland Garros", name: "Magic P100", startDate: Date(), endDate: Date(), creationDate: Date(), isPrivate: false, groupStageFormat: .nineGames, roundFormat: nil, loserRoundFormat: nil, groupStageSortMode: .snake, groupStageCount: 4, rankSourceDate: nil, dayDuration: 2, teamCount: 24, teamSorting: .rank, federalCategory: .men, federalLevelCategory: .p100, federalAgeCategory: .a45, groupStageCourtCount: nil, closedRegistrationDate: nil, groupStageAdditionalQualified: 0, courtCount: 4, prioritizeClubMembers: false, qualifiedPerGroupStage: 2, teamsPerGroupStage: 4, entryFee: nil) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|