deleted teams get ignored when includeDeleted is false
Some checks failed
Pull Request Pipeline / test (pull_request) Failing after 46s
Pull Request Pipeline / lint (pull_request) Successful in 54s

This commit is contained in:
gelbeinhalb
2026-05-12 20:45:12 +02:00
parent b1934e64bd
commit a6e0971208

View File

@@ -83,25 +83,40 @@ class TeamDao extends DatabaseAccessor<AppDatabase> with _$TeamDaoMixin {
/* Read */ /* Read */
/// Retrieves the total count of teams in the database. /// Retrieves the total count of teams in the database.
Future<int> getTeamCount() async { /// By default, only returns non-deleted players.
final count = Future<int> getTeamCount({bool includeDeleted = false}) async {
await (selectOnly(teamTable)..addColumns([teamTable.id.count()])) final query = selectOnly(teamTable)..addColumns([teamTable.id.count()]);
.map((row) => row.read(teamTable.id.count())) if (!includeDeleted) {
.getSingle(); query.where(teamTable.deleted.equals(false));
}
final count = await query
.map((row) => row.read(teamTable.id.count()))
.getSingle();
return count ?? 0; return count ?? 0;
} }
/// Checks if a team with the given [teamId] exists in the database. /// 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. /// Returns `true` if the team exists, `false` otherwise.
Future<bool> teamExists({required String teamId}) async { Future<bool> teamExists({
required String teamId,
bool includeDeleted = false,
}) async {
final query = select(teamTable)..where((t) => t.id.equals(teamId)); final query = select(teamTable)..where((t) => t.id.equals(teamId));
if (!includeDeleted) {
query.where((t) => t.deleted.equals(false));
}
final result = await query.getSingleOrNull(); final result = await query.getSingleOrNull();
return result != null; return result != null;
} }
/// Retrieves all teams from the database. /// Retrieves all teams from the database.
Future<List<Team>> getAllTeams() async { /// By default, only returns non-deleted players.
Future<List<Team>> getAllTeams({bool includeDeleted = false}) async {
final query = select(teamTable); final query = select(teamTable);
if (!includeDeleted) {
query.where((t) => t.deleted.equals(false));
}
final result = await query.get(); final result = await query.get();
return Future.wait( return Future.wait(
result.map((row) async { result.map((row) async {
@@ -117,8 +132,15 @@ class TeamDao extends DatabaseAccessor<AppDatabase> with _$TeamDaoMixin {
} }
/// Retrieves a [Team] by its [teamId], including its members. /// Retrieves a [Team] by its [teamId], including its members.
Future<Team> getTeamById({required String teamId}) async { /// By default, only returns non-deleted players.
Future<Team> getTeamById({
required String teamId,
bool includeDeleted = false,
}) async {
final query = select(teamTable)..where((t) => t.id.equals(teamId)); 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 result = await query.getSingle();
final members = await _getTeamMembers(teamId: teamId); final members = await _getTeamMembers(teamId: teamId);
return Team( return Team(