package org.dromara.payment.earlyWarn.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 风控预警设置对象 lg_early_warn
 *
 * @author LionLi
 * @date 2025-06-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("lg_early_warn")
public class LgEarlyWarn extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 风险类型[1：单人单笔发放金额预警 2：批次内单笔金额占比预警 3：批次内发放金额相似预警 4：单人每年发放金额预警 5：单人连续月份发放金额相似预警 6：企业风险预警 7：发放年龄预警 8：企业高管身份预警]
     */
    private Integer riskType;

    /**
     * 触发规则[1 单人单笔金额 2 批次占比 3 离散度 4 单人每年金额 5 单人连续月份 6 企业信息异常（经营异常、行政处罚、违法欠税等）7 发放人员年龄 8 发放人员姓名命中企业高管名单]
     */
    private Integer triggerRule;

    /**
     * 单人单笔金额
     */
    private BigDecimal singleAmount;

    /**
     * 批次总笔数
     */
    private BigDecimal totalAmountBatch;

    /**
     * 单笔发放金额起始值
     */
    private BigDecimal singlePaymentAmountStart;

    /**
     * 单笔发放金额结束值
     */
    private BigDecimal singlePaymentAmountEnd;

    /**
     * 占比总数
     */
    private BigDecimal proportionTotal;

    /**
     * 离散度
     */
    private BigDecimal dispersion;

    /**
     * 单人每年金额
     */
    private BigDecimal singleYearAmount;

    /**
     * 累计发放金额波动起始值
     */
    private BigDecimal waveAmountStart;

    /**
     * 累计发放金额波动结束值
     */
    private BigDecimal waveAmountEnd;

    /**
     * 累计发放金额
     */
    private BigDecimal waveAmount;

    /**
     * 单人连续月份
     */
    private Long singleContinuousMonth;

    /**
     * 发放年龄
     */
    private Long issuingAge;

    /**
     * 处理频率[1 每次提交发放 2 每月最后一天]
     */
    private Integer handleFrequency;

    /**
     * 处理方式[1 发放需审核 2 仅风险预警]
     */
    private Integer handleWay;

    /**
     * 风险原因
     */
    private String riskReasons;

    /**
     * 是否已删除[0:否，1:是]
     */
    private Integer isDelete;

    /**
     * 创建者user_id
     */
    private Long createUserId;

    /**
     * 更新者user_id
     */
    private Long updateUserId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 单人单月限额
     */
    private Long singleMonthLimit;

    /**
     * 单人月限额
     */
    private Long singleMonthLimitAmount;


}
