/// Use case: Recherche avancée de membres library search_members; import 'package:injectable/injectable.dart'; import '../../../../shared/models/membre_search_result.dart'; import '../../../../shared/models/membre_search_criteria.dart'; import '../repositories/membre_repository.dart'; /// Use case pour effectuer une recherche avancée de membres /// avec critères multiples (nom, email, téléphone, statut, rôle, organisation, etc.) @injectable class SearchMembers { final IMembreRepository _repository; SearchMembers(this._repository); /// Exécute le use case /// /// [criteria] - Critères de recherche avancée /// [page] - Numéro de page (pagination) /// [size] - Taille de la page /// /// Retourne la liste paginée des membres correspondant aux critères Future call({ required MembreSearchCriteria criteria, int page = 0, int size = 20, }) async { return _repository.searchMembres( criteria: criteria, page: page, size: size, ); } }