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,50 @@
/// Interface du repository des rapports (Clean Architecture - Domain Layer)
library reports_repository;
import '../../data/models/analytics_model.dart';
/// Interface du repository pour la gestion des rapports et analytics
/// Contrat défini dans la couche Domain, implémenté dans la couche Data
abstract class IReportsRepository {
/// Récupère les métriques d'analyse
Future<List<AnalyticsModel>> getMetriques(String typeMetrique, String periode);
/// Récupère la performance globale
Future<Map<String, dynamic>> getPerformanceGlobale();
/// Récupère les évolutions d'une métrique
Future<List<AnalyticsModel>> getEvolutions(String typeMetrique);
/// Récupère les statistiques des membres
Future<Map<String, dynamic>> getStatistiquesMembres();
/// Récupère les statistiques des cotisations pour une année
Future<Map<String, dynamic>> getStatistiquesCotisations(int annee);
/// Récupère les statistiques des événements
Future<Map<String, dynamic>> getStatistiquesEvenements();
/// Liste les rapports disponibles (types de rapports générables)
/// Endpoint: GET /api/v1/analytics/reports/available
Future<List<Map<String, dynamic>>> getAvailableReports();
/// Génère un rapport (générique, sans format spécifique)
/// Endpoint: POST /api/v1/analytics/reports/generate
Future<void> generateReport(String type, {String? format});
/// Exporte un rapport au format PDF
/// Wrapper de generateReport avec format='pdf'
Future<String> exportReportPdf(String type);
/// Exporte un rapport au format Excel/CSV
/// Wrapper de generateReport avec format='excel' ou 'csv'
Future<String> exportReportExcel(String type, {String format = 'excel'});
/// Programme un rapport automatique (avec expression cron)
/// Endpoint: POST /api/v1/analytics/reports/schedule
Future<void> scheduleReport({String? cronExpression});
/// Récupère la liste des rapports programmés
/// Endpoint: GET /api/v1/analytics/reports/scheduled
Future<List<Map<String, dynamic>>> getScheduledReports();
}