Add equipment management features (and qr generation support)
This commit is contained in:
		
							
								
								
									
										106
									
								
								em2rp/lib/providers/maintenance_provider.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								em2rp/lib/providers/maintenance_provider.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,106 @@ | ||||
| import 'package:flutter/foundation.dart'; | ||||
| import 'package:em2rp/models/maintenance_model.dart'; | ||||
| import 'package:em2rp/services/maintenance_service.dart'; | ||||
|  | ||||
| class MaintenanceProvider extends ChangeNotifier { | ||||
|   final MaintenanceService _service = MaintenanceService(); | ||||
|  | ||||
|   List<MaintenanceModel> _maintenances = []; | ||||
|  | ||||
|   // Getters | ||||
|   List<MaintenanceModel> get maintenances => _maintenances; | ||||
|  | ||||
|   /// Stream des maintenances pour un équipement spécifique | ||||
|   Stream<List<MaintenanceModel>> getMaintenancesStream(String equipmentId) { | ||||
|     return _service.getMaintenances(equipmentId); | ||||
|   } | ||||
|  | ||||
|   /// Stream de toutes les maintenances | ||||
|   Stream<List<MaintenanceModel>> get allMaintenancesStream { | ||||
|     return _service.getAllMaintenances(); | ||||
|   } | ||||
|  | ||||
|   /// Créer une nouvelle maintenance | ||||
|   Future<void> createMaintenance(MaintenanceModel maintenance) async { | ||||
|     try { | ||||
|       await _service.createMaintenance(maintenance); | ||||
|       notifyListeners(); | ||||
|     } catch (e) { | ||||
|       print('Error creating maintenance: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Mettre à jour une maintenance | ||||
|   Future<void> updateMaintenance(String id, Map<String, dynamic> data) async { | ||||
|     try { | ||||
|       await _service.updateMaintenance(id, data); | ||||
|       notifyListeners(); | ||||
|     } catch (e) { | ||||
|       print('Error updating maintenance: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Supprimer une maintenance | ||||
|   Future<void> deleteMaintenance(String id) async { | ||||
|     try { | ||||
|       await _service.deleteMaintenance(id); | ||||
|       notifyListeners(); | ||||
|     } catch (e) { | ||||
|       print('Error deleting maintenance: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Récupérer une maintenance par ID | ||||
|   Future<MaintenanceModel?> getMaintenanceById(String id) async { | ||||
|     try { | ||||
|       return await _service.getMaintenanceById(id); | ||||
|     } catch (e) { | ||||
|       print('Error getting maintenance: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Marquer une maintenance comme complétée | ||||
|   Future<void> completeMaintenance( | ||||
|     String id, { | ||||
|     String? performedBy, | ||||
|     double? cost, | ||||
|   }) async { | ||||
|     try { | ||||
|       await _service.completeMaintenance(id, performedBy: performedBy, cost: cost); | ||||
|       notifyListeners(); | ||||
|     } catch (e) { | ||||
|       print('Error completing maintenance: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Vérifier les maintenances à venir | ||||
|   Future<void> checkUpcomingMaintenances() async { | ||||
|     try { | ||||
|       await _service.checkUpcomingMaintenances(); | ||||
|     } catch (e) { | ||||
|       print('Error checking upcoming maintenances: $e'); | ||||
|       rethrow; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /// Récupérer les maintenances en retard | ||||
|   List<MaintenanceModel> get overdueMaintances { | ||||
|     return _maintenances.where((m) => m.isOverdue).toList(); | ||||
|   } | ||||
|  | ||||
|   /// Récupérer les maintenances complétées | ||||
|   List<MaintenanceModel> get completedMaintenances { | ||||
|     return _maintenances.where((m) => m.isCompleted).toList(); | ||||
|   } | ||||
|  | ||||
|   /// Récupérer les maintenances à venir | ||||
|   List<MaintenanceModel> get upcomingMaintenances { | ||||
|     return _maintenances.where((m) => !m.isCompleted && !m.isOverdue).toList(); | ||||
|   } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 ElPoyo
					ElPoyo