package com.ga.core.vo.settle;

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

import java.math.BigDecimal;

/**
 * 시책 지급 등록 요청 VO.
 * 배치/서비스에서 산출 후 등록 시 사용.
 */
@Data
public class IncentivePaymentSaveReq {

    @NotNull(message = "시책 프로그램 ID는 필수입니다")
    private Long programId;

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

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

    private BigDecimal baseAmount;       // RATE 방식 시 기준 수수료

    @NotNull(message = "시책 지급액은 필수입니다")
    private BigDecimal incentiveAmount;
}
