Refactoring
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/error/failures.dart';
|
||||
import '../entities/analytics_data.dart';
|
||||
import '../entities/kpi_trend.dart';
|
||||
|
||||
/// Repository abstrait pour les analytics
|
||||
abstract class AnalyticsRepository {
|
||||
/// Calcule une métrique analytics pour une période donnée
|
||||
Future<Either<Failure, AnalyticsData>> calculerMetrique({
|
||||
required TypeMetrique typeMetrique,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Calcule les tendances d'un KPI sur une période
|
||||
Future<Either<Failure, KPITrend>> calculerTendanceKPI({
|
||||
required TypeMetrique typeMetrique,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Obtient tous les KPI pour une organisation
|
||||
Future<Either<Failure, Map<TypeMetrique, double>>> obtenirTousLesKPI({
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Calcule le KPI de performance globale
|
||||
Future<Either<Failure, double>> calculerPerformanceGlobale({
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Obtient les évolutions des KPI par rapport à la période précédente
|
||||
Future<Either<Failure, Map<TypeMetrique, double>>> obtenirEvolutionsKPI({
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Obtient les métriques pour le tableau de bord
|
||||
Future<Either<Failure, List<AnalyticsData>>> obtenirMetriquesTableauBord({
|
||||
String? organisationId,
|
||||
required String utilisateurId,
|
||||
});
|
||||
|
||||
/// Obtient les types de métriques disponibles
|
||||
Future<Either<Failure, List<TypeMetrique>>> obtenirTypesMetriques();
|
||||
|
||||
/// Obtient les périodes d'analyse disponibles
|
||||
Future<Either<Failure, List<PeriodeAnalyse>>> obtenirPeriodesAnalyse();
|
||||
|
||||
/// Met en cache les données analytics
|
||||
Future<Either<Failure, void>> mettreEnCache({
|
||||
required String cle,
|
||||
required Map<String, dynamic> donnees,
|
||||
Duration? dureeVie,
|
||||
});
|
||||
|
||||
/// Récupère les données depuis le cache
|
||||
Future<Either<Failure, Map<String, dynamic>?>> recupererDepuisCache({
|
||||
required String cle,
|
||||
});
|
||||
|
||||
/// Vide le cache analytics
|
||||
Future<Either<Failure, void>> viderCache();
|
||||
|
||||
/// Synchronise les données analytics avec le serveur
|
||||
Future<Either<Failure, void>> synchroniserDonnees();
|
||||
|
||||
/// Vérifie si les données sont à jour
|
||||
Future<Either<Failure, bool>> verifierMiseAJour({
|
||||
required TypeMetrique typeMetrique,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Obtient les alertes actives
|
||||
Future<Either<Failure, List<AnalyticsData>>> obtenirAlertesActives({
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Marque une alerte comme lue
|
||||
Future<Either<Failure, void>> marquerAlerteLue({
|
||||
required String alerteId,
|
||||
});
|
||||
|
||||
/// Exporte les données analytics
|
||||
Future<Either<Failure, String>> exporterDonnees({
|
||||
required List<TypeMetrique> metriques,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
required String format, // 'json', 'csv', 'excel'
|
||||
});
|
||||
|
||||
/// Obtient l'historique des calculs
|
||||
Future<Either<Failure, List<AnalyticsData>>> obtenirHistoriqueCalculs({
|
||||
required TypeMetrique typeMetrique,
|
||||
String? organisationId,
|
||||
int limite = 50,
|
||||
});
|
||||
|
||||
/// Sauvegarde une configuration de rapport personnalisé
|
||||
Future<Either<Failure, void>> sauvegarderConfigurationRapport({
|
||||
required String nom,
|
||||
required List<TypeMetrique> metriques,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
Map<String, dynamic>? configuration,
|
||||
});
|
||||
|
||||
/// Obtient les configurations de rapports sauvegardées
|
||||
Future<Either<Failure, List<Map<String, dynamic>>>> obtenirConfigurationsRapports({
|
||||
String? organisationId,
|
||||
});
|
||||
|
||||
/// Supprime une configuration de rapport
|
||||
Future<Either<Failure, void>> supprimerConfigurationRapport({
|
||||
required String configurationId,
|
||||
});
|
||||
|
||||
/// Planifie une mise à jour automatique
|
||||
Future<Either<Failure, void>> planifierMiseAJourAutomatique({
|
||||
required TypeMetrique typeMetrique,
|
||||
required PeriodeAnalyse periodeAnalyse,
|
||||
String? organisationId,
|
||||
required Duration frequence,
|
||||
});
|
||||
|
||||
/// Annule une mise à jour automatique planifiée
|
||||
Future<Either<Failure, void>> annulerMiseAJourAutomatique({
|
||||
required String planificationId,
|
||||
});
|
||||
|
||||
/// Obtient les statistiques d'utilisation des analytics
|
||||
Future<Either<Failure, Map<String, dynamic>>> obtenirStatistiquesUtilisation({
|
||||
String? organisationId,
|
||||
String? utilisateurId,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user