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>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import 'package:bcrypt/bcrypt.dart';
|
||||
|
||||
import '../database/app_database.dart';
|
||||
|
||||
class OnboardingRepository {
|
||||
OnboardingRepository(this._db);
|
||||
|
||||
final AppDatabase _db;
|
||||
|
||||
Future<bool> isComplete() => _db.isOnboardingComplete();
|
||||
|
||||
Future<void> finish({
|
||||
required String childName,
|
||||
required String color,
|
||||
required String pin,
|
||||
required bool importDefaultRules,
|
||||
}) async {
|
||||
await _db.transaction(() async {
|
||||
await _db.insertChild(prenom: childName.trim(), couleur: color);
|
||||
await _db.setPinHash(BCrypt.hashpw(pin, BCrypt.gensalt()));
|
||||
|
||||
if (importDefaultRules) {
|
||||
await _db.importDefaultPack();
|
||||
}
|
||||
|
||||
await _db.completeOnboarding();
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user