package com.ga.core.vo.settle;

import lombok.Data;

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

/**
 * 시책 프로그램 마스터 VO (incentive_program 테이블 1:1)
 * INSERT/UPDATE 전용.
 */
@Data
public class IncentiveProgramVO {
    private Long programId;
    private String programName;          // 시책명
    private String programType;          // INCENTIVE_TYPE 코드
    private String targetType;           // AGENT/ORG/GRADE
    private Long targetGradeId;          // 대상 직급 (NULL=전체)
    private Long targetOrgId;            // 대상 조직 (NULL=전체)
    private String productCategory;      // 적용 상품 카테고리 (NULL=전체)
    private String startMonth;           // YYYYMM — 시책 시작월
    private String endMonth;             // YYYYMM — 시책 종료월
    private String conditionDesc;        // 지급 조건 상세
    private BigDecimal payRate;          // 지급률 (%) — RATE 방식
    private BigDecimal payAmountFixed;   // 고정 지급액 — FIXED_AMOUNT 방식
    private String payType;              // RATE / FIXED_AMOUNT
    private BigDecimal budgetAmount;     // 시책 예산 (NULL=무제한)
    private Boolean isActive;
    private LocalDateTime createdAt;
    private Long createdBy;
    private LocalDateTime updatedAt;
    private Long updatedBy;
}
