/// Use case: Soumettre un feedback sur un événement library submit_event_feedback; import 'package:injectable/injectable.dart'; import '../repositories/evenement_repository.dart'; /// Use case pour soumettre un feedback après un événement /// Note: Cette fonctionnalité nécessite un endpoint backend dédié @injectable class SubmitEventFeedback { final IEvenementRepository _repository; SubmitEventFeedback(this._repository); /// Exécute le use case /// /// [evenementId] - UUID de l'événement /// [note] - Note de 1 à 5 /// [commentaire] - Commentaire (optionnel) /// /// Soumet un feedback pour l'événement /// Réservé aux participants de l'événement /// /// Lève une exception si: /// - L'événement n'existe pas /// - Le membre n'a pas participé /// - L'événement n'est pas terminé /// - Un feedback a déjà été soumis Future call({ required String evenementId, required int note, String? commentaire, }) async { if (note < 1 || note > 5) { throw ArgumentError('La note doit être entre 1 et 5'); } await _repository.submitFeedback( evenementId: evenementId, note: note, commentaire: commentaire, ); } }