WIP: Implementierung von deleted Attribut #204
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user