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

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

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.UUID;

/**
 * DTO para transferência de dados de fluxo de caixa.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CashFlowDTO {

    private UUID id;
    private UUID cashAccountId;
    private LocalDate transactionDate;
    private String type; // INFLOW, OUTFLOW
    private BigDecimal amount;
    private String description;
    private UUID referenceId;
    private String referenceType; // PAYMENT_ORDER, TREASURY_ENTRY, etc.
    private BigDecimal balanceAfter;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
}
