package com.ningdatech.pmapi.meta.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author liuxinxin
 * @date 2022/7/21 下午6:08
 */
@AllArgsConstructor
@Getter
public enum DictExpertInfoTypeEnum {

    //    政治面貌
    POLITICAL("political"),
    //    学历
    EDU("edu"),
    //    学位
    DEGREE("degree"),
    //    在职状态
    JOB_STATUS("job_status"),
    //    行政职级
    ADMINISTRATIVE_RANK("administrative_rank"),
    //    内外围（专家类型）
    EXPERT_TYPE("expert_type"),
    //    单位类型
    COMPANY_ATTRIBUTE("company_attribute"),
    //    职称级别
    TITLE_LEVEL("title_level"),
    //    推荐方式
    RECOMMENDED_WAY("recommended_way");


    private final String key;

    public static List<String> getAll() {
        List<String> dictionaryList = new ArrayList<>();
        DictExpertInfoTypeEnum[] values = DictExpertInfoTypeEnum.values();
        for (DictExpertInfoTypeEnum typeEnum : values) {
            dictionaryList.add(typeEnum.key);
        }
        return dictionaryList;
    }

    public static boolean contains(String key) {
        if (StringUtils.isBlank(key)) {
            return false;
        }
        for (DictExpertInfoTypeEnum typeEnum : DictExpertInfoTypeEnum.values()) {
            if (typeEnum.key.equals(key)) {
                return true;
            }
        }
        return false;
    }

    public static DictExpertInfoTypeEnum of(String key) {
        for (DictExpertInfoTypeEnum statusEnum : DictExpertInfoTypeEnum.values()) {
            if (statusEnum.key.equals(key)) {
                return statusEnum;
            }
        }
        throw new IllegalArgumentException(String.format("Illegal DictionaryExpertInfoTypeEnum = %s", key));
    }

}
