package com.ga.core.vo.installment;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

@Data
public class InstallmentRatioSaveReq {

    private String productCategory;   // NULL = 전체 상품

    @NotNull(message = "분급 연차는 필수입니다")
    @Min(value = 1, message = "분급 연차는 1 이상이어야 합니다")
    @Max(value = 7, message = "분급 연차는 7 이하여야 합니다")
    private Integer planYear;

    // null = 연 단위(연차 합계 비율), 1~12 = 회차(월) 단위
    @Min(value = 1, message = "회차(월)는 1 이상이어야 합니다")
    @Max(value = 12, message = "회차(월)는 12 이하여야 합니다")
    private Integer planMonth;

    @NotNull(message = "비율은 필수입니다")
    @Positive(message = "비율은 양수여야 합니다")
    private BigDecimal ratioPercent;

    @NotNull(message = "적용 시작일은 필수입니다")
    private LocalDate effectiveFrom;

    private LocalDate effectiveTo;
}
