/// 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();
  }
}
