28 lines
966 B
Dart
28 lines
966 B
Dart
/// Use case: Récupérer les statistiques personnelles des contributions
|
|
library get_contribution_stats;
|
|
|
|
import 'package:injectable/injectable.dart';
|
|
import '../repositories/contribution_repository.dart';
|
|
|
|
/// Use case pour récupérer les statistiques de cotisations du membre
|
|
@injectable
|
|
class GetContributionStats {
|
|
final IContributionRepository _repository;
|
|
|
|
GetContributionStats(this._repository);
|
|
|
|
/// Exécute le use case
|
|
///
|
|
/// Retourne un Map contenant les statistiques personnelles:
|
|
/// - montantDu: Montant total dû pour l'année en cours
|
|
/// - totalPayeAnnee: Montant total payé pour l'année
|
|
/// - cotisationsEnAttente: Nombre de cotisations en attente
|
|
/// - prochaineEcheance: Date de la prochaine échéance
|
|
/// - tauxPaiement: Taux de paiement en pourcentage
|
|
///
|
|
/// Retourne null si aucune donnée n'est disponible
|
|
Future<Map<String, dynamic>?> call() async {
|
|
return _repository.getMesCotisationsSynthese();
|
|
}
|
|
}
|