Ajoute l'espace parent : PIN, grille de règles, historique et annulation.
Phase 2 du MVP Flutter : vérification PIN locale, application des règles par famille, suivi des mouvements et correction avec plancher à 0. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import 'package:bcrypt/bcrypt.dart';
|
||||
|
||||
import '../database/app_database.dart';
|
||||
import '../models/movement_detail.dart';
|
||||
|
||||
class ParentRepository {
|
||||
ParentRepository(this._db);
|
||||
|
||||
final AppDatabase _db;
|
||||
|
||||
Future<bool> verifyPin(String pin) async {
|
||||
final hash = await _db.getPinHash();
|
||||
if (hash == null) return false;
|
||||
return BCrypt.checkpw(pin, hash);
|
||||
}
|
||||
|
||||
Future<List<Regle>> listRules() => _db.listActiveRules();
|
||||
|
||||
Future<List<MovementDetail>> listMovements({int limit = 30}) {
|
||||
return _db.listRecentMovements(limit: limit);
|
||||
}
|
||||
|
||||
Future<Enfant?> applyRule(int childId, int ruleId) {
|
||||
return _db.applyRule(childId, ruleId);
|
||||
}
|
||||
|
||||
Future<Enfant?> cancelMovement(int movementId) {
|
||||
return _db.cancelMovement(movementId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user