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,49 @@
/// Use case: Exporter la liste des membres
library export_members;
import 'package:injectable/injectable.dart';
import '../../../../shared/models/membre_search_criteria.dart';
import '../repositories/membre_repository.dart';
/// Use case pour exporter la liste des membres au format CSV ou PDF
/// Réservé aux utilisateurs avec le rôle ADMIN_ORGANISATION
@injectable
class ExportMembers {
final IMembreRepository _repository;
ExportMembers(this._repository);
/// Exécute le use case
///
/// [criteria] - Critères de filtre pour l'export (optionnel)
/// [format] - Format d'export ('csv' ou 'pdf')
///
/// Retourne les données exportées (liste complète des membres selon critères)
/// TODO: Ajouter endpoint backend GET /api/membres/export?format=csv|pdf
/// Le use case actuel récupère toutes les données, l'export final se fait côté UI
Future<List<Map<String, dynamic>>> call({
MembreSearchCriteria? criteria,
String format = 'csv',
}) async {
// Récupérer tous les membres (pagination large)
final result = await _repository.searchMembres(
criteria: criteria ?? const MembreSearchCriteria(),
page: 0,
size: 10000, // Grande pagination pour export complet
);
// Convertir en liste de maps pour l'export
return result.membres.map((membre) => {
'id': membre.id,
'nom': membre.nom,
'prenom': membre.prenom,
'email': membre.email,
'telephone': membre.telephone,
'adresse': membre.adresse,
'dateNaissance': membre.dateNaissance?.toIso8601String(),
'dateAdhesion': membre.dateAdhesion?.toIso8601String(),
'statut': membre.statut,
'actif': membre.actif,
}).toList();
}
}