add u18 management

paca_championship
Raz 10 months ago
parent f4718b8010
commit 9b80437554
  1. 13
      PadelClub/Data/PlayerRegistration.swift
  2. 8
      PadelClub/Data/Tournament.swift
  3. 2
      PadelClub/Utils/FileImportManager.swift
  4. 21
      PadelClub/Utils/PadelRule.swift
  5. 2
      PadelClub/Views/Navigation/Umpire/PadelClubView.swift

@ -234,11 +234,14 @@ final class PlayerRegistration: ModelObject, Storable {
if isUnranked() && source == nil {
alerts.append(.unranked(self))
} else if source != .frenchFederationVerified && source != .frenchFederationEQVerified {
if tournament.tournamentCategory == .men && isMalePlayer() == false {
alerts.append(.playerSexInvalid(self))
}
if tournament.tournamentCategory == .women && isMalePlayer() {
alerts.append(.playerSexInvalid(self))
if tournament.federalTournamentAge == .senior {
if tournament.tournamentCategory == .men && isMalePlayer() == false {
alerts.append(.playerSexInvalid(self))
}
if tournament.tournamentCategory == .women && isMalePlayer() {
alerts.append(.playerSexInvalid(self))
}
}
if let computedAge, tournament.federalTournamentAge.isAgeValid(age: computedAge) == false {
alerts.append(.playerAgeInvalid(self))

@ -1620,7 +1620,13 @@ defer {
}
}
var championshipImportKey: String {
if federalAgeCategory == .senior {
return tournamentCategory.importingRawValue
} else {
return federalAgeCategory.exportingRawValue
}
}
func updateWeights() {
let teams = self.unsortedTeams()
teams.forEach { team in

@ -444,7 +444,7 @@ class FileImportManager {
case .byCoupleOfLines:
chunks = lines.chunked(into: 2)
case .byColumn:
chunks = lines.extractPlayers(filterKey: tournament.tournamentCategory.importingRawValue.capitalized, separator: separator)
chunks = lines.extractPlayers(filterKey: tournament.championshipImportKey.capitalized, separator: separator)
}
let results = chunks.map { teamSource in

@ -194,6 +194,27 @@ enum FederalTournamentAge: Int, Hashable, Codable, CaseIterable, Identifiable {
}
}
var exportingRawValue: String {
switch self {
case .unlisted:
return "Animation"
case .a11_12:
return "U2 ans"
case .a13_14:
return "U14 ans"
case .a15_16:
return "U16 ans"
case .a17_18:
return "U18 ans"
case .senior:
return "Senior"
case .a45:
return "45 ans"
case .a55:
return "55 ans"
}
}
var importingRawValue: String {
switch self {
case .unlisted:

@ -269,7 +269,7 @@ func fetchPlayerData(for licenseID: String) async throws -> [Player]? {
request.setValue("XMLHttpRequest", forHTTPHeaderField: "X-Requested-With")
// Add cookies if needed (example cookie header value shown, replace with valid cookies)
request.setValue("JSESSIONID=78744C195D45C9011A20B12D166CEE9E; AWSALB=3k/WWoSO6aLh6COUzTBBBVhCTrIoJaMiuy+BUploqwzlHhjF/zq3Ms8TuRIwyLN7EgF++u/fndF5F20g196hF8xqMA7757m6dicn+MIRSRP2Q3d2qWEqRrbe0MgB; AWSALBCORS=3k/WWoSO6aLh6COUzTBBBVhCTrIoJaMiuy+BUploqwzlHhjF/zq3Ms8TuRIwyLN7EgF++u/fndF5F20g196hF8xqMA7757m6dicn+MIRSRP2Q3d2qWEqRrbe0MgB; datadome=TqnBq0og_q~eDOM31m8gZacN9zNMusX6vLBtbnBySaCw8jbr6uEW89tFkfK2llcUH~zdUrN71ic7C5QgmvUkdYplKsxL6SKwV~1s2yrdlVgnjU5pOkzVK64CU0cHJzV6; SSESS7ba44afc36c80c3faa2b8fa87e7742c5=Wfc_Bx21iDLRWgzfE6duKBHsSo7FvYqlqz7J_JmIgXc; tc_cj_v2=%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMMORPMMMQNNZZZ%5D777m_iZZZ%22**%22%27%20ZZZKQMMQMPMPMKOPZZZ%5D777%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMPLNJNKJQQJZZZ%5D777m_iZZZ%22**%22%27%20ZZZKQMPLNJNLQOJKZZZ%5D777%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMPQNSPJNLSJZZZ%5D; tc_cj_v2_cmp=; tc_cj_v2_med=; _pcid=%7B%22browserId%22%3A%22m42mi4kbtfuyj367%22%2C%22_t%22%3A%22mjr1fm32%7Cm42mi4r2%22%7D; _pctx=%7Bu%7DN4IgrgzgpgThIC4B2YA2qA05owMoBcBDfSREQpAeyRCwgEt8oBJAE0RXSwH18yBbAFYwAjADN%2BAZgCsAH34AWAEz96CmNJABfIA; _pprv=eyJjb25zZW50Ijp7IjAiOnsibW9kZSI6ImVzc2VudGlhbCJ9LCI3Ijp7Im1vZGUiOiJvcHQtaW4ifX0sInB1cnBvc2VzIjpudWxsLCJfdCI6Im1qcjFmbHdofG00Mm1pNGtoIn0%3D; xtan=-; xtant=1; TCID=124122155494907703483; TCPID=124115115191501043230; xtvrn=$548419$; visid_incap_2712217=PSfJngzoSuiowsuXXhvOu5K+7mUAAAAAQUIPAAAAAAAleL9ldvN/FC1VykkU9ret; SessionStatId=10.91.140.42.1662124965429001", forHTTPHeaderField: "Cookie")
request.setValue("JSESSIONID=D4F6672C85C69F2221A34DA7573E6DB2; AWSALB=r+eQo2F3BgjLCg2GN+hICmxbd2iUrF9Q6Eq7ihPvtv7Hjpj7PDfvXIl2s6Ny++tjlbZRE4B48u8NiV+LfmYuuDCiCi5M3HkYn9a9/SUBK7TbH1UUyGmH+3Wsr67R; AWSALBCORS=r+eQo2F3BgjLCg2GN+hICmxbd2iUrF9Q6Eq7ihPvtv7Hjpj7PDfvXIl2s6Ny++tjlbZRE4B48u8NiV+LfmYuuDCiCi5M3HkYn9a9/SUBK7TbH1UUyGmH+3Wsr67R; datadome=QNA97FsdNhy8W9ry4jSSpxMF_HlDz56VkztCkM2u3GIropzVSIljKI9jT_Nve4g8OgtCT_MTxZRi8Xpwe3xJ6d5Lygt7S7Eos8dQqddCeWYaeJDgTreRIDrNYfIoZMwI; xtan=-; xtant=1; tc_cj_v2=%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMMORPMMMQNNZZZ%5D777m_iZZZ%22**%22%27%20ZZZKQMMQMPMPMKOPZZZ%5D777%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMPLNJNKJQQJZZZ%5D777m_iZZZ%22**%22%27%20ZZZKQMPLNJNLQOJKZZZ%5D777%5Ecl_%5Dny%5B%5D%5D_mmZZZZZZKQMPRQLQPMPLRZZZ%5D; tc_cj_v2_cmp=; tc_cj_v2_med=; SSESS7ba44afc36c80c3faa2b8fa87e7742c5=Wfc_Bx21iDLRWgzfE6duKBHsSo7FvYqlqz7J_JmIgXc; _pcid=%7B%22browserId%22%3A%22m42mi4kbtfuyj367%22%2C%22_t%22%3A%22mjr1fm32%7Cm42mi4r2%22%7D; _pctx=%7Bu%7DN4IgrgzgpgThIC4B2YA2qA05owMoBcBDfSREQpAeyRCwgEt8oBJAE0RXSwH18yBbAFYwAjADN%2BAZgCsAH34AWAEz96CmNJABfIA; _pprv=eyJjb25zZW50Ijp7IjAiOnsibW9kZSI6ImVzc2VudGlhbCJ9LCI3Ijp7Im1vZGUiOiJvcHQtaW4ifX0sInB1cnBvc2VzIjpudWxsLCJfdCI6Im1qcjFmbHdofG00Mm1pNGtoIn0%3D; TCID=124122155494907703483; TCPID=124115115191501043230; xtvrn=$548419$; visid_incap_2712217=PSfJngzoSuiowsuXXhvOu5K+7mUAAAAAQUIPAAAAAAAleL9ldvN/FC1VykkU9ret; SessionStatId=10.91.140.42.1662124965429001", forHTTPHeaderField: "Cookie")
let (data, _) = try await URLSession.shared.data(for: request)
let decoder = JSONDecoder()

Loading…
Cancel
Save