diff --git a/PadelClub/Data/Match.swift b/PadelClub/Data/Match.swift index 43988ed..ec04697 100644 --- a/PadelClub/Data/Match.swift +++ b/PadelClub/Data/Match.swift @@ -72,8 +72,8 @@ final class Match: BaseMatch, SideStorable { } var tournamentStore: TournamentStore { - if let store = self.store as? TournamentStore { - return store + if let id = self.store?.identifier { + return TournamentLibrary.shared.store(tournamentId: id) } fatalError("missing store for \(String(describing: type(of: self)))") } @@ -91,14 +91,11 @@ final class Match: BaseMatch, SideStorable { // MARK: - override func deleteDependencies() { - guard let tournament = self.currentTournament() else { - return - } let teamScores = self.teamScores for teamScore in teamScores { teamScore.deleteDependencies() } - tournament.tournamentStore.teamScores.deleteDependencies(teamScores) + self.tournamentStore.teamScores.deleteDependencies(teamScores) } func indexInRound(in matches: [Match]? = nil) -> Int { diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index 2ec009b..87acac4 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -355,6 +355,13 @@ final class Tournament: BaseTournament { store.rounds.deleteDependencies(rounds) store.matchSchedulers.deleteDependencies(self._matchSchedulers()) + + if let event = self.eventObject() { + if event.tournaments.count == 1 && event.tournaments.first?.id == self.id { + DataStore.shared.events.deleteDependencies([event]) + } + } + } // MARK: - Computed Dependencies