/// Interface du repository des membres (Clean Architecture) library membre_repository_interface; import '../../data/models/membre_complete_model.dart'; import '../../../../shared/models/membre_search_result.dart'; import '../../../../shared/models/membre_search_criteria.dart'; /// Interface définissant le contrat du repository des membres /// Implémentée par MembreRepositoryImpl dans la couche data abstract class IMembreRepository { /// Récupère la liste des membres avec pagination Future getMembres({ int page = 0, int size = 20, String? recherche, }); /// Récupère un membre par son ID Future getMembreById(String id); /// Crée un nouveau membre Future createMembre(MembreCompletModel membre); /// Met à jour un membre Future updateMembre(String id, MembreCompletModel membre); /// Supprime un membre Future deleteMembre(String id); /// Active un membre Future activateMembre(String id); /// Désactive un membre Future deactivateMembre(String id); /// Recherche avancée de membres Future searchMembres({ required MembreSearchCriteria criteria, int page = 0, int size = 20, }); /// Récupère les membres actifs Future getActiveMembers({int page = 0, int size = 20}); /// Récupère les membres du bureau Future getBureauMembers({int page = 0, int size = 20}); /// Récupère les statistiques des membres Future> getMembresStats(); }