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

import dev.lions.unionflow.server.api.enums.mutuelle.epargne.TypeCompteEpargne;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "Requête d'ouverture d'un compte d'épargne")
public class CompteEpargneRequest {

    @NotBlank(message = "L'ID du membre propriétaire est obligatoire")
    @Schema(description = "ID UUID du Membre détenteur")
    private String membreId;

    @NotBlank(message = "L'ID de l'organisation est obligatoire")
    @Schema(description = "ID UUID de l'Organisation / Mutuelle")
    private String organisationId;

    @NotNull(message = "Le type de compte est obligatoire")
    @Schema(description = "Le type du compte d'épargne demandé")
    private TypeCompteEpargne typeCompte;

    @Schema(description = "Notes ou détails éventuels lors de l'ouverture")
    private String notesOuverture;
}
