Connecte le frontend mobile aux nouveaux endpoints backend événements. ## Repository Interface (evenement_repository.dart) - ✅ Ajout submitFeedback(evenementId, note, commentaire) - ✅ Ajout getFeedbacks(evenementId) → retourne feedbacks + stats ## Repository Impl (evenement_repository_impl.dart) - ✅ Correction inscrireEvenement : /inscrire → /inscriptions (POST) - ✅ Correction desinscrireEvenement : /desinscrire → /inscriptions (DELETE) - ✅ Implémentation submitFeedback : POST /api/evenements/{id}/feedback - ✅ Implémentation getFeedbacks : GET /api/evenements/{id}/feedbacks - Gestion erreurs 400 (déjà soumis, pas participant, etc.) ## Use Case (submit_event_feedback.dart) - ✅ Remplacement UnimplementedError par appel repository - ✅ Validation note 1-5 - ✅ Transmission note + commentaire optionnel ## Fonctionnalités débloquées - Inscription/désinscription événements ✅ (URLs corrigées) - Soumission feedback post-événement ✅ - Consultation feedbacks + note moyenne ✅ Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
63 lines
2.1 KiB
Dart
63 lines
2.1 KiB
Dart
/// Interface du repository des événements (Clean Architecture)
|
|
library evenement_repository_interface;
|
|
|
|
import '../../data/repositories/evenement_repository_impl.dart' show EvenementSearchResult;
|
|
import '../../data/models/evenement_model.dart';
|
|
|
|
/// Interface définissant le contrat du repository des événements
|
|
/// Implémentée par EvenementRepositoryImpl dans la couche data
|
|
abstract class IEvenementRepository {
|
|
/// Récupère la liste des événements avec pagination
|
|
Future<EvenementSearchResult> getEvenements({
|
|
int page = 0,
|
|
int size = 20,
|
|
String? recherche,
|
|
});
|
|
|
|
/// Récupère un événement par son ID
|
|
Future<EvenementModel?> getEvenementById(String id);
|
|
|
|
/// Crée un nouvel événement
|
|
Future<EvenementModel> createEvenement(EvenementModel evenement);
|
|
|
|
/// Met à jour un événement
|
|
Future<EvenementModel> updateEvenement(String id, EvenementModel evenement);
|
|
|
|
/// Supprime un événement
|
|
Future<void> deleteEvenement(String id);
|
|
|
|
/// Récupère les événements à venir
|
|
Future<EvenementSearchResult> getEvenementsAVenir({int page = 0, int size = 20});
|
|
|
|
/// Récupère les événements en cours
|
|
Future<EvenementSearchResult> getEvenementsEnCours({int page = 0, int size = 20});
|
|
|
|
/// Récupère les événements passés
|
|
Future<EvenementSearchResult> getEvenementsPasses({int page = 0, int size = 20});
|
|
|
|
/// S'inscrire à un événement
|
|
Future<void> inscrireEvenement(String evenementId);
|
|
|
|
/// Se désinscrire d'un événement
|
|
Future<void> desinscrireEvenement(String evenementId);
|
|
|
|
/// Indique si l'utilisateur connecté est inscrit à l'événement
|
|
Future<bool> getInscriptionStatus(String evenementId);
|
|
|
|
/// Récupère les participants d'un événement
|
|
Future<List<Map<String, dynamic>>> getParticipants(String evenementId);
|
|
|
|
/// Récupère les statistiques des événements
|
|
Future<Map<String, dynamic>> getEvenementsStats();
|
|
|
|
/// Soumet un feedback pour un événement
|
|
Future<void> submitFeedback({
|
|
required String evenementId,
|
|
required int note,
|
|
String? commentaire,
|
|
});
|
|
|
|
/// Récupère les feedbacks d'un événement
|
|
Future<Map<String, dynamic>> getFeedbacks(String evenementId);
|
|
}
|