feat: WebSocket temps réel + Finance Workflow + corrections
- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics) * Backend: KafkaEventProducer, KafkaEventConsumer * Mobile: WebSocketService (reconnection, heartbeat, typed events) * DashboardBloc: Auto-refresh depuis WebSocket events - Finance Workflow: approbations + budgets (backend + mobile) * Backend: entities, services, resources, migrations Flyway V6 * Mobile: features finance_workflow complète avec BLoC - Corrections DI: interfaces IRepository partout * IProfileRepository, IOrganizationRepository, IMembreRepository * GetIt configuré avec @injectable - Spec-Kit: constitution + templates mis à jour * .specify/memory/constitution.md enrichie * Templates agent, plan, spec, tasks, checklist - Nettoyage: fichiers temporaires supprimés Signed-off-by: lions dev Team
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user