Implemented basic structure

This commit is contained in:
2025-11-08 15:21:05 +01:00
parent 0e027f258a
commit 4503574443
19 changed files with 1295 additions and 1565 deletions

31
lib/data/db/database.dart Normal file
View File

@@ -0,0 +1,31 @@
import 'package:drift/drift.dart';
import 'package:drift_flutter/drift_flutter.dart';
import 'package:game_tracker/data/dao/group_dao.dart';
import 'package:game_tracker/data/dao/player_dao.dart';
import 'package:game_tracker/data/dao/player_group_dao.dart';
import 'package:game_tracker/data/db/tables/group_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';
part 'database.g.dart';
@DriftDatabase(
tables: [PlayerTable, GroupTable, PlayerGroupTable],
daos: [GroupDao, PlayerDao, PlayerGroupDao],
)
class AppDatabase extends _$AppDatabase {
AppDatabase([QueryExecutor? executor]) : super(executor ?? _openConnection());
@override
int get schemaVersion => 1;
static QueryExecutor _openConnection() {
return driftDatabase(
name: 'gametracker_db',
native: const DriftNativeOptions(
databaseDirectory: getApplicationSupportDirectory,
),
);
}
}

1092
lib/data/db/database.g.dart Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
import 'package:drift/drift.dart';
class GroupTable extends Table {
TextColumn get id => text()();
TextColumn get name => text()();
@override
Set<Column<Object>> get primaryKey => {id};
}

View File

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

View File

@@ -0,0 +1,9 @@
import 'package:drift/drift.dart';
class PlayerTable extends Table {
TextColumn get id => text()();
TextColumn get name => text()();
@override
Set<Column<Object>> get primaryKey => {id};
}