package shop.alien.entity.second.enums;

import lombok.Getter;

/**
 * 风控规则类型枚举
 * @see RiskControlRuleTypeEnum 风控规则类型枚举
 */
@Getter
public enum RiskControlRuleTypeEnum {
    /**
     * 洗钱嫌疑: 高频高价交易(>5次/天，>200元/笔)
     */
    MONEY_LAUNDERING_SUSPICION(1, "洗钱嫌疑", "24h>5次>200元"),

    /**
     * 账号异常: 同一设备/mac 24小时内注册超过3个账号
     */
    ACCOUNT_ABNORMAL(2, "账号异常", "24h同设备>3账号"),

    /**
     * 交易欺诈: 用户频繁修改商品 发布成功的记录（24小时 3次 - 调取接口发当前时间 倒推24小时）
     */
    TRANSACTION_FRAUD(3, "交易欺诈", "24h修改商品>3次"),

    /**
     * 异常发布: 短时间大量发布同类商品（如24小时发布10个同二级分类触发- 调取接口发当前时间 倒推24小时）
     */
    ABNORMAL_PUBLISH(4, "异常发布", "24h同分类>10商品");


    private final Integer ruleType;
    private final String ruleName;
    private final String description;

    RiskControlRuleTypeEnum(Integer ruleType, String ruleName, String description) {
        this.ruleType = ruleType;
        this.ruleName = ruleName;
        this.description = description;
    }

    /**
     * 根据ruleType获取枚举
     *
     * @param ruleType 规则类型
     * @return 对应的枚举值
     */
    public static RiskControlRuleTypeEnum fromRuleType(Integer ruleType) {
        for (RiskControlRuleTypeEnum rule : RiskControlRuleTypeEnum.values()) {
            if (rule.getRuleType().equals(ruleType)) {
                return rule;
            }
        }
        return null;
    }
}