package com.core.common.enums;

/**
 * 租户配置项字典（不存在DB中，以此文件为基准，新增修改只需在这里改）
 *
 * @author system
 */
public enum TenantOptionDict {
    /**
     * 医院名称
     */
    HOSPITAL_NAME("hospitalName", "医院名称", 0),
    /**
     * 医疗机构等级
     */
    MEDINS_LV("medinsLv", "医疗机构等级", 1),
    /**
     * 定点医药机构编号
     */
    FIXMEDINS_CODE("fixmedinsCode", "定点医药机构编号", 2),
    /**
     * 电子发票appid
     */
    APP_ID("app_id", "电子发票appid", 3),
    /**
     * 电子发票key
     */
    KEY("key", "电子发票key", 4),
    /**
     * 电子发票url
     */
    URL("url", "电子发票url", 5),
    /**
     * 医保开关
     */
    YB_SWITCH("yb_switch", "医保开关", 6),
    /**
     * 客户端私钥
     */
    CLI_PRV_KEY("cliPrvKey", "客户端私钥", 7),
    /**
     * 客户端公钥
     */
    CLI_PUB_KEY("cliPubKey", "客户端公钥", 8),
    /**
     * 服务端公钥
     */
    SERVER_PUB_KEY("serverPubKey", "服务端公钥", 9),
    /**
     * 定点医药机构名称
     */
    FIXMEDINS_NAME("fixmedinsName", "定点医药机构名称", 10),
    /**
     * 行政区划
     */
    ADMVS("admvs", "行政区划", 11),
    /**
     * 授权范围
     */
    SCOPE("scope", "授权范围", 12),
    /**
     * 授权类型
     */
    GRANT_TYPE("grantType", "授权类型", 13),
    /**
     * 密码
     */
    PASSWORD("password", "密码", 14),
    /**
     * 用户名
     */
    USERNAME("username", "用户名", 15),
    /**
     * 客户端安全码
     */
    CLIENT_SECRET("clientSecret", "客户端安全码", 16),
    /**
     * 客户端ID
     */
    CLIENT_ID("clientId", "客户端ID", 17),
    /**
     * 生产环境客户端公钥
     */
    PROD_CLI_PUB_KEY("prod_cliPubKey", "生产环境客户端公钥", 18),
    /**
     * 生产环境客户端私钥
     */
    PROD_CLI_PRV_KEY("prod_cliPrvKey", "生产环境客户端私钥", 19),
    /**
     * 生产环境客户端ID
     */
    PROD_CLIENT_ID("prod_clientId", "生产环境客户端ID", 20),
    /**
     * 文件路径
     */
    FILE_PATH("filePath", "文件路径", 21),
    /**
     * 电子地址
     */
    ELE_ADDRESS("eleAddress", "电子地址", 22),
    /**
     * 服务地址
     */
    ADDRESS("address", "服务地址", 23),
    /**
     * 超时时间
     */
    TIME("time", "超时时间", 24),
    /**
     * 是否加密
     */
    IS_ENCRYPT("isEncrypt", "是否加密", 25),
    /**
     * 医保区划
     */
    INSUPLC_ADMDVS("insuplc_admdvs", "医保区划", 26),
    /**
     * 电子处方appId
     */
    PRE_APP_ID("pre_app_id", "电子处方appId", 27),
    /**
     * 电子处方appSecret
     */
    PRE_APP_SECRET("pre_app_secret", "电子处方appSecret", 28),
    /**
     * 电子处方私钥
     */
    APP_PRVKEY("APP_PRVKEY", "电子处方私钥", 29),
    /**
     * 电子处方公钥
     */
    PLAF_PUBKEY("PLAF_PUBKEY", "电子处方公钥", 30),
    /**
     * 医保客户端ID
     */
    YB_CLIENT_ID("ybClientId", "医保客户端ID", 31),
    /**
     * 医保客户端安全码
     */
    YB_CLIENT_SECRET("ybClientSecret", "医保客户端安全码", 32),
    /**
     * 医保用户名
     */
    YB_USERNAME("ybUsername", "医保用户名", 33),
    /**
     * 医保密码
     */
    YB_PASSWORD("ybPassword", "医保密码", 34),
    /**
     * 医保授权类型
     */
    YB_GRANT_TYPE("ybGrantType", "医保授权类型", 35),
    /**
     * 医保授权范围
     */
    YB_SCOPE("ybScope", "医保授权范围", 36),
    /**
     * 医保密钥
     */
    YB_CLI_PRV_KEY("ybCliPrvKey", "医保密钥", 37),
    /**
     * 医保服务URL
     */
    YB_URL("ybUrl", "医保服务URL", 38),
    /**
     * 医院等级
     */
    HOSPITAL_LV("hospital_lv", "医院等级", 39),
    /**
     * LIS接口地址
     */
    LIS_API_URL("lisApiUrl", "LIS接口地址", 40),
    /**
     * LISAppId
     */
    LIS_APP_ID("lisAppId", "LISAppId", 41),
    /**
     * LISAppSecret
     */
    LIS_APP_SECRET("lisAppSecret", "LISAppSecret", 42),
    /**
     * PACS接口地址
     */
    PACS_API_URL("pacsApiUrl", "PACS接口地址", 43),
    /**
     * PACSAppId
     */
    PACS_APP_ID("pacsAppId", "PACSAppId", 44),
    /**
     * PACSAppSecret
     */
    PACS_APP_SECRET("pacsAppSecret", "PACSAppSecret", 45),
    /**
     * PACSAppSecret
     */
    INVOICE_URL("invoiceUrl", "电子发票中转服务的路径", 46),
    /**
     * PACSAppSecret
     */
    FORWARD_SWITCH("forwardSwitch", "电子发票中转服务开关", 47),
    /**
     * 食源性开关
     */
    FOODBORNE_SWITCH("foodborneSwitch", "食源性开关", 48),
    /**
     * 食源性接口地址 ../goto（格式如下：http://172.16.7.247/infections/goto 需指定到/goto）
     */
    FOODBORNE_API_URL("foodborneApiUrl", "食源性接口地址 ../goto", 49),
    /**
     * 食源性医疗机构
     */
    FOODBORNE_HOSPITAL("foodborneHospital", "食源性医疗机构", 50),
    /**
     * 食源性登录账号
     */
    FOODBORNE_USER_NAME("foodborneUserName", "食源性登录账号", 51),
    /**
     * BPC商户号
     */
    BPC_MID("bpcMid", "BPC商户号", 52),
    /**
     * BPC终端号
     */
    BPC_TID("bpcTid", "BPC终端号", 53),
    /**
     * BPCMD5签名密钥
     */
    BPC_MD5_SHARED_SECRET("bpcMd5SharedSecret", "BPCMD5签名密钥", 54),
    /**
     * BPC请求URL
     */
    BPC_REQUEST_URL("bpcRequestUrl", "BPC请求URL", 55);

    private final String code;
    private final String name;
    private final Integer sort;

    TenantOptionDict(String code, String name, Integer sort) {
        this.code = code;
        this.name = name;
        this.sort = sort;
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    public Integer getSort() {
        return sort;
    }

    public static TenantOptionDict getByCode(String code) {
        if (code == null) {
            return null;
        }
        for (TenantOptionDict val : values()) {
            if (val.getCode().equals(code)) {
                return val;
            }
        }
        return null;
    }
}
