class EventPreparationService { /// Retourne true si l'équipement était absent du flux événementiel. /// /// Cas typique: matériel jamais emporté au départ, donc absent au retour, /// mais qui ne doit jamais être classé en [LOST]. static bool isEquipmentNotTakenToEvent({ required bool isMissingAtReturn, required bool isLoaded, required bool isMissingAtLoading, int? quantityAtLoading, }) { if (!isMissingAtReturn) { return false; } final loadedQuantity = quantityAtLoading ?? 0; return !isLoaded || isMissingAtLoading || loadedQuantity <= 0; } /// Retourne true uniquement si l'équipement doit être classé perdu. static bool shouldMarkEquipmentAsLost({ required bool isReturnValidationStep, required bool isMissingAtReturn, required bool isLoaded, required bool isMissingAtLoading, int? quantityAtLoading, }) { if (!isReturnValidationStep || !isMissingAtReturn) { return false; } return !isEquipmentNotTakenToEvent( isMissingAtReturn: isMissingAtReturn, isLoaded: isLoaded, isMissingAtLoading: isMissingAtLoading, quantityAtLoading: quantityAtLoading, ); } // Ces méthodes ne sont plus utilisées et devraient être remplacées par des Cloud Functions // si nécessaire dans le futur /* @Deprecated('Use Cloud Functions instead') Future completePreparationWithMissing( String eventId, List missingEquipmentIds, ) async { throw UnimplementedError('This method is deprecated. Use Cloud Functions instead.'); } */ /* @Deprecated('Use Cloud Functions instead') Future completeReturnWithMissing( String eventId, List missingEquipmentIds, ) async { throw UnimplementedError('This method is deprecated. Use Cloud Functions instead.'); } // Les méthodes helper suivantes étaient uniquement utilisées par les méthodes deprecated ci-dessus. // Elles ont été supprimées car elles accédaient directement à Firestore. // Si ces fonctionnalités sont nécessaires à l'avenir, elles doivent être implémentées // via des Cloud Functions pour respecter l'architecture. */ }