From a6e09712087ff4926d90f470a8bc0a6a5f8c9ac2 Mon Sep 17 00:00:00 2001 From: gelbeinhalb Date: Tue, 12 May 2026 20:45:12 +0200 Subject: [PATCH] deleted teams get ignored when includeDeleted is false --- lib/data/dao/team_dao.dart | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/lib/data/dao/team_dao.dart b/lib/data/dao/team_dao.dart index cba68fb..df51114 100644 --- a/lib/data/dao/team_dao.dart +++ b/lib/data/dao/team_dao.dart @@ -83,25 +83,40 @@ class TeamDao extends DatabaseAccessor with _$TeamDaoMixin { /* Read */ /// Retrieves the total count of teams in the database. - Future getTeamCount() async { - final count = - await (selectOnly(teamTable)..addColumns([teamTable.id.count()])) - .map((row) => row.read(teamTable.id.count())) - .getSingle(); + /// By default, only returns non-deleted players. + Future getTeamCount({bool includeDeleted = false}) async { + final query = selectOnly(teamTable)..addColumns([teamTable.id.count()]); + if (!includeDeleted) { + query.where(teamTable.deleted.equals(false)); + } + final count = await query + .map((row) => row.read(teamTable.id.count())) + .getSingle(); return count ?? 0; } /// Checks if a team with the given [teamId] exists in the database. + /// By default, only returns non-deleted players. /// Returns `true` if the team exists, `false` otherwise. - Future teamExists({required String teamId}) async { + Future teamExists({ + required String teamId, + bool includeDeleted = false, + }) async { final query = select(teamTable)..where((t) => t.id.equals(teamId)); + if (!includeDeleted) { + query.where((t) => t.deleted.equals(false)); + } final result = await query.getSingleOrNull(); return result != null; } /// Retrieves all teams from the database. - Future> getAllTeams() async { + /// By default, only returns non-deleted players. + Future> getAllTeams({bool includeDeleted = false}) async { final query = select(teamTable); + if (!includeDeleted) { + query.where((t) => t.deleted.equals(false)); + } final result = await query.get(); return Future.wait( result.map((row) async { @@ -117,8 +132,15 @@ class TeamDao extends DatabaseAccessor with _$TeamDaoMixin { } /// Retrieves a [Team] by its [teamId], including its members. - Future getTeamById({required String teamId}) async { + /// By default, only returns non-deleted players. + Future getTeamById({ + required String teamId, + bool includeDeleted = false, + }) async { final query = select(teamTable)..where((t) => t.id.equals(teamId)); + if (!includeDeleted) { + query.where((t) => t.deleted.equals(false)); + } final result = await query.getSingle(); final members = await _getTeamMembers(teamId: teamId); return Team(