created tables for Group, User and UserGrouo

This commit is contained in:
2025-06-24 20:15:06 +02:00
parent b2d686b230
commit 998c34e555

46
lib/data/database.dart Normal file
View File

@@ -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<Column<Object>> get primaryKey => {id};
}
class Group extends Table {
TextColumn get id => text()();
TextColumn get name => text()();
@override
Set<Column<Object>> get primaryKey => {id};
}
class UserGroup extends Table {
TextColumn get userId => text().references(User, #id)();
TextColumn get groupId => text().references(Group, #id)();
@override
Set<Column<Object>> 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,
),
);
}
}