package com.trade.service.contract.util.esign;

/**
 * e签宝：常量工具
 */
public class ESignConstant {

    /**
     * 回调操作类型
     */
    // 签署人签署完成
    public static final String ACTION_TYPE_FLOW_UPDATE = "SIGN_FLOW_UPDATE";
    // 签署人签署完成
    public static final String ACTION_TYPE_FLOW_FINISH = "SIGN_FLOW_FINISH";


    // 签署人签署完成
    public static final int SIGN_FLOW_STATUS_FINISH = 2;
    // 超时未签署
    public static final int SIGN_FLOW_STATUS_OVERTIME = 5;
    // 拒签
    public static final int SIGN_FLOW_STATUS_REFUSE = 7;




    public static final String ESign_PREFIX = "inkasso_";
    /** 《池保理业务合同》 3.0及其之前版本使用 **/
    public static final String FACTORING_CONTRACT = "factoring_contract";
    public static final String FACTORING_CONTRACT_CN = "池保理业务合同.pdf";
    /** 《保理业务同意书》 3.0及其之前版本使用 **/
    public static final String FACTORING_CONSENT = "factoring_consent";
    public static final String FACTORING_CONSENT_CN = "保理业务同意书.pdf";
    /** 《担保函（个人）》 3.0及其之前版本使用 **/
    public static final String PERSONAL_GUARANTEE = "personal_guarantee";
    public static final String PERSONAL_GUARANTEE_CN = "担保函（个人）.pdf";
    /** 《还款承诺授权书》 3.0及其之前版本使用 **/
    public static final String REPAYMENT_COMMITMENT_AUTH_LETTER = "repayment_commitment_auth_letter";
    public static final String REPAYMENT_COMMITMENT_AUTH_LETTER_CN = "还款承诺授权书.pdf";
    // /** 甲方签署关键字 **/
    // public static Map<String, String> signKeywordToA = new HashMap<>();
    // /** 乙方签署关键字 **/
    // public static Map<String, String> signKeywordToB = new HashMap<>();
    /**
     * E签宝个人账号-证件类型
     */
    /** 大陆身份证 */
    public static final String CRED_PSN_CH_IDCARD = "CRED_PSN_CH_IDCARD";
    /** 护照 */
    public static final String CRED_PSN_PASSPORT = "CRED_PSN_PASSPORT";
    /**
     * E签宝企业账号-证件类型
     */
    /** 企业统一社会信用代码 */
    public static final String CRED_ORG_USCC = "CRED_ORG_USCC";
    public static final String CRED_ORG_UNKNOWN = "CRED_ORG_UNKNOWN";
    // 签署日期格式
    public static final String SIGN_DATE_FORMAT = "yyyy年MM月dd日";
    /**
     * e签宝签署人意愿认证方式
     */
    // 腾讯云刷脸
    public static final String FACE_TECENT_CLOUD_H5 = "FACE_TECENT_CLOUD_H5";
    // 意愿认证方式 - 短信验证码
    public static final String CODE_SMS = "CODE_SMS";
    // 意愿认证方式 - 支付宝刷脸
    public static final String FACE_ZHIMA_XY = "FACE_ZHIMA_XY";
    // 实名认证方式 个人人脸识别：微众刷脸
    public static final String FACEAUTH_TECENT_CLOUD = "FACEAUTH_TECENT_CLOUD";
    /**
     * 签署方
     */
    /** 甲方 */
    public static final String PARTY_A = "PARTY_A";
    /** 乙方 */
    public static final String PARTY_B = "PARTY_B";
    /**
     * token 缓存 key
     */
    public static final String TOKEN = "TOKEN";
    /**
     * refreshtoken 缓存 key
     */
    public static final String REFRESH_TOKEN = "REFRESH_TOKEN";
    /**
     * e签宝签署合同scope，目的是回调触发电理通系统特定的操作
     */
    // 融资申请
    public static final String CONTRACT_FINANCING = "financing";
    // 被授权人-授权委托书
    public static final String CONTRACT_AUTHORIZED_DOCUMENT = "authorized_document";
    // 会员升级-企业征信查询授权书
    public static final String CONTRACT_ENT_CREDIT_INQUIRY_AUTH_DOCUMENT = "enterprise_credit_inquiry_authorization_document";
    // 资方协议（比如：苏宁银行-授权协议）
    public static final String CONTRACT_FUNDING = "funding";
    // 担保函（支付公司）
    public static final String CONTRACT_GUARANTEE = "guarantee";
    // 年包协议
    public static final String CONTRACT_ANNUAL_PACK = "annual_pack";
    // 授权委托书
    public static final String CONTRACT_PAYMENT_AUTH_CHINK = "payment_auth_chink";
    // PP还款授权书
    public static final String CONTRACT_PAYMENT_AUTH_PP = "payment_auth_pp";
    /**
     * 签署区关键字
     */
    // 个人签署区关键字
    public static final String KEYWORD_PERSONAL = "keywordp";
    // 企业签署区关键字
    public static final String KEYWORD_COMPANY = "keywordc";
    // 甲方签署区关键字
    public static final String KEYWORD_PARTY_A = "keyword1";
    // 乙方签署区关键字
    public static final String KEYWORD_PARTY_B = "keyword2";
    // 签署区关键字3
    public static final String KEYWORD_PARTY_3 = "keyword3";
    // 签署区关键字4
    public static final String KEYWORD_PARTY_4 = "keyword4";
    // 签署区关键字3
    public static final String KEYWORD_PARTY_5 = "keyword5";
    // 签署区关键字4
    public static final String KEYWORD_PARTY_6 = "keyword6";
    // 签署日期关键字
    public static final String KEYWORD_DATE = "keywordd";
    // 签署关键字 不区分企业个人 单方签署
    public static final String KEYWORD = "keywordx";
    /* 建行连接器生成文件签署关键字 */
    // 授权书企业
    public static final String KEYWORD_CCB_SQS_COMPANY = "（电子印章）：";
    // 授权书个人
    public static final String KEYWORD_CCB_SQS_PERSONAL = "乙方（签章）：";
    // 平台云贷业务授权书企业章
    public static final String KEYWORD_CCB_PTYD_COMPANY = "（电子印章）：";
    // 企业征信授权书个人章
    public static final String KEYWORD_CCB_QYZX_COMPANY = "企业名称：";
    // 个人征信授权书个人章
    public static final String KEYWORD_CCB_GRZX_PERSONAL = "本人姓名（签章）：";
    // 敏感信息个人章
    public static final String KEYWORD_CCB_MGXX_PERSONAL = "本人签章：";
    // 贷款申请书 公司申请人（电子印章）：
    public static final String KEYWORD_CCB_DKSQS_COMPANY = "（电子印章）：";
    // 贷款申请书 自然人申请人/授权代理人（签章）：
    public static final String KEYWORD_CCB_DKSQS_PERSONAL = "（签章）";
    // 平台云贷借款合同 甲方1（电子印公章）：
    public static final String KEYWORD_CCB_JKHT_COMPANY = "（电子印公章）：";
    // 平台云贷借款合同 甲方2（签章）：
    public static final String KEYWORD_CCB_JKHT_PERSONAL = "（签章）";
    // 平台云贷推荐确认表 企业（签章） ：
    public static final String KEYWORD_CCB_TJB_COMPANY = "（签章）";
    // 指定刷脸认证方式 - 支付宝芝麻信用认证
    public static final String FACE_AUTH_MODE_ZHIMA = "ZHIMACREDIT";
    // 认证类型 - 个人
    public static final String IDENTITY_TYPE_INDIVIDUAL = "individual";
    // 认证类型 - 企业
    public static final String IDENTITY_TYPE_ENTERPRISE = "enterprise";
    // 认证状态 - 已发起，该状态下e签宝不会计费
    public static final String IDENTITY_STATUS_INIT = "INIT";
    // 认证状态 - 进行中
    public static final String IDENTITY_STATUS_ING = "ING";
    // 认证状态 - 已成功
    public static final String IDENTITY_STATUS_SUCCESS = "SUCCESS";
    // 认证状态 - 已失败
    public static final String IDENTITY_STATUS_FAIL = "FAIL";
    // 打款进度 - 查询打款记录成功，企业认证完成
    public static final String PAYMENT_PROCESS_FINISHED = "ORGANFINISHED";
    // 认证回调地址
    public static final String IDENTITY_CALL_BACK_URL = "http://47.112.220.55:8848/ec_api/notice/identityStatus";
    static {
        // signKeywordToA.put(FACTORING_CONTRACT, "keyword1");
        // signKeywordToA.put(FACTORING_CONSENT, "keyword1");
        // signKeywordToB.put(FACTORING_CONTRACT, "keyword2");
        // signKeywordToB.put(FACTORING_CONSENT, "keyword2");
        // signKeywordToB.put(PERSONAL_GUARANTEE, "keyword2");
        // signKeywordToB.put(REPAYMENT_COMMITMENT_AUTH_LETTER, "keyword2");
    }
    
    
    public static boolean isFlowTerminate(int status) {
        return status == SIGN_FLOW_STATUS_FINISH || status == SIGN_FLOW_STATUS_OVERTIME
                || status == SIGN_FLOW_STATUS_REFUSE;
    }
}
