package com.ga.core.vo.settle;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class SettleMasterVO {
    private Long settleId;
    private Long agentId;
    private String settleMonth;
    private BigDecimal recruitTotal;
    private BigDecimal maintainTotal;
    private BigDecimal exceptionPlus;
    private BigDecimal exceptionMinus;
    private BigDecimal overrideTotal;
    private BigDecimal chargebackTotal;
    private BigDecimal otherCommissionTotal;
    private BigDecimal grossAmount;
    private BigDecimal taxAmount;
    private BigDecimal netAmount;
    private String status;
    private LocalDateTime calcDate;
    private Long confirmedBy;
    private LocalDateTime confirmedAt;
    private String holdReason;
    private String holdReasonCode;   // V32 추가: HOLD_REASON 코드 (NEED_DOC/UNDER_REVIEW/DISPUTE_OPEN 등)
    // V111 추가: 환수채권 이월/미수금 관리
    private BigDecimal clawbackRecovered; // 당월 채권 상계 회수액
    private BigDecimal clawbackCarryover; // 당월 발생→이월된 미수액
    private BigDecimal payableAmount;     // 실지급 = max(0,net) - recovered
}
