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.
 * 설계사가 직접 제출하는 최소 입력 필드.
 */
@Data
public class CommissionDisputeSaveReq {

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

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

    private Long settleId;               // 연관 정산 (선택)

    private BigDecimal disputedAmount;   // 이의 제기 금액 (NULL=전체)

    private BigDecimal claimAmount;      // 설계사 주장 금액

    @NotBlank(message = "이의 신청 사유는 필수입니다")
    @Size(max = 2000, message = "이의 신청 사유는 2000자 이하여야 합니다")
    private String reason;

    @Size(max = 500)
    private String evidenceUrl;          // 증빙 자료 URL
}
