feat: Ajout de la gestion des maintenances et intégration de la synthèse vocale
This commit is contained in:
@@ -1,14 +1,39 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:em2rp/models/maintenance_model.dart';
|
||||
import 'package:em2rp/services/maintenance_service.dart';
|
||||
import 'package:em2rp/utils/debug_log.dart';
|
||||
|
||||
class MaintenanceProvider extends ChangeNotifier {
|
||||
final MaintenanceService _service = MaintenanceService();
|
||||
|
||||
List<MaintenanceModel> _maintenances = [];
|
||||
bool _isLoading = false;
|
||||
|
||||
// Getters
|
||||
List<MaintenanceModel> get maintenances => _maintenances;
|
||||
bool get isLoading => _isLoading;
|
||||
|
||||
/// Charger toutes les maintenances
|
||||
Future<void> loadMaintenances({String? equipmentId}) async {
|
||||
_isLoading = true;
|
||||
notifyListeners();
|
||||
|
||||
try {
|
||||
if (equipmentId != null) {
|
||||
_maintenances = await _service.getMaintenancesByEquipment(equipmentId);
|
||||
} else {
|
||||
_maintenances = await _service.getAllMaintenances();
|
||||
}
|
||||
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
} catch (e) {
|
||||
DebugLog.error('[MaintenanceProvider] Error loading maintenances', e);
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
/// Récupérer les maintenances pour un équipement spécifique
|
||||
Future<List<MaintenanceModel>> getMaintenances(String equipmentId) async {
|
||||
@@ -24,9 +49,9 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
Future<void> createMaintenance(MaintenanceModel maintenance) async {
|
||||
try {
|
||||
await _service.createMaintenance(maintenance);
|
||||
notifyListeners();
|
||||
await loadMaintenances(); // Recharger après création
|
||||
} catch (e) {
|
||||
print('Error creating maintenance: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error creating maintenance', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -35,9 +60,9 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
Future<void> updateMaintenance(String id, Map<String, dynamic> data) async {
|
||||
try {
|
||||
await _service.updateMaintenance(id, data);
|
||||
notifyListeners();
|
||||
await loadMaintenances(); // Recharger après mise à jour
|
||||
} catch (e) {
|
||||
print('Error updating maintenance: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error updating maintenance', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -46,9 +71,9 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
Future<void> deleteMaintenance(String id) async {
|
||||
try {
|
||||
await _service.deleteMaintenance(id);
|
||||
notifyListeners();
|
||||
await loadMaintenances(); // Recharger après suppression
|
||||
} catch (e) {
|
||||
print('Error deleting maintenance: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error deleting maintenance', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -58,7 +83,7 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
try {
|
||||
return await _service.getMaintenanceById(id);
|
||||
} catch (e) {
|
||||
print('Error getting maintenance: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error getting maintenance', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -71,9 +96,9 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
}) async {
|
||||
try {
|
||||
await _service.completeMaintenance(id, performedBy: performedBy, cost: cost);
|
||||
notifyListeners();
|
||||
await loadMaintenances(); // Recharger après complétion
|
||||
} catch (e) {
|
||||
print('Error completing maintenance: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error completing maintenance', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -83,13 +108,13 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
try {
|
||||
await _service.checkUpcomingMaintenances();
|
||||
} catch (e) {
|
||||
print('Error checking upcoming maintenances: $e');
|
||||
DebugLog.error('[MaintenanceProvider] Error checking upcoming maintenances', e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
/// Récupérer les maintenances en retard
|
||||
List<MaintenanceModel> get overdueMaintances {
|
||||
List<MaintenanceModel> get overdueMaintenances {
|
||||
return _maintenances.where((m) => m.isOverdue).toList();
|
||||
}
|
||||
|
||||
@@ -102,5 +127,12 @@ class MaintenanceProvider extends ChangeNotifier {
|
||||
List<MaintenanceModel> get upcomingMaintenances {
|
||||
return _maintenances.where((m) => !m.isCompleted && !m.isOverdue).toList();
|
||||
}
|
||||
|
||||
/// Obtenir les maintenances pour un équipement spécifique (depuis le cache local)
|
||||
List<MaintenanceModel> getForEquipment(String equipmentId) {
|
||||
return _maintenances.where((m) =>
|
||||
m.equipmentIds.contains(equipmentId)
|
||||
).toList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user