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>>? 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>? get primaryKey => {cle}; }