// 签约请求
export interface t2bBankSignReq {
    ExtOperatorID: Number; // 外部操作流水号
    ExchId?: String; // 交易所编号
    TradeDate?: String; // 交易所业务日期
    ExchTicket?: String; // 交易所流水号
    AccountCode: String; // 账户
    AccountName: String; // 客户名称
    CusBankID: String; // 托管银行编号
    OperateType: Number; // 变更类型[1-增加; 2-修改; 4-绑卡;
    IsForce: Number; // 是否强制[0-否; 1-是]强制，只更新中心签约信息，不发送银行。用于银行信息不一致的情况
    Currency?: String; // 币种
    AccountType?: Number; // 账户类型[1-对私; 2-对公]
    OpenBankAccId: String; // 银行卡行号
    ForceSignBankAccountNo?: String; // 银行账户[强制签约时填写]
    ForceSignBankAccountName?: String; // 银行账户名称[强制签约时填写]
    BankAccountNo: String; // 银行账户
    BankAccountName?: String; // 银行账户名称
    ExBankName: String; // 开户行名称
    OpenBankNo?: String; // 开户支行编号
    OpenBankName?: String; // 开户支行名称
    CertType: String; // 证件类型
    CertID: String; // 证件号码
    BankAccountPWD?: String; // 银行账户密码
    AgentName?: String; // 授权代理人姓名
    AgentCertType?: Number; // 授权代理人证件类型
    AgentCertID?: String; // 授权代理人证件号
    BankAccountType?: Number; // 银行账户类型
    BankProvince?: String; // 开户银行所在省份
    BankCity?: String; // 开户银行所在市
    BankCardType?: Number; // 银行卡类型
    MobilePhone?: String; // 移动电话
    IdentifyCode?: String; // 验证码
    email?: String; // 电子邮箱
    extend_info?: String; // 扩展信息（JSON串，参考配置要求进行填充）;
}

// 签约应答
export interface t2bBankSignRsp {
    // 消息头
    RetCode: Number; // 返回码
    RetDesc?: String; // 描述信息
    ExtOperatorID?: Number; // 外部操作流水号
    AccountCode?: String; // 账户
    NetAddr?: String; // 网络地址（当这里有网址时，应自动跳转网页）
    Status: Number; // 状态（0成功,其他数值参考银行服务的错误码）
    ExchTicket: String; // 交易所流水号
    ExchId?: String; // 交易所编号
    TradeDate?: String; // 交易所业务日期
    CenterTicket?: String; // 中心流水号
    CenterErrCode?: String; // 返回码
    CenterErrMsg?: String; // 返回结果说明
    bankChildAcc?: String; // 银行账号
    bankChildAccName?: String; // 银行账户名
    BankId?: String; // 银行卡行号
    BankAccNum?: String; // 银行卡号
    BankAccName?: String; // 银行卡户名;
}

// 解约请求
export interface t2bBankCancelSignReq {
    ExtOperatorID: Number; // 外部操作流水号
    ExchId?: String; // 交易所编号
    AccountCode: String; // 账户
    CusBankID: String; // 托管银行编号
    IsForce: Number; // 是否强制
    Currency?: String; // 币种
    TradeDate?: String; // 交易所业务日期
    ExchTicket?: String; // 交易所流水号
    BankChildAcc?: String; // 银行子账号
    BankChildAccName?: String; // 银行子账号名;
}

// 解约应答
export interface t2bBankCancelSignRsp {
    // 消息头
    RetCode: Number; // 返回码
    RetDesc?: String; // 描述信息
    ExtOperatorID?: Number; // 外部操作流水号
    AccountCode?: String; // 账户
    NetAddr?: String; // 网络地址（当这里有网址时，应自动跳转网页）
    Status: Number; // 状态（0成功,其他数值参考银行服务的错误码）
    ExchTicket: String; // 交易所流水号
    ExchId?: String; // 交易所编号
    TradeDate?: String; // 交易所业务日期
    CenterTicket?: String; // 中心流水号
    CenterErrCode?: String; // 返回码
    CenterErrMsg?: String; // 返回结果说明;
}

// 已签约信息查询请求
export interface BankSignReq {
    AccountID?: Number; // 资金账户
    CusBankid?: String; // 托管银行ID;
}

// 已签约信息查询响应
export interface BankSignRsp {
    RetCode?: Number; // 返回码
    RetDesc?: String; // 描述信息
    AccountID?: Number; // 资金账户
    CusBankid?: String; // 托管银行ID
    BankSign?: Number; // 已签约信息;
}

// 已签约信息
export interface BankAccountSign {
    AccountCode?: Number; // 资金账户
    CusBankID?: String; // 托管银行ID
    SignStatus?: Number; // 签约状态
    Currency?: String; // 币种
    BankID?: String; // 开户行id
    BankAccountNo?: String; // 银行卡
    BankAccountName?: String; // 开户人名称
    CardType?: Number; // 证件类型
    CardNo?: String; // 证件号码
    MobilePhone?: String; // 手机号码
    BankName?: String; // 开户银行名称
    CusBankName?: String; // 托管银行名称
    AccountNameDisp?: String; // 未加密账户名称
    BankAccountNameDisp?: String; // 未加密开户人名称
    CardNoDisp?: String; // 未加密证件号码
    MobilePhoneDisp?: String; // 未加密手机号码
    CusBankTradeDate?: String; // 托管银行交易日期
    ExtendInfo?: String; // JSON格式扩展信息
    CanModifyPhone?: Number; // 是否能修改手机
    Bankchildaccount?: String; // 银行子账户
    OpenBankNo?: String; // 支行号;
}

// 已签约信息查询请求
export interface queryBankInfoReq {
    cusBankId: Number; // 托管银行编号
}

export interface CusBankInfoRsp {
    canallot: String;
    canallotquery: String;
    canbindcard: String;
    caninamount: String;
    caninamount2: String;
    canmodifybankcard: String;
    canmodifyphone: String;
    canmodifysigninfo: String;
    canoutamount: String;
    canoutamount2: String;
    canrelease: String;
    canrelease2: String;
    cansign: String;
    cansign2: String;
    currency: String;
    cusbankid: String;
    cusbankname: String;
    cusbankshortname: String;
    exchbankid: String;
    exchpaybankaccname: String;
    exchpaybankaccno: String;
    isneedcheck: String;
    isneedclear: String;
    riskinfo: String;
    tradedate: String;
}

//  出金请求 参数
export interface buildOutMoneyReqParam {
    AccountCode: string; // 资金账户
    CusBankID: string; // 托管银行编号
    AccountType: number; // 账户类型
    BankAccoutNum: string; // 银行卡号
    BankAccoutName: string; // 银行卡户名
    Amount: number; // 出金金额
    OldTaPWD: string; // 资金密码
    extend_info: string; // 扩展信息（JSON串，参考配置要求进行填充）
}

export interface buildSearchMoneyOutInParam {
    AccountId: string;
    beginDate: string;
    endDate: string;
}
