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

    /** 资金账户管理查询 响应 */
    interface TaAccountRsp {
        accountId: number; // 资金账号
        accountName: string; // 所属用户
        curRiskRate: number; // 风险率
        currency: string; // 币种
        isMain: number; // 账户类型 0 子账户，1 母账号
        outThreshold: number; // 出金阈值
        parentAccountId: number; // 所属母账户
        relatedName: string; // 关联账户
        relatedaccountstatus: number;
        relateduserid: number;
        selfsupport: number; // 是否展示修改按钮
        taAccountType: number; // 内/外部 0 内部账户,1 外部账户
        tradeStatus: number; // 交易状态 code：traderstatus
        userid: number;
    }

    /** 资金账户详情信息 请求 */
    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: number; // 币种
        currentBalance: number; // 期末余额
        dtype: {
            checked: number;
            dtype: number;
            fdType: number;
            fspotRightType: number;
            marketId: number;
            marketName: string;
            spotRightType: number; // code:marketbstype
            tradeMode: number;
            tradeProperty: 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 UpdateTaAccountReq {
        accountId: number; // 资金账号
        dtype: {
            checked: number;
            dtype: number;
            fdType: number;
            fspotRightType: number;
            marketId: number;
            marketName: string;
            spotRightType: number; // code: marketbstype
            tradeMode: number;
            tradeProperty: number;
        }[];
        loginIds: number[];
        relatedaccountstatus: number;
        relateduserid: number;
        userid: number;
    }

    /** 资金账户管理->银行签约-->初始化托管银行 请求 */
    interface DealAccountSignInitReq {
        accountid: number;
    }

    /** 资金账户管理->银行签约-->初始化托管银行 响应 */
    interface DealAccountSignInitRsp {
        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 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; // 关联单号
    }

    /** 资金账户管理-->资金账户信息修改--> 初始化 请求 */
    interface UpdateTaAccountInitReq {
        accountId: number;
        orgztypes?: string;
    }

    /** 资金账户管理-->资金账户信息修改--> 初始化 响应 */
    interface UpdateTaAccountInitRsp {
        cannotEdit: number;
        clildmarkets: {
            [key: number]: {
                checked: number;
                dtype: number;
                fdType: number;
                fspotRightType: number;
                marketId: number;
                marketName: string;
                spotRightType: number; // code:marketbstype
                tradeMode: number;
                tradeProperty: number;
            }
        };
        defaultloginaccount: number[];
        isshowrelationuser: string;
        loginaccount: number[];
        marketbstype: {
            [key: number]: string;
        };
        markets: [];
        oldLogin: string;
        relatedU: {};
        selfFlag: number;
        taa: {};
    }

    /** 账号管理-->交易账号管理-->获取列表 请求 */
    interface TradingAccReq {
        loginid?: number; // 登录账号
        loginstatus?: number; // 账户状态
        loginusertype?: number;
        pageNum: number;
        pageSize: number;
        userid?: number;
    }

    /** 账号管理-->交易账号管理-->获取列表 响应 */
    interface TradingAccRsp {
        loginid: number; // 登录账号
        loginstatus: number; // 账号状态
        modifiername: number; // 修改人
        modifytime: number; // 修改时间
    }

    /** 账号管理-->交易账号管理-->新增 请求 */
    interface TradingAccAddReq {
        accountids: string; // 授权资金账户
        confirmPassword: string; // 确认密码
        loginid: number; // 登录账号
        loginusertype: number;
        password: string; // 登录密码
    }

    /** 账号管理-->交易账号管理-->新增-->初始化登录账户及授权资金账户 响应 */
    interface TradingAccInitAddRsp {
        loginid: number;
        taaccounts: {
            accountflag: number; // 账户标识 - 0 (默认为0， 当上级账户与本账户的关联用户均为自己时更新为1)
            accountid: number; // 资金账户ID
            accountname: string; // 账户名称
            avaiablemoney: number;
            avaiableoutmoney: number;
            balance: number; // 期初余额
            capitalbalance: number; // 本金余额[外部子母账户实际出入金余额]
            changeflag: number; // 变动标志(当前账户资金有任何变动更新为1系统结算时更新0;供清算时使用) 0：无变动 1：有变动
            changetime: string; // 账户状态变更时间
            children: [];
            closepl: number; // 今日平仓盈亏
            creditdecrease: number; // 今日授信减少
            creditincrease: number; // 今日授信增加
            cur_risk_rate: number;
            curdebt: number; // 期末欠款
            currencyid: number; // 货币ID
            currentbalance: number; // 期末余额
            floatnetvalue: number;
            floatpl: number;
            freezecharge: number; // 手续费冻结
            freezemargin: number; // 冻结保证金
            fromaccountid: number; // 所属上级账户
            inamount: number; // 今日入金金额(包括三方入金)
            ismain: number; // 是否母账号 0:不是母账户 1:是母账户
            ismarketaccount: number; // 是否机构接单账号 0:不是 1:是
            isreckonaccount: number; // 是否机构分润账号 0:不是 1:是
            modifierid: number; // 修改人
            modifysrc: number; // 修改来源 - 1:管理端 2:终端
            modifytime: string; // 修改时间
            mortgagecredit: number; // 授信金额
            oridebt: number; // 期初欠款
            orifreezecharge: number; // 期初手续费冻结
            orifreezemargin: number; // 期初冻结保证金
            orimortgagecredit: number; // 期初授信金额
            oriothercredit: number; // 期初其它授信金额
            oriotherfreezemargin: number; // 期初其他冻结保证金(出金冻结资金 交割买方冻结 申购冻结 全款买入 商城买入)
            orioutamountfreeze: number; // 期初出金冻结
            oriusedmargin: number; // 期初占用保证金
            othercredit: number; // 其它授信金额
            othercreditdecrease: number; // 今日其它授信减少
            othercreditincrease: number; // 今日其它授信增加
            otherfreezemargin: number; // 其他冻结保证金(交割买方冻结 申购冻结 全款买入 商城买入)
            otherincome: number; // 其他收入(交割收款 申购收款 全款卖出 商城卖出 买家退货 会员手续费收入)
            otherpay: number; // 其他支出(交割付款 申购付款 全款买入 商城买入 卖家退货)
            outamount: number; // 今日出金金额(包括三方出金)
            outamountfreeze: number; // 出金冻结
            outthreshold: number; // 出金阈值
            parentaccountid: number; // 所属根账号
            password: string; // 资金密码
            paycharge: number; // 今日手续费支出
            relatedaccountstatus: number; // 关联用户交易权限状态 - 1:正常(可交易) 2:受限(可平仓，不可建仓) 3:冻结(不可交易)
            relateduserid: number; // 关联用户
            serivcegroup: number; // 服务分组
            signstatus: number; // 签约状态 - 1:未签约 2:签约待审核 3:签约中 4:已签约 5:解约待审核 6:解约中 7:已解约 8:已解绑 9:绑卡中
            sublevelpath: string; // 账号层级路径(逗号分隔,首尾加逗号)
            taaccounttype: number; // 账号类型 - 1:外部账号 2:内部账号 3:内部做市自营账号 4:内部做市接单账号
            thirdinamount: number; // 今日三方入金
            thirdoutamount: number; // 今日三方出金
            tradestatus: number; // 交易状态 - 1:正常 2:受限 3:冻结(停用) 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已删除(注销)
            tradestatuschangetime: string; // 激活时间
            transferamount: number; // 今日划转金额(母子账号资金划转，从划入账号为正，从账号划出为负)
            usedmargin: number; // 占用保证金
            userid: number; // 用户ID
        }[];
    }

    /** 账号管理-->交易账号管理-->详情 请求 */
    interface TradingAccViewReq {
        loginid: number;
    }

    /** 账号管理-->交易账号管理-->详情 响应 */
    interface TradingAccViewRsp {
        accountIdS: number[];
        accountname: string; // 账户名称
        canoutin: number; // 是否可出入金 - 0:不可 1:可
        clientroleid: number; // 终端角色ID
        haslogined: number; // 是否已登录 - 0:未登录 1:已登录
        hasupdatedpwd: number; // 是否已更改密码 - 0:未修改 1:已修改
        lastloginip: string; // 最新登录地址
        lastloginmode: number; // 最新登录方式(客户端类型) - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端安卓 4:网页客户端 5:微信客户端 6:手机客户端苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
        lastloginremark: string; // 最新登录描述
        lastlogintime: string; // 最新登录时间
        logincode: string; // 登录代码
        loginfailnum: number; // 连续登录失败次数(登录成功时清零)
        loginid: number; // 登录账号
        loginport: number; // 最新登录端口
        loginstatus: number; // 登录账号状态 1:正常 2:冻结(停用) 3:无效(注销)
        loginusertype: number; // 登录账号类型 - 1:投资者 2:机构交易员
        mobile: string; // 手机号码(加密存储)
        modifierid: number; // 修改人
        modifysrc: number; // 修改人来源 - 1:管理端 2:终端
        modifytime: string; // 修改时间
        password: string; // 登陆密码
        pwdwrongcount: number; // 密码错误次数
        relateduserid: number; // 关联用户ID(机构)
        subjectid: number; // 所属部门(管理部门)
        taaccountrighttype: number; // 资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限
        unfreezetime: string; // 账户解冻时间
        userid: number; // 用户ID
    }

    /** 账号管理-->交易账号管理-->重置密码 请求 */
    interface TradingAccResetPwdReq {
        loginid: number;
    }

    /** 账号管理-->交易账号管理-->锁定 请求 */
    interface TradingAccLockAccountReq {
        loginid: number;
        status: number;
    }

    /** 账号管理-->交易账号管理-->注销 请求 */
    interface TradingAccDelAccountReq {
        loginid: number;
    }

    /** 账号管理-->交易账号管理-->恢复 请求 */
    interface TradingAccUndelAccountReq {
        loginid: number;
    }
}