53 lines
1.9 KiB
Dart
53 lines
1.9 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();
|
|
}
|