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

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

/**
 * DTO para transferência de dados de autorização de pagamento.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PaymentAuthorizationDTO {

    private UUID id;
    private UUID paymentOrderId;
    private UUID paymentBatchId;
    private UUID requestedBy;
    private LocalDateTime requestedAt;
    private Integer requiredApprovalLevel;
    private Integer currentApprovalLevel;
    private String status; // PENDING, PARTIALLY_APPROVED, APPROVED, REJECTED
    private String rejectionReason;
    private List<ApprovalDTO> approvals;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
}

