Added basic structure for game implementation

This commit is contained in:
2025-11-12 11:41:06 +01:00
parent 25c7b37df3
commit a922f24150
12 changed files with 1924 additions and 90 deletions

View File

@@ -2,10 +2,14 @@ import 'package:drift/drift.dart';
import 'package:drift_flutter/drift_flutter.dart';
import 'package:game_tracker/data/dao/game_dao.dart';
import 'package:game_tracker/data/dao/group_dao.dart';
import 'package:game_tracker/data/dao/group_game_dao.dart';
import 'package:game_tracker/data/dao/player_dao.dart';
import 'package:game_tracker/data/dao/player_game_dao.dart';
import 'package:game_tracker/data/dao/player_group_dao.dart';
import 'package:game_tracker/data/db/tables/game_table.dart';
import 'package:game_tracker/data/db/tables/group_game_table.dart';
import 'package:game_tracker/data/db/tables/group_table.dart';
import 'package:game_tracker/data/db/tables/player_game_table.dart';
import 'package:game_tracker/data/db/tables/player_group_table.dart';
import 'package:game_tracker/data/db/tables/player_table.dart';
import 'package:path_provider/path_provider.dart';
@@ -13,8 +17,22 @@ import 'package:path_provider/path_provider.dart';
part 'database.g.dart';
@DriftDatabase(
tables: [PlayerTable, GroupTable, PlayerGroupTable, GameTable],
daos: [GroupDao, PlayerDao, PlayerGroupDao, GameDao],
tables: [
PlayerTable,
GroupTable,
PlayerGroupTable,
PlayerGameTable,
GroupGameTable,
GameTable,
],
daos: [
GroupDao,
PlayerDao,
GameDao,
PlayerGroupDao,
PlayerGameDao,
GroupGameDao,
],
)
class AppDatabase extends _$AppDatabase {
AppDatabase([QueryExecutor? executor]) : super(executor ?? _openConnection());

File diff suppressed because it is too large Load Diff

View File

@@ -3,6 +3,7 @@ import 'package:drift/drift.dart';
class GameTable extends Table {
TextColumn get id => text()();
TextColumn get name => text()();
TextColumn get winnerId => text().nullable()();
@override
Set<Column<Object>> get primaryKey => {id};

View File

@@ -0,0 +1,11 @@
import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/tables/group_table.dart';
import 'package:game_tracker/data/db/tables/player_table.dart';
class GroupGameTable extends Table {
TextColumn get groupId => text().references(PlayerTable, #id)();
TextColumn get gameId => text().references(GroupTable, #id)();
@override
Set<Column<Object>> get primaryKey => {groupId, gameId};
}

View File

@@ -0,0 +1,11 @@
import 'package:drift/drift.dart';
import 'package:game_tracker/data/db/tables/group_table.dart';
import 'package:game_tracker/data/db/tables/player_table.dart';
class PlayerGameTable extends Table {
TextColumn get playerId => text().references(PlayerTable, #id)();
TextColumn get gameId => text().references(GroupTable, #id)();
@override
Set<Column<Object>> get primaryKey => {playerId, gameId};
}