package dev.lions.unionflow.server.api.dto.mutuelle.credit;

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.mutuelle.credit.StatutDemandeCredit;
import dev.lions.unionflow.server.api.enums.mutuelle.credit.TypeCredit;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Réponse avec le tableau de bord résumé d'un dossier de crédit")
public class DemandeCreditResponse extends BaseDTO {

    private String numeroDossier;
    private String membreId;
    private TypeCredit typeCredit;
    private String compteLieId;

    private BigDecimal montantDemande;
    private Integer dureeMoisDemande;

    // Conditions actées par le comité de crédit (peuvent différer de la demande)
    private BigDecimal montantApprouve;
    private Integer dureeMoisApprouvee;
    private BigDecimal tauxInteretAnnuel; // Pourcentage
    private BigDecimal coutTotalCredit; // Total Intérêts

    private StatutDemandeCredit statut;
    private String notesComite;

    private LocalDate dateSoumission;
    private LocalDate dateValidation;
    private LocalDate datePremierEcheance;

    @Schema(description = "Aperçu des échéances générées pour le tableau d'amortissement")
    private List<EcheanceCreditDTO> echeancier;
}
