Julien Martin aac3a729a2 Initialise l'app Flutter mobile : BDD Drift, onboarding sans compte et tableau de bord.
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>
2026-06-12 12:12:01 +02:00

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};
}