package cn.pluss.platform.ysExtension.v20220615;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 记录银盛接口的参数的key值
 */
public class YsConstant {

    @Getter
    @AllArgsConstructor
    public enum ReqStatus {
        /** 请求状态值 */
        SUCCESS("00", "请求成功");

        private String code;
        private String desc;
    }

    @Getter
    @AllArgsConstructor
    public enum AuditStatus {
        /**
         * 进件状态
         */
        AUDIT_NO_AUDIT("03", "待审核"), AUDIT_FIRST_TRIAL_SUCCESS("04", "初审完成"), AUDIT_SUCCESS("05", "开户完成"), AUDIT_FIRST_TRIAL_FAIL("90", "初审拒绝");

        private String code;
        private String desc;

        public static AuditStatus getByCode(String code) {
            for (AuditStatus value : AuditStatus.values()) {
                if (value.code.equals(code)) {
                    return value;
                }
            }

            return null;
        }
    }

    /**
     * 营业执照全称
     */
    public static final String BUSINESS_LICENCE = "businessLicence";

    /**
     * 商户简称
     */
    public static final String ALIAS = "userShortName";

    /**
     * 营业执照全称
     */
    public static final String BUSINESS_LICENCE_NO = "businessLicenceNo";

    /**
     * 营业执照开始日期
     */
    public static final String BUSINESS_LICENCE_START = "businessLicenceSdate";

    /**
     * 营业执照结束日期
     */
    public static final String BUSINESS_LICENCE_LIMIT = "businessLicenceEdate";

    /**
     * 营业执照注册地址
     */
    public static final String REGISTERED_ADDRESS = "registeredAddress";

    /**
     * 营业地址
     */
    public static final String BUSINESS_ADDRESS = "businessAddress";

    /**
     * 商户归属省
     */
    public static final String MERC_PROV = "mercProv";

    /**
     * 商户归属省
     */
    public static final String MERC_CITY = "mercCity";

    /**
     * 商户归属省
     */
    public static final String MERC_AREA = "mercArea";

    /**
     * 法人姓名
     */
    public static final String LEGAL_PERSON_NAME = "legalPersonName";

    /**
     * 法人身份证号
     */
    public static final String LEGAL_PERSON_ID = "legalPersonId";

    /**
     * 法人身份证开始日期
     */
    public static final String LEGAL_PERSON_START = "legalPersonIdSdate";

    /**
     * 法人身份证到期日期
     */
    public static final String LEGAL_PERSON_LIMIT = "legalPersonIdEdate";

    /**
     * 法人电话
     */
    public static final String LEGAL_PERSON_PHONE = "legalPersonPhone";

    /**
     * 非法人姓名
     */
    public static final String ACCOUNT_PERSON_NAME = "unincorporatedName";

    /**
     * 非法人身份证号码
     */
    public static final String ACCOUNT_PERSON_ID = "unincorporatedId";

    /**
     * 结算账户卡号
     */
    public static final String ACCOUNT_CARD_NO = "balanceAccCardno";

    /**
     * 结算账户户名
     */
    public static final String ACCOUNT_CARD_NAME = "balanceAccName";

    /**
     * 开户行省（如湖北省）
     */
    public static final String BANK_PROVINCE = "openAccProvince";

    /**
     * 开户行市（如武汉市）
     */
    public static final String BANK_CITY = "openAccCity";

    /**
     * 开户行市（如武汉市）
     */
    public static final String BANK_AREA = "openAccArea";

    /**
     * 开户行行别名称
     */
    public static final String BANK_NAME = "bankName";

    /**
     * 开户行行别
     */
    public static final String BANK_TYPE = "bankType";

    /**
     * 开户行编号（支行）
     */
    public static final String BANK_BRANCH_TYPE = "openAccBanktype";

    /**
     * 开户行名称（支行）
     */
    public static final String BANK_BRANCH_NAME = "openAccBankname";

    /**
     * 联系人姓名
     */
    public static final String CONTACTS_NAME = "contactsName";

    /**
     * 联系人电话
     */
    public static final String CONTACTS_PHONE = "contactsPhone";

    /**
     * 联系人邮箱
     */
    public static final String CONTACTS_EMAIL = "contactsEmail";

    /**
     * 微信签约费率(最 低:0.01%)
     */
    public static final String WECHAT_SIGN_RATE = "wechatSignRate";

    /**
     * 微信签约费率封底(单位:分)
     */
    public static final String WECHAT_SIGN_MIN = "wechatSignMin";

    /**
     * 支付宝签约费率(最低:0.01%)
     */
    public static final String ALIPAY_SIGN_RATE = "alipaySignRate";

    /**
     * 支付宝签约费率封底(单位:分)
     */
    public static final String ALIPAY_SIGN_MIN = "alipaySignMin";

    /**
     * 银联一档（>1000）：贷记卡费率
     */
    public static final String CREDIT_RATE_1 = "creditRate1";

    /**
     * 银联一档（>1000）：贷记卡封底.（单位：分）
     */
    public static final String CREDIT_MIN_1 = "creditMin1";

    /**
     * 银联一档（>1000）：借记卡费率
     */
    public static final String DEBIT_RATE_1 = "debitRate1";

    /**
     * 银联一档（>1000）：借记卡封底（单位：分）
     */
    public static final String DEBIT_MIN_1 = "debitMin1";

    /**
     * 银联一档（>1000）：借记卡封顶（单位：分）
     */
    public static final String DEBIT_MAX_1 = "debitMax1";

    /**
     * 银联二档（<=1000）：贷记卡费率
     */
    public static final String CREDIT_RATE_2 = "creditRate2";

    /**
     * 银联二档（<=1000）：贷记卡封底（单位：分）
     */
    public static final String CREDIT_MIN_2 = "creditMin2";

    /**
     * 银联二档（<=1000）：借记卡费率
     */
    public static final String DEBIT_RATE_2 = "debitRate2";

    /**
     * 银联二档（<=1000）：借记卡封底（单位：分）
     */
    public static final String DEBIT_MIN_2 = "debitMin2";

    /**
     * 银联二档（<=1000）：借记卡封顶（单位：分）
     */
    public static final String DEBIT_MAX_2 = "debitMax2";

    /**
     * 是否开通刷卡业务
     */
    public static final String OPEN_POS_P = "openPosp";

    /* 以下为T1 */
    /**
     * 工作日到账-借记卡费率
     */
    public static final String T_111_RATE = "t111Rate";

    /**
     * 工作日到账-借记卡费率封顶（单位：分）
     */
    public static final String T_111_RATE_TOP = "t111RateTop";

    /**
     * 工作日到账-借记卡费率封底（单位：分）
     */
    public static final String T_111_SIGN_RATE_MIN = "t111SignRateMin";

    /**
     * 工作日到账-贷记卡费率
     */
    public static final String T_112_RATE = "t112Rate";

    /**
     * 工作日到账-贷记卡费率封底（单位：分）
     */
    public static final String T_112_SIGN_RATE_MIN = "t112SignRateMin";

    /* 以下为D1 */
    /**
     * 天天到账-借记卡费率
     */
    public static final String T_11_RATE = "t11Rate";

    /**
     * 天天到账-借记卡费率封顶（单位：分）
     */
    public static final String T_11_RATE_TOP = "t11RateTop";

    /**
     * 天天到账-借记卡费率封底（单位：分）
     */
    public static final String T_11_SIGN_RATE_MIN = "t11SignRateMin";

    /**
     * 天天到账-贷记卡费率
     */
    public static final String T_12_RATE = "t12Rate";

    /**
     * 天天到账-贷记卡费率封底（单位：分）
     */
    public static final String T_12_SIGN_RATE_MIN = "t12SignRateMin";

    /**
     * 天天到账-垫资费类型（百分比、元）
     */
    public static final String T_ADVANCE_TYPE = "tAdvanceType";

    /**
     * 天天到账-垫资费
     */
    public static final String T_ADVANCE_FEE = "tAdvanceFee";

    /**
     * 天天到账-垫资费封底（单位：分）
     */
    public static final String T_ADVANCE_MIN = "tAdvanceMin";

    /* 以下为D0 */
    /**
     * 实时到账-借记卡费率
     */
    public static final String D_011_RATE = "d011Rate";

    /**
     * 实时到账-借记卡费率封顶（单位：分）
     */
    public static final String D_011_RATE_TOP = "d011RateTop";

    /**
     * 实时到账-借记卡费率最低（单位：分）
     */
    public static final String D_011_RATE_BOTTOM = "d011RateBottom";

    /**
     * 实时到账-贷记卡费率
     */
    public static final String D_012_RATE = "d012Rate";

    /**
     * 实时到账-贷记卡费率最低（单位：分）
     */
    public static final String D_012_RATE_BOTTOM = "d012RateBottom";

    /**
     * 实时到账-借记卡签约费率垫资费类型(百分比；元)
     */
    public static final String D_0_ADVANCE_J_SIGN_TYPE = "d0AdvanceJsignType";

    /**
     * 实时到账-借记卡签约费率垫资费
     */
    public static final String D_0_ADVANCE_J_SIGN_FEE = "d0AdvanceJsignFee";

    /**
     * 实时到账-借记卡签约费率垫资费封底（单位：分）
     */
    public static final String D_0_ADVANCE_J_SIGN_MIN = "d0AdvanceJsignMin";

    /**
     * 实时到账-借记卡签约费率垫资费封顶(单位:分)
     */
    public static final String D_0_ADVANCE_J_SIGN_MAX = "d0AdvanceJsignMax";

    /**
     * 实时到账-贷记卡签约费率垫资费类型(百分比；元)
     */
    public static final String D_0_ADVANCE_D_SIGN_TYPE = "d0AdvanceDsignType";

    /**
     * 实时到账-贷记卡签约费率垫资费
     */
    public static final String D_0_ADVANCE_D_SIGN_FEE = "d0AdvanceDsignFee";

    /**
     * 实时到账-贷记卡签约费率垫资费封底（单位：分）
     */
    public static final String D_0_ADVANCE_D_SIGN_MIN = "d0AdvanceDsignMin";

    /**
     * 实时到账-贷记卡签约费率垫资费封顶(单位:分)
     */
    public static final String D_0_ADVANCE_D_SIGN_MAX = "d0AdvanceDsignMax";

    /**
     * 是否开通扫码快付
     */
    public static final String CODE_ADVANCE_OPEN = "codeAdvanceOpen";

    /**
     * 是否开通快付
     */
    public static final String FAST_PAY = "fastPay";

    /**
     * 到账方式, 开通刷卡业务时必填
     */
    public static final String OPEN_BUS_RADIO = "openBusRadio";

    /**
     * 是否法人结算
     */
    public static final String CODE_LEGAL_PERSON_ACC = "codeLegalPersonAcc";

    /**
     * 垫资费费率
     */
    public static final String CODE_ADVANCE_RATE = "codeAdvanceRate";

    /**
     * 垫资费费率最低值（单位：分）
     */
    public static final String CODE_ADVANCE_MIN = "codeAdvanceMin";

    /**
     * 银盛商户类型
     */
    public static final String MCC_SUB_CD = "mccSubCd";

    /**
     * MCC 码
     */
    public static final String MCC_CD = "mccCd";

    /**
     * 代理商编号
     */
    public static final String CO_OPERATOR_NO = "coOperatorNo";

    /**
     * 代理商编号
     */
    public static final String INDUSTRY = "industry";

    /**
     * 扫码报备所需商户类型
     */
    public static final String MCH_TYPE = "mchtype";

    /**
     * 扫码报备所需商户类别
     */
    public static final String MCH_CATEGORY = "mchcategory";

    /**
     * 法人国籍
     */
    public static final String CRP_NATIONALITY = "crpNationality";

    /**
     * 法人性别
     */
    public static final String CRP_GENDER = "crpGender";

    /**
     * 法人职业
     */
    public static final String CRP_PROFESSION = "crpProfession";

    /**
     * 法人地址
     */
    public static final String CRP_ADDR = "crpAddr";

    /**
     * 商户模式
     */
    public static final String USER_TYPE = "userType";

    /**
     * 备注
     */
    public static final String REMARK = "remark";

    /**
     * 结算起始金额
     */
    public static final String LOWEST_STL_AMT = "lowestStlAmt";

    /**
     * 银行预留手机号
     */
    public static final String BANK_MOBILE = "bankMobile";

    /**
     * 实际控制人
     */
    public static final String ACTUAL_MANAGER = "actualManager";

    /**
     * 证件类型
     */
    public static final String CERT_TYPE = "certType";

    /**
     * 证件类型
     */
    public static final String MERC_LVL = "mercLvl";

    /**
     * 总店商户号
     */
    public static final String MERC_UP_ID = "mercUpId";

    /**
     * 联系人通讯地址
     */
    public static final String CONTACTS_ADDR = "contactsAddr";

    /**
     * 结算卡类型
     */
    public static final String BALANCE_ACC_TYPE = "balanceAccType";

    /**
     * 拓展经理姓名
     */
    public static final String EXPANDING_MANAGER = "expandingManager";




    // ================ 以下为线上交易权限开通的接口参数名 ================

    /**
     * 商户号
     */
    public static final String MERC_ID = "mercId";

    /**
     * 接入机构号
     */
    public static final String ACC_ORG_NO = "accOrgNo";

    /**
     * 交易权限
     */
    public static final String SCAN_SERVICE_OPEN = "scanServiceOpen";

    /**
     * 费率信息
     */
    public static final String EASY_FEE_BEAN = "easyFeeBean";

    /**
     * 微信费率类型
     * 必填 1 百分比，2 固定金额
     */
    public static final String R_SCAN_WX_FEE_TYPE = "rscanWxFeeType";

    /**
     * rscanWxFeeType 为 1时 必填
     * 示例 0.3 表示 0.003
     */
    public static final String R_SCAN_WX_FEE_RATE = "rscanWxFeeRate";

    /**
     * 微信费率金额
     * 单位：分
     * rscanWxFeeType 为 1 时为封底金额
     * rscanWxFeeType 为 2 时为固定金额
     */
    public static final String R_SCAN_WX_FEE_NUM = "rscanWxFeeNum";

    /**
     * 支付宝费率，同微信
     */
    public static final String R_SCAN_ALI_FEE_TYPE = "rscanAliFeeType";

    public static final String R_SCAN_ALI_FEE_RATE = "rscanAliFeeRate";

    public static final String R_SCAN_ALI_FEE_NUM = "rscanAliFeeNum";


    /**
     * 银联借记卡一档费率类型
     * 1 百分比，2 固定金额
     */
    public static final String R_SCAN_DEBIT_TYPE_1 = "rscanDebitType1";

    /**
     * 银联借记卡一档金额
     * rscanDebitType1 为 1 时为借记卡一档费率，示例 0.3 表示 0.003，
     * rscanDebitType1 为 2 时为固定金额 单位：分
     */
    public static final String R_SCAN_DEBIT_NUM_1 = "rscanDebitNum1";

    /**
     * 银联借记卡一档金额封底金额
     * 单位：分
     * rscanDebitType1为1 必填
     */
    public static final String R_SCAN_DEBIT_MIN_1 = "rscanDebitMin1";

    /**
     * 银联借记卡一档金额封顶金额
     * 单位：分
     * rscanDebitType1为1, 必填
     */
    public static final String R_SCAN_DEBIT_MAX_1 = "rscanDebitMax1";

    /**
     * 银联借记卡二档费率类型
     * 1、百分比; 2、固定金额
     */
    public static final String R_SCAN_DEBIT_TYPE_2 = "rscanDebitType2";

    /**
     * 银联借记卡二档金额
     * rscanDebitType2为1时为借记卡一档费率，示例 0.3表 示 0.003;
     * rscanDebitType2为2时为固定金额 单位：分
     */
    public static final String R_SCAN_DEBIT_NUM_2 = "rscanDebitNum2";

    /**
     * 银联借记卡二档金额封底金额
     * 单位：分
     * rscanDebitType2为1,必填
     */
    public static final String R_SCAN_DEBIT_MIN_2 = "rscanDebitMin2";

    /**
     * 银联借记卡二档金额封顶金额
     * 单位：分
     * rscanDebitType2 为 1 必填
     */
    public static final String R_SCAN_DEBIT_MAX_2 = "rscanDebitMax2";

    /**
     * 银联借记卡二档金额封顶金额
     * 单位：分
     * rscanDebitType2 为 1 必填
     */
    public static final String R_SCAN_CREDIT_TYPE_1 = "rscanCreditType1";

    /**
     * 银联贷记卡 一档金额(>1000)
     * rscanCreditType1 为 1 时为借记卡一 档费率，示例 0.3 表示 0.003， rscanCreditType1 为 2 时为固定金额 单位：分
     */
    public static final String R_SCAN_CREDIT_NUM_1 = "rscanCreditNum1";

    /**
     * 银联贷记卡 一档金额封底金额
     * 单位：分
     * rscanCreditType1 为 1 必填
     */
    public static final String R_SCAN_CREDIT_MIN_1 = "rscanCreditMin1";

    /**
     * 银联贷记卡 二档费类型
     * 1 百分比 2 固定金额
     */
    public static final String R_SCAN_CREDIT_TYPE_2 = "rscanCreditType2";

    /**
     * 银联贷记卡 二档金额
     * rscanCreditType2 为 1 时为借记卡一 档费率，示例 0.3 表示 0.003;
     * rscanCreditType2 为 2 时为固定金额 单位：分
     */
    public static final String R_SCAN_CREDIT_NUM_2 = "rscanCreditNum2";

    /**
     * 银联贷记卡 二档金额封底金额
     * 单位：分 rscanCreditType2 为 1 必填
     */
    public static final String R_SCAN_CREDIT_MIN_2 = "rscanCreditMin2";

}
