From 4a002de680d6a116b14f5dad9be86200e341184d Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Sat, 4 May 2024 11:50:34 +0200 Subject: [PATCH] rename player weight into computedRank --- PadelClub/Data/PlayerRegistration.swift | 16 ++++++++-------- PadelClub/Data/TeamRegistration.swift | 2 +- PadelClub/Data/Tournament.swift | 8 ++++---- PadelClub/Utils/FileImportManager.swift | 12 ++++++------ PadelClub/Views/Cashier/CashierView.swift | 4 ++-- .../Shared/GroupStageTeamReplacementView.swift | 2 +- .../Player/Components/PlayerSexPickerView.swift | 2 +- PadelClub/Views/Player/PlayerDetailView.swift | 6 +++--- PadelClub/Views/Tournament/FileImportView.swift | 2 +- .../Components/UpdateSourceRankDateView.swift | 2 +- .../Screen/InscriptionManagerView.swift | 4 ++-- 11 files changed, 30 insertions(+), 30 deletions(-) diff --git a/PadelClub/Data/PlayerRegistration.swift b/PadelClub/Data/PlayerRegistration.swift index 4654725..90c5265 100644 --- a/PadelClub/Data/PlayerRegistration.swift +++ b/PadelClub/Data/PlayerRegistration.swift @@ -31,7 +31,7 @@ class PlayerRegistration: ModelObject, Storable { var email: String? var birthdate: String? - var weight: Int = 0 + var computedRank: Int = 0 var source: PlayerDataSource? var hasArrived: Bool = false @@ -169,8 +169,8 @@ class PlayerRegistration: ModelObject, Storable { func rankLabel(_ displayStyle: DisplayStyle = .wide) -> String { if let rank, rank > 0 { - if rank != weight { - return weight.formatted() + " (" + rank.formatted() + ")" + if rank != computedRank { + return computedRank.formatted() + " (" + rank.formatted() + ")" } else { return rank.formatted() } @@ -180,7 +180,7 @@ class PlayerRegistration: ModelObject, Storable { } func getRank() -> Int { - weight + computedRank } @MainActor @@ -238,13 +238,13 @@ class PlayerRegistration: ModelObject, Storable { } } - func setWeight(in tournament: Tournament) { + func setComputedRank(in tournament: Tournament) { let currentRank = rank ?? tournament.unrankValue(for: isMalePlayer()) ?? 100_000 switch tournament.tournamentCategory { case .men: - weight = isMalePlayer() ? currentRank : currentRank + PlayerRegistration.addon(for: currentRank, manMax: tournament.maleUnrankedValue ?? 0, womanMax: tournament.femaleUnrankedValue ?? 0) + computedRank = isMalePlayer() ? currentRank : currentRank + PlayerRegistration.addon(for: currentRank, manMax: tournament.maleUnrankedValue ?? 0, womanMax: tournament.femaleUnrankedValue ?? 0) default: - weight = currentRank + computedRank = currentRank } } @@ -279,7 +279,7 @@ class PlayerRegistration: ModelObject, Storable { case _birthdate = "birthdate" case _phoneNumber = "phoneNumber" case _email = "email" - case _weight = "weight" + case _computedRank = "computedRank" case _source = "source" case _hasArrived = "hasArrived" diff --git a/PadelClub/Data/TeamRegistration.swift b/PadelClub/Data/TeamRegistration.swift index 1f5f52d..4c53a38 100644 --- a/PadelClub/Data/TeamRegistration.swift +++ b/PadelClub/Data/TeamRegistration.swift @@ -268,7 +268,7 @@ class TeamRegistration: ModelObject, Storable { func setWeight(from players: [PlayerRegistration], inTournamentCategory tournamentCategory: TournamentCategory) { let significantPlayerCount = significantPlayerCount() - weight = (players.prefix(significantPlayerCount).map { $0.weight } + missingPlayerType(inTournamentCategory: tournamentCategory).map { unrankValue(for: $0 == 1 ? true : false ) }).prefix(significantPlayerCount).reduce(0,+) + weight = (players.prefix(significantPlayerCount).map { $0.computedRank } + missingPlayerType(inTournamentCategory: tournamentCategory).map { unrankValue(for: $0 == 1 ? true : false ) }).prefix(significantPlayerCount).reduce(0,+) } func significantPlayerCount() -> Int { diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index 0ce195b..18e8e1f 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -632,11 +632,11 @@ class Tournament : ModelObject, Storable { } func selectedPlayers() -> [PlayerRegistration] { - selectedSortedTeams().flatMap { $0.unsortedPlayers() }.sorted(by: \.weight) + selectedSortedTeams().flatMap { $0.unsortedPlayers() }.sorted(by: \.computedRank) } func players() -> [PlayerRegistration] { - unsortedTeams().flatMap { $0.unsortedPlayers() }.sorted(by: \.weight) + unsortedTeams().flatMap { $0.unsortedPlayers() }.sorted(by: \.computedRank) } func femalePlayers() -> [PlayerRegistration] { @@ -670,7 +670,7 @@ class Tournament : ModelObject, Storable { } return players.filter { player in if player.rank == nil { return false } - if player.weight <= tournamentLevel.minimumPlayerRank(category: tournamentCategory, ageCategory: federalTournamentAge) { + if player.computedRank <= tournamentLevel.minimumPlayerRank(category: tournamentCategory, ageCategory: federalTournamentAge) { return true } else { return false @@ -846,7 +846,7 @@ class Tournament : ModelObject, Storable { let teams = self.unsortedTeams() teams.forEach { team in let players = team.unsortedPlayers() - players.forEach { $0.setWeight(in: self) } + players.forEach { $0.setComputedRank(in: self) } team.setWeight(from: players, inTournamentCategory: tournamentCategory) try? DataStore.shared.playerRegistrations.addOrUpdate(contentOfs: players) } diff --git a/PadelClub/Utils/FileImportManager.swift b/PadelClub/Utils/FileImportManager.swift index b2d6ca5..d9adf4c 100644 --- a/PadelClub/Utils/FileImportManager.swift +++ b/PadelClub/Utils/FileImportManager.swift @@ -71,7 +71,7 @@ class FileImportManager { self.players = Set(players) self.tournamentCategory = tournamentCategory self.previousTeam = previousTeam - self.weight = players.map { $0.weight }.reduce(0,+) + self.weight = players.map { $0.computedRank }.reduce(0,+) self.registrationDate = registrationDate } @@ -210,9 +210,9 @@ class FileImportManager { } let playerOne = PlayerRegistration(federalData: Array(resultOne[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown) - playerOne.setWeight(in: tournament) + playerOne.setComputedRank(in: tournament) let playerTwo = PlayerRegistration(federalData: Array(resultTwo[0...7]), sex: sexPlayerTwo, sexUnknown: sexUnknown) - playerTwo.setWeight(in: tournament) + playerTwo.setComputedRank(in: tournament) let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo])) results.append(team) } @@ -256,9 +256,9 @@ class FileImportManager { } let playerOne = PlayerRegistration(federalData: Array(result[0...7]), sex: sexPlayerOne, sexUnknown: sexUnknown) - playerOne.setWeight(in: tournament) + playerOne.setComputedRank(in: tournament) let playerTwo = PlayerRegistration(federalData: Array(result[8...]), sex: sexPlayerTwo, sexUnknown: sexUnknown) - playerTwo.setWeight(in: tournament) + playerTwo.setComputedRank(in: tournament) let team = TeamHolder(players: [playerOne, playerTwo], tournamentCategory: tournamentCategory, previousTeam: tournament.findTeam([playerOne, playerTwo])) results.append(team) @@ -281,7 +281,7 @@ class FileImportManager { let found = try? federalContext.fetch(fetchRequest) let registeredPlayers = found?.map({ importedPlayer in let player = PlayerRegistration(importedPlayer: importedPlayer) - player.setWeight(in: tournament) + player.setComputedRank(in: tournament) return player }) if let registeredPlayers, registeredPlayers.isEmpty == false { diff --git a/PadelClub/Views/Cashier/CashierView.swift b/PadelClub/Views/Cashier/CashierView.swift index 9236a46..5b5700d 100644 --- a/PadelClub/Views/Cashier/CashierView.swift +++ b/PadelClub/Views/Cashier/CashierView.swift @@ -188,7 +188,7 @@ struct CashierView: View { Text(teamCallDate.localizedDate()) } Spacer() - Text(player.weight.formatted()) + Text(player.computedRank.formatted()) } } footer: { if tournaments.count > 1, let tournamentTitle = player.tournament()?.tournamentTitle() { @@ -200,7 +200,7 @@ struct CashierView: View { @ViewBuilder private func _byPlayerRank() -> some View { - let players = teams.flatMap({ $0.players() }).sorted(using: .keyPath(\.weight)).filter({ _shouldDisplayPlayer($0) }) + let players = teams.flatMap({ $0.players() }).sorted(using: .keyPath(\.computedRank)).filter({ _shouldDisplayPlayer($0) }) _byPlayer(players) } diff --git a/PadelClub/Views/GroupStage/Shared/GroupStageTeamReplacementView.swift b/PadelClub/Views/GroupStage/Shared/GroupStageTeamReplacementView.swift index 678e308..e37e36b 100644 --- a/PadelClub/Views/GroupStage/Shared/GroupStageTeamReplacementView.swift +++ b/PadelClub/Views/GroupStage/Shared/GroupStageTeamReplacementView.swift @@ -21,7 +21,7 @@ struct GroupStageTeamReplacementView: View { private func _getWeight() -> Int { guard let selectedPlayer else { return 0 } - return team.weight - selectedPlayer.weight + return team.weight - selectedPlayer.computedRank } private func _searchableRange(_ teamRange: TeamRegistration.TeamRange) -> String { diff --git a/PadelClub/Views/Player/Components/PlayerSexPickerView.swift b/PadelClub/Views/Player/Components/PlayerSexPickerView.swift index b81e27e..a218fe9 100644 --- a/PadelClub/Views/Player/Components/PlayerSexPickerView.swift +++ b/PadelClub/Views/Player/Components/PlayerSexPickerView.swift @@ -32,7 +32,7 @@ struct PlayerSexPickerView: View { private func _save() { do { - player.setWeight(in: tournament) + player.setComputedRank(in: tournament) try dataStore.playerRegistrations.addOrUpdate(instance: player) if let team = player.team() { team.updateWeight(inTournamentCategory: tournament.tournamentCategory) diff --git a/PadelClub/Views/Player/PlayerDetailView.swift b/PadelClub/Views/Player/PlayerDetailView.swift index e6289a0..4d96fad 100644 --- a/PadelClub/Views/Player/PlayerDetailView.swift +++ b/PadelClub/Views/Player/PlayerDetailView.swift @@ -60,7 +60,7 @@ struct PlayerDetailView: View { Text("Valeur à rajouter") } LabeledContent { - TextField("Rang", value: $player.weight, format: .number) + TextField("Rang", value: $player.computedRank, format: .number) .keyboardType(.decimalPad) .multilineTextAlignment(.trailing) .frame(maxWidth: .infinity) @@ -79,12 +79,12 @@ struct PlayerDetailView: View { .onChange(of: player.sex) { _save() } - .onChange(of: player.weight) { + .onChange(of: player.computedRank) { player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) _save() } .onChange(of: player.rank) { - player.setWeight(in: tournament) + player.setComputedRank(in: tournament) player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) _save() } diff --git a/PadelClub/Views/Tournament/FileImportView.swift b/PadelClub/Views/Tournament/FileImportView.swift index 23e79a1..309cd98 100644 --- a/PadelClub/Views/Tournament/FileImportView.swift +++ b/PadelClub/Views/Tournament/FileImportView.swift @@ -272,7 +272,7 @@ struct FileImportView: View { Section { HStack { VStack(alignment: .leading) { - ForEach(team.players.sorted(by: \.weight)) { + ForEach(team.players.sorted(by: \.computedRank)) { Text($0.playerLabel()) } } diff --git a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift index 6024b6e..e6ed2c1 100644 --- a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift @@ -40,7 +40,7 @@ struct UpdateSourceRankDateView: View { try await tournament.updateRank(to: currentRankSourceDate) try await MainActor.run { tournament.unsortedPlayers().forEach { player in - player.setWeight(in: tournament) + player.setComputedRank(in: tournament) } try dataStore.playerRegistrations.addOrUpdate(contentOfs: tournament.unsortedPlayers()) diff --git a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift index e3a828a..db50340 100644 --- a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift +++ b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift @@ -83,7 +83,7 @@ struct InscriptionManagerView: View { selectionSearchField = nil players.forEach { player in let newPlayer = PlayerRegistration(importedPlayer: player) - newPlayer.setWeight(in: tournament) + newPlayer.setComputedRank(in: tournament) createdPlayers.insert(newPlayer) createdPlayerIds.insert(newPlayer.id) } @@ -529,7 +529,7 @@ struct InscriptionManagerView: View { fetchPlayers.first(where: { id == $0.license }) }.forEach { player in let player = PlayerRegistration(importedPlayer: player) - player.setWeight(in: tournament) + player.setComputedRank(in: tournament) currentSelection.insert(player) }