package dev.lions.unionflow.server.api.dto.dashboard;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * DTO de synthèse dashboard membre (cotisations, épargne, événements, aides).
 *
 * @author UnionFlow Team
 * @version 1.0
 */
public record MembreDashboardSyntheseResponse(
        String prenom,
        String nom,
        LocalDate dateInscription,

        // Cotisations
        BigDecimal mesCotisationsPaiement,
        /** Total des cotisations payées sur l'année en cours (pour affichage dashboard). */
        BigDecimal totalCotisationsPayeesAnnee,
        /** Total des cotisations payées tout temps (pour la carte « Contribution Totale »). */
        BigDecimal totalCotisationsPayeesToutTemps,
        /** Nombre de cotisations PAYÉES (pour la carte « Cotisations »). */
        Integer nombreCotisationsPayees,
        String statutCotisations,
        /** Taux de cotisation en % (0-100). Calculé sur l'année courante ou toutes années si pas de cotisation 2026. */
        Integer tauxCotisationsPerso,
        /** Nombre TOTAL de cotisations (toutes années, tous statuts) — pour calcul du taux d'engagement. */
        Integer nombreCotisationsTotal,

        // Epargne
        BigDecimal monSoldeEpargne,
        BigDecimal evolutionEpargneNombre,
        String evolutionEpargne,
        Integer objectifEpargne,

        // Evenements
        Integer mesEvenementsInscrits,
        Integer evenementsAVenir,
        Integer tauxParticipationPerso,

        // Aides
        Integer mesDemandesAide,
        Integer aidesEnCours,
        Integer tauxAidesApprouvees) implements Serializable {
}

