package com.ga.core.vo.settle;

import lombok.Data;

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

/**
 * 정산 정정 이력 VO (settle_correction 테이블 1:1)
 * INSERT/UPDATE 전용.
 */
@Data
public class SettleCorrectionVO {
    private Long correctionId;
    private Long originalSettleId;   // 원본 settle_master 참조
    private Long agentId;
    private String settleMonth;      // YYYYMM
    private BigDecimal diffAmount;   // 차액 (양수=추가, 음수=환수)
    private BigDecimal beforeAmount; // 정정 전 순지급액
    private BigDecimal afterAmount;  // 정정 후 순지급액
    private String reasonCode;       // CORRECTION_REASON 코드
    private String reasonDetail;     // 정정 사유 상세
    private String status;           // DRAFT/APPROVED/APPLIED/CANCELLED
    private Long requestedBy;        // 정정 신청자
    private LocalDateTime requestedAt;
    private Long approvedBy;         // 정정 승인자
    private LocalDateTime approvedAt;
    private Long appliedSettleId;    // 정정이 반영된 settle_id
    private String cancelReason;
    private Long cancelledBy;
    private LocalDateTime cancelledAt;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
}
