From 7b7fbd47a58f8429ca282479a71926ef5156bfa2 Mon Sep 17 00:00:00 2001 From: mathiskirchner Date: Tue, 24 Jun 2025 20:15:06 +0200 Subject: [PATCH] created tables for Group, User and UserGrouo --- lib/data/database.dart | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 lib/data/database.dart diff --git a/lib/data/database.dart b/lib/data/database.dart new file mode 100644 index 0000000..2c04942 --- /dev/null +++ b/lib/data/database.dart @@ -0,0 +1,46 @@ +import 'package:drift/drift.dart'; +import 'package:drift_flutter/drift_flutter.dart'; +import 'package:path_provider/path_provider.dart'; + +part 'database.g.dart'; + +class User extends Table { + TextColumn get id => text()(); + TextColumn get name => text()(); + + @override + Set> get primaryKey => {id}; +} + +class Group extends Table { + TextColumn get id => text()(); + TextColumn get name => text()(); + + @override + Set> get primaryKey => {id}; +} + +class UserGroup extends Table { + TextColumn get userId => text().references(User, #id)(); + TextColumn get groupId => text().references(Group, #id)(); + + @override + Set> get primaryKey => {userId, groupId}; +} + +@DriftDatabase(tables: [User, Group, UserGroup]) +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, + ), + ); + } +} \ No newline at end of file