package dev.lions.unionflow.server.api.dto.config.response;

import dev.lions.unionflow.server.api.dto.base.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.math.BigDecimal;

/**
 * Réponse contenant les paramètres LCB-FT (Lutte contre le Blanchiment et le Financement du Terrorisme).
 * Retourne les seuils configurés pour une organisation ou la plateforme.
 *
 * @author lions dev Team
 * @version 1.0
 * @since 2026-03-13
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Paramètres LCB-FT avec seuils de vigilance")
public class ParametresLcbFtResponse extends BaseResponse {

    @Schema(description = "ID de l'organisation (null si paramètres plateforme)")
    private String organisationId;

    @Schema(description = "Nom de l'organisation (null si paramètres plateforme)")
    private String organisationNom;

    @Schema(description = "Montant au-dessus duquel l'origine des fonds est obligatoire", example = "500000")
    private BigDecimal montantSeuilJustification;

    @Schema(description = "Montant au-dessus duquel une validation manuelle est requise", example = "1000000")
    private BigDecimal montantSeuilValidationManuelle;

    @Schema(description = "Code devise ISO 4217", example = "XOF")
    private String codeDevise;

    @Schema(description = "Notes ou commentaires sur la configuration")
    private String notes;

    @Schema(description = "Indique si ces paramètres s'appliquent à toute la plateforme")
    private Boolean estParametrePlateforme;
}
