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.
  */
}
