declare namespace Model {
    /** 查询托管银行 响应 */
    interface AllBankCusRsp {
        canallot: number; // 是否支持跨行调拨 - 0:不支持 1:支持
        canallotquery: number; // 是否支持跨行调拨查询 - 0:不支持 1:支持
        canbindcard: number; // 是否可绑卡与解卡 - 0:不可 1:可以
        caninamount: number; // 是否可入金 - 0:不可 1:可以
        caninamount2: number; // 是否可入金(网银端) - 0:不可 1:可以
        canmodifybankcard: number; // 是否可修改银行卡号 - 0:不可 1:可以
        canmodifyphone: number; // 是否可修改手机号 - 0:不可 1:可以
        canmodifysigninfo: number; // 是否可修改签约信息 - 0:不可 1:可以
        canoutamount: number; // 是否可出金 - 0:不可 1:可以
        canoutamount2: number; // 是否可出金(网银端) - 0:不可 1:可以
        canrelease: number; // 是否可解约 - 0:不可 1:可以
        canrelease2: number; // 是否可解约(网银端) - 0:不可 1:可以
        cansign: number; // 是否可签约 - 0:不可 1:可以
        cansign2: number; // 是否可签约(网银端) - 0:不可 1:可以
        currency: string; // 币种
        cusbankid: string; // 托管银行编号(对应清算中心TRAN_NO)
        cusbankname: string; // 银行业务名称
        cusbankshortname: string; // 银行业务简称
        exchbankid: string; // 交易所开户银行ID
        exchpaybankaccname: string; // 交易所支出结算账户户名
        exchpaybankaccno: string; // 交易所支出结算账户
        exputbankid: string; // 手续费结转收款方银行行号 - 金登
        exputpaybankaccname: string; // 手续费结转收款账户户名 - 金登
        exputpaybankaccno: string; // 手续费结转收款账户 - 金登
        exputpaybankaccsubno: string; // 手续费结转收款子账户 - 金登
        isneedcheck: number; // 是否需要对账 - 0:需要 1:不需要 [不需要界面配置]
        isneedclear: number; // 是否需要清算 - 0:不需要 1:需要
        riskinfo: string; // 签约风险提示书
    }

    /** 出入金、银行签约扩展信息是否展示 请求 */
    interface BooleanForAmountReq {
        cusbankid?: string;
        extendbiztype?: string;
        usabletype?: number;
    }

    /** 出入金、银行签约扩展信息是否展示 响应 */
    interface BooleanForAmountRsp {
        cusbankid: string; // 托管银行编号
        extendbiztype: number; // 扩展业务类型 - 1:签约 2:入金 3:出金 4:签约信息修改
        fieldid: number; // 字段ID
        fieldcode: string; // 字段ID
        fieldname: string; // 字段名称
        ismandatory: number; // 是否必填 - 0:不必填 1:必填
        usabletype: number; // 可用类型 - 1:通用 2:机构专用 3:投资者专用
    }

    /** 查询托管银行支持银行 请求 */
    interface BankInfoByCusBankReq {
        bankName?: string;
        cusBankId?: string;
    }

    /** 查询托管银行支持银行 响应 */
    interface BankInfoByCusBankRsp {
        bankId: string; // 银行id
        bankName: string; // 银行名称
    }

    /** 通用枚举判断信息展示查询 请求 */
    interface CommonFlagReq {
        accountid: number;
    }

    /** 通用枚举判断信息展示查询 响应 */
    interface CommonFlagRsp {
        cardnum: string; // 资金管理银行签约证件号码
        cardtypeid: number; // 资金管理银行签约证件类型
        userinfotype: number; // 资金管理银行签约用户信息类型枚举
        customername: string; // 资金管理银行签约客户名称
        mobile: string; // 资金管理银行签约手机号码
        tradedate: string; // 报表查询日期
    }

    /** 网上出入金申请 请求 */
    interface InOrOutAmountReq {
        accountcode: number; // 资金账户
        accpwd: string; // 资金密码
        cusbankid: string; // 托管银行
        extendInfo: Partial<BankSignExtendInfo>;
        money: number; // 金额
        remark: string; // 备注
        type: number; // 出入金 1出金 2入金
    }

    interface BankSignExtendInfo {
        agent_cert_code: string; // 经办人证件号码
        agent_cert_type: number; // 经办人证件类型
        agent_contact: string; // 经办人联系号码
        agent_name: string; // 经办人姓名
        attachment: string; // 附件
        bank_branch_name: string; // 银行卡支行名称
        bank_password: string; // 银行密码
        broker_code: string;
        businessNo: string; // 光大银行 - 营业执照
        business_num_addr: string; // 营业执照地址 机构签约必输(江西金登)
        certificate_photo_url: string; // 附件图片
        legal_cert_code: string; // 法人证件号码
        legal_cert_type: number; // 法人证件类型
        legal_contact: string; // 法人联系号码
        legal_name: string; // 法人姓名
        member_code: string; // 所属会员代码
        org_mobile: string; // 原手机号
        sex: number; // 性别
        smsSerialNo: string; // 杉德 - 签约短信验证码流水号
        taxNo: string; // 光大银行 - 税务登记号
        user_code: string;
        verify_code: string; // 短信验证码
    }

    /** 查询已签约银行 请求 */
    interface BankAccountSignReq {
        accountcode: number;
        signstatus?: number;
    }

    /** 查询已签约银行 响应 */
    interface BankAccountSignRsp {
        accountcode: string; // 资金账号
        accountname: string; // 资金账号对应的账号名(UserName)
        accounttype: number; // 账户类型(UserType)
        applicationtime: string; // 最后一次更新的时间
        applyexchticket: string; // 申请流水
        auditid: number; // 审核人
        audittime: string; // 审核时间
        bankaccountname: string; // 签约银行卡账号名
        bankaccountno: string; // 银行卡号
        bankaccounttype: number; // 银行账户类型 - 1-对私; 2-对公
        bankcardtype: number; // 银行卡类型
        bankchildaccount: string; // 银行子账号（签约成功后，很多银行会返回对应的这个虚拟账号）
        bankcity: string; // 开户行城市
        bankid: string; // 签约银行ID
        bankname: string;
        bankprovince: string; // 开户行省份
        branchbankid: string; // 签约银行支行号
        branchbankname: string; // 签约银行支行名称
        cardno: string; // 证件号码
        cardtype: string; // 证件类型
        currency: string; // 币种
        cusbankid: string; // 托管银行编号
        cusbankname: string;
        direct: number; // 方向(可以判断那方先发起的签约)
        exchticket: string; // 最后一次签约成功的流水号
        extendinfo: string; // 扩展信息(JSON字符串)
        mobilephone: string; // 手机号
        netaddr: string; // 调转网址
        signstatus: number; // 签约状态 - 1:未签约 2:签约待审核 3:签约中 4:已签约 5:解约待审核 6:解约中 7:已解约 8:已解绑 9:绑卡中 10:审核拒绝 11:换签待审核
        updatetime: string; // 更新时间(签解约更新时间)
    }

    /** 获取可用金额 请求 */
    interface MoneyReq {
        accountid: number;
        mtype: number;
        type: number;
    }

    /** 获取可用金额 响应 */
    interface MoneyRsp {
        currencyid: number;
        money: number;
    }

    /** 内部订单查询->电子协议管理->获取列表 请求 */
    interface SignRecordReq {
        recordstatus?: number; // 签署状态
        userid?: number; // 用户
    }

    /** 内部订单查询->电子协议管理->获取列表 响应 */
    interface SignRecordRsp {
        // 协议类型 esigntype
        esigntype: number;
        // 登录账号
        loginid: number;
        // 
        recordid: number;
        // 签署状态 esignrecordstatus
        recordstatus: number;
        //
        sp1005Url: string;
        //// 协议名称
        templatename: string;
        // 模板类型 esigntemplatetype
        templatetype: number;
        // 更新时间
        updatetimestr: string;
        // 用户
        userfullname: string;
    }
}