Phase 1 du MVP : schéma SQLite porté depuis le prototype web, seed des règles/récompenses, flux d'onboarding en 4 étapes et écran d'accueil minimal. Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
2.1 KiB
Dart
55 lines
2.1 KiB
Dart
import 'package:drift/drift.dart';
|
|
|
|
class Enfants extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get prenom => text()();
|
|
TextColumn get dateNaissance => text().nullable()();
|
|
IntColumn get score => integer().withDefault(const Constant(0))();
|
|
TextColumn get couleur => text().withDefault(const Constant('#6C63FF'))();
|
|
IntColumn get ordre => integer().withDefault(const Constant(0))();
|
|
|
|
@override
|
|
List<Set<Column<Object>>>? get uniqueKeys => [
|
|
{prenom},
|
|
];
|
|
}
|
|
|
|
class Regles extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get libelle => text()();
|
|
IntColumn get points => integer()();
|
|
TextColumn get icone => text().withDefault(const Constant('⭐'))();
|
|
BoolColumn get actif => boolean().withDefault(const Constant(true))();
|
|
IntColumn get ordre => integer().withDefault(const Constant(0))();
|
|
TextColumn get famille => text().withDefault(const Constant('📋 Autre'))();
|
|
IntColumn get familleOrdre => integer().withDefault(const Constant(99))();
|
|
}
|
|
|
|
class Mouvements extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
IntColumn get enfantId => integer().references(Enfants, #id)();
|
|
IntColumn get regleId => integer().nullable().references(Regles, #id)();
|
|
IntColumn get recompenseId => integer().nullable().references(Recompenses, #id)();
|
|
IntColumn get delta => integer()();
|
|
TextColumn get note => text().nullable()();
|
|
DateTimeColumn get creeLe => dateTime().withDefault(currentDateAndTime)();
|
|
BoolColumn get annule => boolean().withDefault(const Constant(false))();
|
|
}
|
|
|
|
class Recompenses extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get libelle => text()();
|
|
IntColumn get coutPoints => integer()();
|
|
TextColumn get icone => text().withDefault(const Constant('🎁'))();
|
|
BoolColumn get actif => boolean().withDefault(const Constant(true))();
|
|
IntColumn get ordre => integer().withDefault(const Constant(0))();
|
|
}
|
|
|
|
class Config extends Table {
|
|
TextColumn get cle => text()();
|
|
TextColumn get valeur => text()();
|
|
|
|
@override
|
|
Set<Column<Object>>? get primaryKey => {cle};
|
|
}
|