Seperated score entry class
This commit is contained in:
@@ -1,26 +1,10 @@
|
|||||||
import 'package:drift/drift.dart';
|
import 'package:drift/drift.dart';
|
||||||
import 'package:tallee/data/db/database.dart';
|
import 'package:tallee/data/db/database.dart';
|
||||||
import 'package:tallee/data/db/tables/score_table.dart';
|
import 'package:tallee/data/db/tables/score_table.dart';
|
||||||
|
import 'package:tallee/data/dto/score_entry.dart';
|
||||||
|
|
||||||
part 'score_dao.g.dart';
|
part 'score_dao.g.dart';
|
||||||
|
|
||||||
/// A data class representing a score entry.
|
|
||||||
class ScoreEntry {
|
|
||||||
final String playerId;
|
|
||||||
final String matchId;
|
|
||||||
final int roundNumber;
|
|
||||||
final int score;
|
|
||||||
final int change;
|
|
||||||
|
|
||||||
ScoreEntry({
|
|
||||||
required this.playerId,
|
|
||||||
required this.matchId,
|
|
||||||
required this.roundNumber,
|
|
||||||
required this.score,
|
|
||||||
required this.change,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@DriftAccessor(tables: [ScoreTable])
|
@DriftAccessor(tables: [ScoreTable])
|
||||||
class ScoreDao extends DatabaseAccessor<AppDatabase> with _$ScoreDaoMixin {
|
class ScoreDao extends DatabaseAccessor<AppDatabase> with _$ScoreDaoMixin {
|
||||||
ScoreDao(super.db);
|
ScoreDao(super.db);
|
||||||
@@ -68,9 +52,7 @@ class ScoreDao extends DatabaseAccessor<AppDatabase> with _$ScoreDaoMixin {
|
|||||||
required String matchId,
|
required String matchId,
|
||||||
}) async {
|
}) async {
|
||||||
final query = select(scoreTable)
|
final query = select(scoreTable)
|
||||||
..where(
|
..where((s) => s.playerId.equals(playerId) & s.matchId.equals(matchId))
|
||||||
(s) => s.playerId.equals(playerId) & s.matchId.equals(matchId),
|
|
||||||
)
|
|
||||||
..orderBy([(s) => OrderingTerm.asc(s.roundNumber)]);
|
..orderBy([(s) => OrderingTerm.asc(s.roundNumber)]);
|
||||||
final result = await query.get();
|
final result = await query.get();
|
||||||
return result
|
return result
|
||||||
@@ -118,19 +100,19 @@ class ScoreDao extends DatabaseAccessor<AppDatabase> with _$ScoreDaoMixin {
|
|||||||
required int newScore,
|
required int newScore,
|
||||||
required int newChange,
|
required int newChange,
|
||||||
}) async {
|
}) async {
|
||||||
final rowsAffected = await (update(scoreTable)
|
final rowsAffected =
|
||||||
..where(
|
await (update(scoreTable)..where(
|
||||||
(s) =>
|
(s) =>
|
||||||
s.playerId.equals(playerId) &
|
s.playerId.equals(playerId) &
|
||||||
s.matchId.equals(matchId) &
|
s.matchId.equals(matchId) &
|
||||||
s.roundNumber.equals(roundNumber),
|
s.roundNumber.equals(roundNumber),
|
||||||
))
|
))
|
||||||
.write(
|
.write(
|
||||||
ScoreTableCompanion(
|
ScoreTableCompanion(
|
||||||
score: Value(newScore),
|
score: Value(newScore),
|
||||||
change: Value(newChange),
|
change: Value(newChange),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
return rowsAffected > 0;
|
return rowsAffected > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,4 +170,3 @@ class ScoreDao extends DatabaseAccessor<AppDatabase> with _$ScoreDaoMixin {
|
|||||||
return scores.last.score;
|
return scores.last.score;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user