30 lines
977 B
Dart
30 lines
977 B
Dart
/// Use case: Récupérer les statistiques des membres
|
|
library get_member_stats;
|
|
|
|
import 'package:injectable/injectable.dart';
|
|
import '../repositories/membre_repository.dart';
|
|
|
|
/// Use case pour récupérer les statistiques globales des membres
|
|
/// Réservé aux utilisateurs avec le rôle ADMIN_ORGANISATION
|
|
@injectable
|
|
class GetMemberStats {
|
|
final IMembreRepository _repository;
|
|
|
|
GetMemberStats(this._repository);
|
|
|
|
/// Exécute le use case
|
|
///
|
|
/// Retourne un Map contenant les statistiques:
|
|
/// - totalMembres: Nombre total de membres
|
|
/// - membresActifs: Nombre de membres actifs
|
|
/// - membresInactifs: Nombre de membres inactifs
|
|
/// - nouveauxMembres30j: Nouveaux membres sur les 30 derniers jours
|
|
/// - membresBureau: Nombre de membres du bureau
|
|
/// - tauxActivite: Taux d'activité en pourcentage
|
|
///
|
|
/// Lève une exception en cas d'erreur d'accès
|
|
Future<Map<String, dynamic>> call() async {
|
|
return _repository.getMembresStats();
|
|
}
|
|
}
|