Files
unionflow-mobile-apps/lib/features/members/domain/repositories/membre_repository.dart
dahoud d094d6db9c Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
2026-03-15 16:30:08 +00:00

52 lines
1.6 KiB
Dart

/// 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<MembreSearchResult> getMembres({
int page = 0,
int size = 20,
String? recherche,
});
/// Récupère un membre par son ID
Future<MembreCompletModel?> getMembreById(String id);
/// Crée un nouveau membre
Future<MembreCompletModel> createMembre(MembreCompletModel membre);
/// Met à jour un membre
Future<MembreCompletModel> updateMembre(String id, MembreCompletModel membre);
/// Supprime un membre
Future<void> deleteMembre(String id);
/// Active un membre
Future<MembreCompletModel> activateMembre(String id);
/// Désactive un membre
Future<MembreCompletModel> deactivateMembre(String id);
/// Recherche avancée de membres
Future<MembreSearchResult> searchMembres({
required MembreSearchCriteria criteria,
int page = 0,
int size = 20,
});
/// Récupère les membres actifs
Future<MembreSearchResult> getActiveMembers({int page = 0, int size = 20});
/// Récupère les membres du bureau
Future<MembreSearchResult> getBureauMembers({int page = 0, int size = 20});
/// Récupère les statistiques des membres
Future<Map<String, dynamic>> getMembresStats();
}