package com.ga.core.vo.commission;

import lombok.Data;

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

/**
 * persistency_bonus — 유지보수수당 지급 이력 (V43)
 * UNIQUE(agent_id, base_month, retention_month) — 동일 기준월·개월수 중복 방지.
 */
@Data
public class PersistencyBonusVO {
    private Long bonusId;
    private Long agentId;
    private Long ruleId;
    /** 계약 체결 기준 정산월 (YYYYMM) */
    private String baseMonth;
    /** 평가 기준 개월수 (13/25/37/49) */
    private Integer retentionMonth;
    /** 실제 지급 귀속 정산월 (YYYYMM) */
    private String settleMonth;
    /** 평가 시점 실제 유지율 */
    private BigDecimal retentionRate;
    private BigDecimal bonusAmount;
    /** CALCULATED / CONFIRMED / PAID / CANCELLED */
    private String status;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
}
