declare namespace Model {
    /** 资金账户管理查询 请求 */
    interface TaAccountReq {
        accountId?: number;
        pageNum: number;
        pageSize: number;
        userId?: number;
    }

    /** 资金账户管理查询 响应 */
    interface TaAccountRsp {
        accountId: number; // 资金账号
        accountName: string; // 所属用户
        currency: string; // 币种
        isMain: number; // 账户类型 0 子账户，1 母账号
        parentAccountId: number; // 所属母账户
        relatedName: string; // 关联账户
        taAccountType: string; // 内/外部 0 内部账户,1 外部账户
        tradeStatus: string; // 交易状态 code：traderstatus
    }

    /** 资金账户详情信息 请求 */
    interface TaAccountDetailReq {
        accountId: number;
    }

    /** 资金账户详情信息 响应 */
    interface TaAccountDetailRsp {
        accountId: number; // 资金账号
        accountName: string; // 所属机构
        bankAccountsignList: {
            bankAccountName: string; // 银行卡户名/ismain = 1 展示
            bankAccountNo: string; // 银行卡号/ismain = 1 展示
            bankName: string; // 开户银行/ismain = 1 展示
            canModifyPhone: string;
            canModifySignInfo: string;
            cusBankName: string; // 银行业务编号/ismain = 1 展示
            loginIds: string;
            signStatus: number; // 签约状态 - signstatus /ismain = 1 展示
        }[];
        changeFlag: number; // 变动标志
        currency: string; // 币种
        currentBalance: number; // 期末余额
        freezeCharge: number; // 交易服务费冻结
        freezeMargin: number; // 冻结保证金
        isMain: number; // 是否母账户 0 子账户，1 母账号
        isSelf: number; // 是否展示市场控件 1展示，0不展示
        loginIds: number[];
        otherFreezeMargin: number; // 交割保证金
        otherPay: number; // 货款
        outAmountFreeze: number; // 出金冻结
        outThreshold: number; // 出金阈值
        parentAccountId: number; // 所属母账户/ismain = 0 展示
        payCharge: number; // 平台服务费
        relatedAccountStatus: number; // 关联用户状态/关联用户id!=null &&ismain = 0 展示
        relatedUserId: number; // 关联用户id
        relativeAccountName: string; // 关联用户/关联用户id!=null && ismain = 0 展示
        taAccountType: number; // 内/外部 0 内部账户,1 外部账户
        tradeStatus: number; // 交易状态
        usedMargin: number; // 占用保证金
        userId: number; // 资金账号
    }

    /** 资金账户修改密码 请求 */
    interface TaAccountPwdReq {
        accountId: number; // 资金账号
        oldPwd: string; // 旧密码
        newPwd: string; // 新密码
        confirmPassword: string; // 再次确认密码
    }

    /** 获取签约银行详细信息 请求 */
    interface SignBankByIdReq {
        accountcode: string;
        applyexchticket: string;
        cusbankid: string;
    }

    /** 获取签约银行详细信息 响应 */
    interface SignBankByIdRsp {
        bankAccountsign: {
            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; // 更新时间(签解约更新时间)
        };
        canmodifyphone: number;
        canmodifysigninfo: number;
        extendInfo: BankSignExtendInfo;
    }

    /** 处理银行签约 请求 */
    interface DealAccountSignReq {
        accountcode: string; // 资金账户
        accounttype: number; // 业务类型 1个人 2企业
        bankaccountname: string; // 银行卡户主名
        bankaccountno: string; // 对公账号
        bankcity: string; // 开户行城市
        bankprovince: string; // 开户行省份
        certid: string; // 开户银行行号
        certtype: number; // 证件类型
        cusbankid: string; // 托管银行编号
        exbankname: string; // 开户银行
        extend: Partial<BankSignExtendInfo>;
        forcesignbankaccountno: string;
        isforce: number;
        mobilephone: string; // 手机号
        openbankaccid: string;
        openbankname: string; // 开户支行号
        operatetype: number; // 1-增加; 2-修改; 4-绑卡; 5-解绑; 6-换卡
        type: number; // 0签约 1解约
    }

    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 AccountSignReq {
        accountCode: number; // 资金账户
        cardType?: number; // 证件类型 certificatetype
        cusBankId?: string; // 托管银行
        loginId?: number; // 登录账号
        pageNum: number;
        pageSize: number;
        signStatus?: number; // 签约状态 signstatus
        userId?: number; // 会员代码
    }

    /** 银行签约信息/签解约管理列表 响应 */
    interface AccountSignRsp {
        accountCode: string; // 登录账户
        accountName: string; // 客户名称
        applyexchticket: string;
        bankAccountName: string; // 银行卡户名、银行账户名称/ismain = 1 展示
        bankAccountNo: string; // 银行卡号、对公账号/ismain = 1 展示
        bankChildAccount: string; // 银行子账号
        bankName: string; // 开户银行/ismain = 1 展示
        canBindCard: number; // 是否可绑卡 解绑 - 0:不可 1:可以
        canModifyPhone: number; // 是否可修改手机号 - 0:不可 1:可以
        canModifySignInfo: number; // 是否可修改签约信息 - 0:不可 1:可以
        cardNo: string; // 证件号码
        cardType: string; // 证件类型
        currency: string; // 币种
        cusBankName: string; // 银行业务编号、托管银行/ismain = 1 展示
        cusbankid: string;
        isCanRelease: number; // 是否允许解约 0:不可 1:可以
        loginIds: string; // 登录账户
        signStatus: number; // 签约状态 - code：signstatus /ismain = 1 展示
    }

    /** 出入金查询 请求 */
    interface PutOrInReq {
        accountcode?: string; // 资金账户
        accountname?: number; // 交易商
        applystatus?: string; // 出入金查询不传，1出入金审核，2出入金复核
        areauserid?: number;
        cusbankid?: string; // 托管银行
        executetype?: number; // 类型 executetype
        loginid?: string; // 登录账号
        pageNum: number;
        pageSize: number;
        searchstatus?: number; // 状态 1成功 2失败
        tradedateend?: string; // 交 易 日 结束
        tradedatestart?: string; // 交 易 日 开始
        userid?: string; // 会员代码
        usertype?: number; // 账户类型 2机构 5交易商
    }

    /** 出入金查询 响应 */
    interface PutOrInRsp {
        accountcode: number; // 资金账户
        accountname: string; // 用户/机构
        amount: number; // 金额
        applystatus: number; // 状态
        bankaccountno: string; // 银行卡号 / 银行业务出入金查询展示
        bankname: string; // 开户行 / 银行业务出入金查询展示
        brokername: string; // 所属经纪人 / 银行业务出入金查询展示
        charge: number; // 出入金服务费
        currency: string; // 币种
        cusbankid: string; // 交易商子账号 / 银行业务出入金查询展示
        cusbankname: string; // 托管银行
        exchticket: string;
        executetype: number; // 类型
        memberaccountname: string; // 所属会员 / 银行业务出入金查询展示
        parentaccountname: string; // 所属机构
        tradedate: string; // 交易日
        updatetime: string; // 更新时间
        usertype: number; // 账户类型
    }

    /** 出入金查询详情 请求 */
    interface PutOrInDetailReq {
        accountcode: string;
        cusbankid: string;
        exchticket: string;
        tradedate: string;
    }

    /** 出入金查询详情 响应 */
    interface PutOrInDetailRsp {
        accountcode: number; // 资金账户
        accountticket: string; // 账户服务流水号
        amount: number; // 金额
        applyremark: string; // 备注
        applystatus: number; // 状态 银行业务出入金查询展示
        audittime: string; // 审核时间 银行业务出入金查询展示 applystatus != 1
        balance: number; // 上一日总资产
        bankSignExtendInfo: BankSignExtendInfo;
        bankaccountname: string; // 银行卡开户户名
        bankaccountno: string; // bankaccountno
        bankid: number;
        bankname: string; // 开户行
        bankticket: string; // 银行流水号
        branchbankname: string; // branchbankname
        charge: number; // 出入金服务费
        checkerrorflag: number; // 对账差错标志 银行业务出入金查询展示
        curdebt: number; // 欠款
        currency: string; // 币种
        cusbankid: string;
        cusbankname: string; // 托管银行
        exchticket: number; // 银行服务流水号
        executetype: number; // 申请类型
        extendinfo: string;
        extoperateid: string; // 交易服务流水号
        remark2: string; // 拒绝/失败原因 银行业务出入金查询展示 && applystatus in (3,12,14,15,16,17)
        tradedate: string; // 交易日
        updatetime: string; // 更新时间
        usedmargin: number; // 当前交易保证金
        username: string; // 审核人 银行业务出入金查询展示 applystatus != 1
    }

    /** 资金流水信息列表查询 请求 */
    interface AmountStreamReq {
        accountId?: string; // 资金账号
        endTime?: string; // 结束时间
        logType?: number; // 流水类型 1：当前流水 2：历史流水
        operatetype?: number; // 业务类型 operatetypesearch
        pageNum: number;
        pageSize: number;
        startTime?: string; // 开始时间
        userId?: number;
    }

    /** 资金流水信息列表查询 响应 */
    interface AmountStreamRsp {
        accountId: number; // 资金账户
        accountName: string; // 账户
        amount: number; // 金额
        amountAdjustTypeName: string; // 资金调整类型
        balance: number; // 期初余额
        businessCodeName: string; // 业务类型
        createTime: string; // 记账时间
        currentBalance: number; // 期末余额
        goodsName: string; // 商品
        hisTradeDate: string; // 交易日
        marketName: string; // 市场
        memberName: string; // 所属机构
        operateType: number; // 操作类型
        relationOrderId: string; // 关联单号
    }
}