Initial commit: unionflow-mobile-apps

Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 16:30:08 +00:00
commit d094d6db9c
1790 changed files with 507435 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
/// 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();
}