package br.gov.sigefp.treasury.api.dto;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Min;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.UUID;

/**
 * DTO para criação de autorização de pagamento.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreatePaymentAuthorizationDTO {

    private UUID paymentOrderId; // Um dos dois deve ser fornecido
    private UUID paymentBatchId; // Um dos dois deve ser fornecido

    @NotNull(message = "Usuário solicitante é obrigatório")
    private UUID requestedBy;

    @NotNull(message = "Nível de aprovação necessário é obrigatório")
    @Min(value = 1, message = "Nível de aprovação deve ser pelo menos 1")
    private Integer requiredApprovalLevel;
}

