diff --git a/PadelClub/Data/Court.swift b/PadelClub/Data/Court.swift index 925b9d9..a1a7a7b 100644 --- a/PadelClub/Data/Court.swift +++ b/PadelClub/Data/Court.swift @@ -32,6 +32,10 @@ final class Court: BaseCourt { try super.init(from: decoder) } + required public init() { + super.init() + } + func courtTitle() -> String { self.name ?? courtIndexTitle() } diff --git a/PadelClub/Data/CustomUser.swift b/PadelClub/Data/CustomUser.swift index a1b58e9..8cc34d9 100644 --- a/PadelClub/Data/CustomUser.swift +++ b/PadelClub/Data/CustomUser.swift @@ -66,6 +66,10 @@ class CustomUser: BaseCustomUser, UserBase { try super.init(from: decoder) } + required public init() { + super.init() + } + public func uuid() throws -> UUID { if let uuid = UUID(uuidString: self.id) { return uuid @@ -254,6 +258,11 @@ class UserCreationForm: CustomUser, UserPasswordBase { fatalError("init(from:) has not been implemented") } + required public init() { + self.password = "" + super.init() + } + public var password: String private enum CodingKeys: String, CodingKey { diff --git a/PadelClub/Data/DateInterval.swift b/PadelClub/Data/DateInterval.swift index 864d9b3..94db947 100644 --- a/PadelClub/Data/DateInterval.swift +++ b/PadelClub/Data/DateInterval.swift @@ -37,6 +37,10 @@ final class DateInterval: BaseDateInterval { try super.init(from: decoder) } + required public init() { + super.init() + } + var range: Range { startDate.. List[str]: """Generate a constructor with all properties as parameters with default values.""" + lines = [" init("] # Generate parameter list @@ -135,6 +136,15 @@ class SwiftModelGenerator: lines.append(f" self.{name} = {name}") lines.append(" }") + + lines.extend([ + " required public override init() {", + " super.init()", + " }", + + ]) + + return lines def _generate_foreign_key_methods(self, properties: List[Dict[str, Any]]) -> List[str]: diff --git a/PadelClub/Data/Match.swift b/PadelClub/Data/Match.swift index 1b27671..e747bea 100644 --- a/PadelClub/Data/Match.swift +++ b/PadelClub/Data/Match.swift @@ -32,6 +32,10 @@ final class Match: BaseMatch, SideStorable { try super.init(from: decoder) } + required public init() { + super.init() + } + func setMatchName(_ serverName: String?) { self.name = serverName } diff --git a/PadelClub/Data/MonthData.swift b/PadelClub/Data/MonthData.swift index 78bed5a..6b486b6 100644 --- a/PadelClub/Data/MonthData.swift +++ b/PadelClub/Data/MonthData.swift @@ -22,6 +22,10 @@ final class MonthData: BaseMonthData { try super.init(from: decoder) } + required public init() { + super.init() + } + func total() -> Int { return (maleCount ?? 0) + (femaleCount ?? 0) } diff --git a/PadelClub/Data/PlayerRegistration.swift b/PadelClub/Data/PlayerRegistration.swift index 3717437..cfa2315 100644 --- a/PadelClub/Data/PlayerRegistration.swift +++ b/PadelClub/Data/PlayerRegistration.swift @@ -108,6 +108,10 @@ final class PlayerRegistration: BasePlayerRegistration, SideStorable { try super.init(from: decoder) } + required public init() { + super.init() + } + var tournamentStore: TournamentStore? { guard let storeId else { fatalError("missing store id for \(String(describing: type(of: self)))") diff --git a/PadelClub/Data/Round.swift b/PadelClub/Data/Round.swift index 452d992..e3a7b90 100644 --- a/PadelClub/Data/Round.swift +++ b/PadelClub/Data/Round.swift @@ -32,6 +32,10 @@ final class Round: BaseRound, SideStorable { try super.init(from: decoder) } + required public init() { + super.init() + } + // MARK: - Computed dependencies var tournamentStore: TournamentStore? { diff --git a/PadelClub/Data/TeamRegistration.swift b/PadelClub/Data/TeamRegistration.swift index 4be73e5..62954c7 100644 --- a/PadelClub/Data/TeamRegistration.swift +++ b/PadelClub/Data/TeamRegistration.swift @@ -90,7 +90,11 @@ final class TeamRegistration: BaseTeamRegistration, SideStorable { required init(from decoder: any Decoder) throws { try super.init(from: decoder) } - + + required public init() { + super.init() + } + var tournamentStore: TournamentStore? { return TournamentLibrary.shared.store(tournamentId: self.tournament) } diff --git a/PadelClub/Data/TeamScore.swift b/PadelClub/Data/TeamScore.swift index cc54a41..18930eb 100644 --- a/PadelClub/Data/TeamScore.swift +++ b/PadelClub/Data/TeamScore.swift @@ -50,6 +50,10 @@ final class TeamScore: BaseTeamScore, SideStorable { try super.init(from: decoder) } + required public init() { + super.init() + } + var tournamentStore: TournamentStore? { guard let storeId else { fatalError("missing store id for \(String(describing: type(of: self)))") diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index 886ea8d..9178e08 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -115,7 +115,11 @@ final class Tournament: BaseTournament { required init(from decoder: Decoder) throws { try super.init(from: decoder) } - + + required public init() { + super.init() + } + var tournamentStore: TournamentStore? { return TournamentLibrary.shared.store(tournamentId: self.id) } diff --git a/PadelClub/Views/Tournament/Subscription/Purchase.swift b/PadelClub/Views/Tournament/Subscription/Purchase.swift index 5a66fa8..d0fcd3c 100644 --- a/PadelClub/Views/Tournament/Subscription/Purchase.swift +++ b/PadelClub/Views/Tournament/Subscription/Purchase.swift @@ -41,6 +41,10 @@ class Purchase: BasePurchase { try super.init(from: decoder) } + required public init() { + super.init() + } + // enum CodingKeys: String, CodingKey, CaseIterable { // case id // case lastUpdate