package com.yd.csf.service.enums;

import org.apache.commons.lang3.StringUtils;

/**
 * 项目类型码枚举
 * XS("销售佣金", "1")
 * M1("一级管理奖", "2")
 * M2("二级管理奖", "3")
 * TJ("终身推荐奖", "4")
 * FD("辅导奖", "5")
 * OT("其他加扣款", "6")
 * PA("协议约定金额", "7")
 */
public enum FortuneTypeEnum {

    //项目类型枚举
    XS("XS", "1"),
    M1("M1", "2"),
    M2("M2", "3"),
    TJ("TJ", "4"),
    FD("FD", "5"),
    OT("OT", "6"),
    PA("PA", "7"),
    ;
    //字典项标签（名称）
    private String itemLabel;
    //字典项值
    private String itemValue;

    //构造函数
    FortuneTypeEnum(String itemLabel, String itemValue) {
        this.itemLabel = itemLabel;
        this.itemValue = itemValue;
    }

    public String getItemLabel() {
        return itemLabel;
    }

    public String getItemValue() {
        return itemValue;
    }

    /**
     * 根据业务值(itemValue)获取枚举实例
     *
     * @param itemValue 业务值，如 "2"
     * @return 对应的枚举实例
     */
    public static FortuneTypeEnum getByItemValue(String itemValue) {
        if (StringUtils.isBlank(itemValue)) {
            throw new IllegalArgumentException("itemValue is blank");
        }
        for (FortuneTypeEnum type : FortuneTypeEnum.values()) {
            if (type.itemValue.equals(itemValue)) {
                return type;
            }
        }
        throw new IllegalArgumentException("No enum constant for itemValue: " + itemValue);
    }
}
