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.StatutEcheanceCredit;
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;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Représente une ligne unique du tableau d'amortissement d'un crédit")
public class EcheanceCreditDTO extends BaseDTO {

    private String demandeCreditId;

    @Schema(description = "Indice de l'échéance (ex: mois 1, 2, 3...)")
    private Integer ordre;

    private LocalDate dateEcheancePrevue;
    private LocalDate datePaiementEffectif;

    private BigDecimal capitalAmorti;
    private BigDecimal interetsDeLaPeriode;
    private BigDecimal montantTotalExigible;

    private BigDecimal capitalRestantDu;

    // Pénalités éventuelles additionnelles liées au retard
    private BigDecimal penalitesRetard;

    // Somme physiquement encaissée pour cette traite à l'instant T
    private BigDecimal montantRegle;

    private StatutEcheanceCredit statut;
}
