(Feat) Migration PocketBase

This commit is contained in:
2026-07-18 11:51:32 +02:00
parent 1d3ee69c6d
commit e483fd9070
15 changed files with 522 additions and 453 deletions
+23
View File
@@ -4,6 +4,7 @@ import 'package:flutter/services.dart';
import '../models/client.dart';
import '../models/mouvement.dart';
import '../models/recompense.dart';
import '../pocketbase_config.dart';
import '../services/client_repository.dart';
import '../services/recompense_repository.dart';
import '../services/reglages.dart';
@@ -26,11 +27,33 @@ class _ClientDetailScreenState extends State<ClientDetailScreen> {
final _repo = ClientRepository.instance;
List<Mouvement> _mouvements = [];
bool _chargeMouvements = true;
Future<void> Function()? _desabonner;
@override
void initState() {
super.initState();
_rechargerMouvements();
_sabonnerMouvements();
}
@override
void dispose() {
_desabonner?.call();
super.dispose();
}
/// Historique en temps réel : si un autre appareil ajoute/retire un mouvement
/// pour ce client, la liste se met à jour toute seule.
Future<void> _sabonnerMouvements() async {
try {
_desabonner = await pb.collection('mouvements').subscribe('*', (e) {
final rec = e.record;
if (rec != null && rec.data['client'] != widget.clientId) return;
_rechargerMouvements();
});
} catch (_) {
// Temps réel indisponible : on garde le rafraîchissement manuel.
}
}
Future<void> _rechargerMouvements() async {