package com.yonge.cooleshow.auth.enums;

import com.yonge.toolset.base.enums.BaseEnum;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;

/**
 * 登录方式
 * Created by Eric.Shang on 2022/11/8.
 */
@Getter
public enum ELoginType implements BaseEnum<String, ELoginType> {

    PASSWORD("用户密码"),
    CAPTCHA("图形验证码"),
    SMS("短信验证码"),
    WECHAT_OPENID("微信公众号"),
    WECHAT_MA("微信小程序"),
    ;

    private final String message;

    ELoginType(String message) {
        this.message = message;
    }

    /**
     * 获取枚举类的code值
     *
     * @return T
     */
    @Override
    public String getCode() {
        return this.name();
    }

    /**
     * 用户登录方式有效性校验
     * @param name 登录方式
     * @return boolean
     */
    public static boolean invalid(String name) {
        if (StringUtils.isNotEmpty(name)) {

            ELoginType[] values = ELoginType.values();
            for (ELoginType item : values) {

                if (item.name().equals(name.toUpperCase())) {
                    return false;
                }
            }
        }
        return true;
    }

    /**
     * 获取登录方式
     * @param dataType 登录类型
     * @return ELoginType
     */
    public static ELoginType get(String dataType) {

        if (StringUtils.isNoneBlank(dataType)) {

            for (ELoginType item : ELoginType.values()) {

                if (item.getCode().equals(dataType.toUpperCase())) {
                    return item;
                }
            }

        }

        return PASSWORD;
    }
}
