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

import dev.lions.unionflow.server.api.dto.base.BaseDTO;
import dev.lions.unionflow.server.api.enums.mutuelle.epargne.StatutCompteEpargne;
import dev.lions.unionflow.server.api.enums.mutuelle.epargne.TypeCompteEpargne;
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 = "Réponse des informations d'un compte épargne")
public class CompteEpargneResponse extends BaseDTO {

    private String membreId;
    private String organisationId;

    @Schema(description = "Numéro de compte généré de manière unique (ex: MEC-00123)")
    private String numeroCompte;

    private TypeCompteEpargne typeCompte;

    @Schema(description = "Solde principal disponible")
    private BigDecimal soldeActuel;

    @Schema(description = "Fonds gelés pour garantie de crédits")
    private BigDecimal soldeBloque;

    private StatutCompteEpargne statut;
    private LocalDate dateOuverture;
    private LocalDate dateDerniereTransaction;
    private String description;
}
