diff --git a/lib/data/dao/game_dao.dart b/lib/data/dao/game_dao.dart index 1c19187..9d11d55 100644 --- a/lib/data/dao/game_dao.dart +++ b/lib/data/dao/game_dao.dart @@ -1,4 +1,30 @@ import 'package:game_tracker/data/database.dart'; import 'package:drift/drift.dart'; -extension GameDao on AppDatabase {} +extension GameDao on AppDatabase { + Future> getAllGames() async { + return await select(gameTable).get(); + } + + Future getGameById(int id) async { + return await (select( + gameTable, + )..where((ga) => ga.id.equals(id))).getSingle(); + } + + Future addGame(int id, String name) async { + await into( + gameTable, + ).insert(GameTableCompanion.insert(name: name)); + } + + Future deleteGameById(int id) async { + await (delete(gameTable)..where((ga) => ga.id.equals(id))).go(); + } + + Future updateGameName(int id, String newName) async { + await (update(gameTable)..where((ga) => ga.id.equals(id))).write( + GameTableCompanion(name: Value(newName)), + ); + } +} diff --git a/lib/data/dao/group_dao.dart b/lib/data/dao/group_dao.dart index 5ebf772..496989a 100644 --- a/lib/data/dao/group_dao.dart +++ b/lib/data/dao/group_dao.dart @@ -9,7 +9,7 @@ extension GroupDao on AppDatabase { Future getGroupById(String id) async { return await (select( groupTable, - )..where((g) => g.id.equals(id))).getSingle(); + )..where((gr) => gr.id.equals(id))).getSingle(); } Future addGroup(String id, String name) async { @@ -18,12 +18,12 @@ extension GroupDao on AppDatabase { ).insert(GroupTableCompanion.insert(id: id, name: name)); } - Future deleteGroup(String id) async { - await (delete(groupTable)..where((g) => g.id.equals(id))).go(); + Future deleteGroupById(String id) async { + await (delete(groupTable)..where((gr) => gr.id.equals(id))).go(); } - Future updateGroupname(String id, String newName) async { - await (update(groupTable)..where((g) => g.id.equals(id))).write( + Future updateGroupName(String id, String newName) async { + await (update(groupTable)..where((gr) => gr.id.equals(id))).write( GroupTableCompanion(name: Value(newName)), ); } diff --git a/lib/data/dao/match_dao.dart b/lib/data/dao/match_dao.dart index b577671..e0cc894 100644 --- a/lib/data/dao/match_dao.dart +++ b/lib/data/dao/match_dao.dart @@ -1,4 +1,23 @@ import 'package:game_tracker/data/database.dart'; -import 'package:drift/drift.dart'; -extension MatchDao on AppDatabase {} +extension MatchDao on AppDatabase { + Future> getAllMatches() async { + return await select(matchTable).get(); + } + + Future getMatchById(String id) async { + return await (select( + matchTable, + )..where((m) => m.id.equals(id))).getSingle(); + } + + Future addMatch(String matchId, int gameId, String groupId, DateTime createdAt) async { + await into( + matchTable, + ).insert(MatchTableCompanion.insert(id: matchId, gameId: gameId, groupId: groupId, createdAt: createdAt)); + } + + Future deleteMatchById(String id) async { + await (delete(matchTable)..where((m) => m.id.equals(id))).go(); + } +} \ No newline at end of file diff --git a/lib/data/dao/result_placement_dao.dart b/lib/data/dao/result_placement_dao.dart index 2396a3b..dd3eb48 100644 --- a/lib/data/dao/result_placement_dao.dart +++ b/lib/data/dao/result_placement_dao.dart @@ -1,4 +1,36 @@ import 'package:game_tracker/data/database.dart'; import 'package:drift/drift.dart'; -extension ResultPlacementDao on AppDatabase {} +extension ResultPlacementDao on AppDatabase { + Future> getAllResultPlacements() async { + return await select(resultPlacementTable).get(); + } + + Future> getAllResultPlacementsByMatchId(String matchId) async { + return await (select( + resultPlacementTable, + )..where((rP) => rP.matchId.equals(matchId))).get(); + } + + Future> getAllResultPlacementsByUserId(String userId) async { + return await (select( + resultPlacementTable, + )..where((rP) => rP.matchId.equals(userId))).get(); + } + + Future addResultPlacement(String matchId, String userId, int placement) async { + await into( + resultPlacementTable, + ).insert(ResultPlacementTableCompanion.insert(matchId: matchId, userId: userId, placement: placement)); + } + + Future deleteResultPlacementsByMatchId(String matchId) async { + await (delete(resultPlacementTable)..where((rP) => rP.matchId.equals(matchId))).go(); + } + + Future updateResultPlacement(String matchId, String userId, int placement) async { + await (update(resultPlacementTable)..where((rP) => rP.matchId.equals(matchId))..where((rP) => rP.userId.equals(userId))).write( + ResultPlacementTableCompanion(placement: Value(placement)), + ); + } +} diff --git a/lib/data/dao/result_score_dao.dart b/lib/data/dao/result_score_dao.dart index dbbc79f..f100551 100644 --- a/lib/data/dao/result_score_dao.dart +++ b/lib/data/dao/result_score_dao.dart @@ -1,4 +1,36 @@ import 'package:game_tracker/data/database.dart'; import 'package:drift/drift.dart'; -extension ResultScoreDao on AppDatabase {} +extension ResultScoreDao on AppDatabase { + Future> getAllResultScores() async { + return await select(resultScoreTable).get(); + } + + Future> getAllResultScoresByMatchId(String matchId) async { + return await (select( + resultScoreTable, + )..where((rS) => rS.matchId.equals(matchId))).get(); + } + + Future> getAllResultScoresByUserId(String userId) async { + return await (select( + resultScoreTable, + )..where((rS) => rS.matchId.equals(userId))).get(); + } + + Future addResultScore(String matchId, String userId, int score) async { + await into( + resultScoreTable, + ).insert(ResultScoreTableCompanion.insert(matchId: matchId, userId: userId, score: score)); + } + + Future deleteResultScoresByMatchId(String matchId) async { + await (delete(resultScoreTable)..where((rS) => rS.matchId.equals(matchId))).go(); + } + + Future updateResultScore(String matchId, String userId, int score) async { + await (update(resultScoreTable)..where((rS) => rS.matchId.equals(matchId))..where((rS) => rS.userId.equals(userId))).write( + ResultScoreTableCompanion(score: Value(score)), + ); + } +} diff --git a/lib/data/dao/result_win_dao.dart b/lib/data/dao/result_win_dao.dart index d4d5794..3b93910 100644 --- a/lib/data/dao/result_win_dao.dart +++ b/lib/data/dao/result_win_dao.dart @@ -1,4 +1,36 @@ import 'package:game_tracker/data/database.dart'; import 'package:drift/drift.dart'; -extension ResultWinDao on AppDatabase {} +extension ResultWinDao on AppDatabase { + Future> getAllResultWins() async { + return await select(resultWinTable).get(); + } + + Future getResultWinByMatchId(String matchId) async { + return await (select( + resultWinTable, + )..where((rW) => rW.matchId.equals(matchId))).getSingle(); + } + + Future> getAllResultWinsByUserId(String userId) async { + return await (select( + resultWinTable, + )..where((rW) => rW.matchId.equals(userId))).get(); + } + + Future addResultWin(String matchId, String winnerId) async { + await into( + resultWinTable, + ).insert(ResultWinTableCompanion.insert(matchId: matchId, winnerId: winnerId)); + } + + Future deleteResultWinByMatchId(String matchId) async { + await (delete(resultWinTable)..where((rW) => rW.matchId.equals(matchId))).go(); + } + + Future updateResultWin(String matchId, String newWinnerId) async { + await (update(resultWinTable)..where((rW) => rW.matchId.equals(matchId))).write( + ResultWinTableCompanion(winnerId: Value(newWinnerId)), + ); + } +} diff --git a/lib/data/dao/user_dao.dart b/lib/data/dao/user_dao.dart index 7d89fa7..2cb95b1 100644 --- a/lib/data/dao/user_dao.dart +++ b/lib/data/dao/user_dao.dart @@ -14,7 +14,7 @@ extension UserDao on AppDatabase { await into(userTable).insert(UserTableCompanion.insert(id: id, name: name)); } - Future deleteUser(String id) async { + Future deleteUserById(String id) async { await (delete(userTable)..where((u) => u.id.equals(id))).go(); }