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 EShowStatus {

    /**
     * 显示
     */
    SHOW( 0, "显示", EnumsPrefixConstants.SHOW_STATUS + "0"),

    /**
     * 隐藏
     */
    HIDE( 1, "隐藏", EnumsPrefixConstants.SHOW_STATUS + "1"),

    ;

    /**
     * 实际值
     */
    private final int value;
    /**
     * 显示标签
     */
    private final String label;
    /**
     * 国际化翻译key值
     */
    private final String key;

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

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

    /**
     * 根据值，返回枚举
     *
     * @param value
     * @return
     */
    public static EShowStatus getEnumByValue(int value) {
        return SHOW.getValue() == value ? SHOW : HIDE;
    }

}
