73 lines
2.2 KiB
Dart
73 lines
2.2 KiB
Dart
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<void> completePreparationWithMissing(
|
|
String eventId,
|
|
List<String> missingEquipmentIds,
|
|
) async {
|
|
throw UnimplementedError('This method is deprecated. Use Cloud Functions instead.');
|
|
}
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
@Deprecated('Use Cloud Functions instead')
|
|
Future<void> completeReturnWithMissing(
|
|
String eventId,
|
|
List<String> 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.
|
|
*/
|
|
}
|