package com.ga.core.vo.settle;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 정산 정정 등록 요청 VO.
 * ID, 상태, 일시 필드는 제외.
 */
@Data
public class SettleCorrectionSaveReq {

    @NotNull(message = "원본 정산 ID는 필수입니다")
    private Long originalSettleId;

    @NotNull(message = "설계사 ID는 필수입니다")
    private Long agentId;

    @NotBlank(message = "정산월은 필수입니다")
    @Pattern(regexp = "\\d{6}", message = "정산월은 6자리 숫자(YYYYMM)여야 합니다")
    private String settleMonth;

    @NotNull(message = "정정 전 금액은 필수입니다")
    private BigDecimal beforeAmount;

    @NotNull(message = "정정 후 금액은 필수입니다")
    private BigDecimal afterAmount;

    @NotBlank(message = "정정 사유 코드는 필수입니다")
    private String reasonCode;

    @Size(max = 1000, message = "정정 사유 상세는 1000자 이하여야 합니다")
    private String reasonDetail;
}
