package com.hzs.common.core.enums;

import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 系统是否枚举类
 *
 * @author: hzs
 */
@AllArgsConstructor
@Getter
public enum EYesNo {

    /**
     * 禁止 用于奖金不公布
     */
    PROHIBIT("N", -1, "禁止", EnumsPrefixConstants.YES_NO + "-1"),

    /**
     * 是
     */
    YES("Y", 0, "允许", EnumsPrefixConstants.YES_NO + "0"),

    /**
     * 否
     */
    NO("N", 1, "禁止", EnumsPrefixConstants.YES_NO + "1"),

    ;

    /**
     * 实际值
     */
    private final String value;
    /**
     * 实际值（数字型）
     */
    private final int intValue;
    /**
     * 显示标签
     */
    private final String label;
    /**
     * 国际化翻译key值
     */
    private final String key;

    /**
     * 校验状态是否合法
     *
     * @param value
     * @return
     */
    public static boolean checkEnableCode(Integer value) {
        return YES.getIntValue() == value
                || NO.getIntValue() == value;
    }

    /**
     * 根据值，返回label
     *
     * @param intVale
     * @return
     */
    public static String getLabelByIntValue(int intVale) {
        if (YES.getIntValue() == intVale) {
            return YES.getLabel();
        }
        return NO.getLabel();
    }

    /**
     * 根据值，返回枚举
     *
     * @param value
     * @return
     */
    public static EYesNo getEnumByValue(int value) {
        return YES.getIntValue() == value ? YES : NO;
    }

}
