import 'package:drift/drift.dart'; import 'package:game_tracker/data/db/database.dart'; import 'package:game_tracker/data/db/tables/player_table.dart'; import 'package:game_tracker/data/dto/player.dart'; part 'player_dao.g.dart'; @DriftAccessor(tables: [PlayerTable]) class PlayerDao extends DatabaseAccessor with _$PlayerDaoMixin { PlayerDao(super.db); Future> getAllUsers() async { return await select(UserTable).get(); } Future getUserById(String id) async { return await (select(user)..where((u) => u.id.equals(id))).getSingle(); } Future addUser(String id, String name) async { await into(user).insert(UserCompanion.insert(id: id, name: name)); } Future deleteUser(String id) async { await (delete(user)..where((u) => u.id.equals(id))).go(); } Future updateUsername(String id, String newName) async { await (update(user)..where((u) => u.id.equals(id))).write( UserCompanion(name: Value(newName)), ); } }