First version of retrieving a gamesession from the db

This commit is contained in:
2025-08-21 22:30:13 +02:00
parent 4901e27b90
commit 7a420e909a
28 changed files with 868 additions and 1175 deletions

View File

@@ -1,13 +0,0 @@
import 'package:cabo_counter/data/db/tables/game_session_table.dart';
import 'package:cabo_counter/data/db/tables/players_table.dart';
import 'package:drift/drift.dart';
class PlayerScoresTable extends Table {
TextColumn get roundId =>
text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)();
TextColumn get playerName => text().references(PlayersTable, #name)();
IntColumn get totalScore => integer()();
@override
Set<Column<Object>> get primaryKey => {roundId, playerName};
}

View File

@@ -1,9 +1,12 @@
import 'package:cabo_counter/data/db/tables/game_session_table.dart';
import 'package:drift/drift.dart';
class PlayersTable extends Table {
class PlayerTable extends Table {
TextColumn get playerId =>
text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)();
TextColumn get gameId =>
text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)();
IntColumn get totalScore => integer()();
IntColumn get position => integer()();
TextColumn get name => text()();
}

View File

@@ -3,11 +3,11 @@ import 'package:drift/drift.dart';
class RoundScoresTable extends Table {
TextColumn get roundId =>
text().references(RoundsTable, #id, onDelete: KeyAction.cascade)();
TextColumn get playerName => text()();
text().references(RoundsTable, #roundId, onDelete: KeyAction.cascade)();
TextColumn get playerId => text()();
IntColumn get score => integer()();
IntColumn get scoreUpdate => integer()();
@override
Set<Column<Object>> get primaryKey => {roundId, playerName};
Set<Column<Object>> get primaryKey => {roundId, playerId};
}

View File

@@ -6,7 +6,8 @@ class RoundsTable extends Table {
TextColumn get gameId =>
text().references(GameSessionTable, #id, onDelete: KeyAction.cascade)();
IntColumn get roundNumber => integer()();
TextColumn get kamikazePlayer => text().nullable()();
IntColumn get caboPlayerIndex => integer()();
IntColumn get kamikazePlayerIndex => integer().nullable()();
@override
Set<Column<Object>> get primaryKey => {roundId};