import { AuthType, UrlType } from '@/constants/enum/menu'
import { NumberFormatResult } from 'vue-i18n';

declare global {
    namespace Model {
        /** 应用更新信息 */
        interface AppUpdateInfo {
            AppName: string;
            pkg: string;
            LastVersionCode: string;
            LastVersionName: string;
            Description: string;
            ApkUrl: string;
            Type: string;
        }

        /** 省市区 */
        interface Region {
            autoid: number; // 自增ID
            divisioncode: string; // 行政代码
            divisionlevel: string; // 行政级别
            divisionname: string; // 行政名称
            modifierid: number; // 修改人
            modifytime: string; // 修改时间
            parentcode: string; // 上级行政代码
            pathname: string; // 路径名称
            postcode: string; // 邮政编码
            separablename: string; // 可拆分的全称
            shortcode: string; // 地区简码
        }

        /** 注册 请求 */
        interface RegisterReq {
            mobilephone: string; // 手机号
            loginpwd: string; // 登录密码
            vcode: string; // 验证码
            refernum: string; // 推荐码: refernum（推荐码不为空，则取推荐人的所属用户为本用户的所属，推荐码为空，取系统参数003为本用户的所属）
            isaudit: number; // 是否审核: isaudit 0 - 否，1 - 是
            userinfotype: number; // 客户类型: userinfotype 1-个人，2-企业
            usertype: number;
            openmode: number;
            logincode?: string; // 登录账号
            cardfrontphotourl?: string; // 企业营业执照
            sid?: number; // 获取图形验证码时传的当前时间戳：sid
            username?: string; // 用户名称
            lsitAgreementID?: number[]; // 协议编号
            memberareaid?: number; // 所属会员代码
        }

        // 注册 响应
        interface RegisterRsp {
            code: number;
            message: string;
            msg: string;
            tapassword: string;
            loginaccount: {
                userid: number;
            },
            taaccount: {
                accountid: number;
            }[];
            userinfo: {
                userid: number;
            }
        }

        /** 发送重置密码验证码 请求 */
        interface SendResetVerifyCodeReq {
            mobile: string; // 手机号码
            businessType?: number;
        }

        /** 发送重置密码验证码 响应 */
        interface SendResetVerifyCodeRsp {
            msg: string;
            success: string;
            vcode: string;
        }

        /** 重置密码 请求 */
        interface ResetPasswordReq {
            mobile: string;
            vcode: string;
            password: string;
            logincode: string;
        }

        /** 重置密码 响应 */
        interface ResetPasswordRsp {
            code: string;
            message: string;
            pageno: number;
            pagesize: number;
        }

        /** 查询轮播图配置信息 请求 */
        interface ImageConfigsReq {
            userId?: number; // 用户id
            imageType?: number; // 类型 - 1:App首页轮播 2:我的 3:首页(PC) 4:首页推广(移动-新会)
        }

        /** 查询轮播图配置信息 响应 */
        interface ImageConfigsRsp {
            areauserid: number; // 所属机构ID
            configid: number; // 配置ID(SEQ_SZDZ2_IMAGECONFIG)
            createdate: string; // 创建时间
            creatorid: number; // 创建人
            imagedetailpath: string; // 详情图片 [UrlType = 3时 有且必填，其它类型不需要]
            imagepath: string; // 图片
            imagetype: number; // 类型 - 1:首页轮播(移动) 2:我的(移动)
            isshow: number; // 是否展示 - 0:不展示 1:展示
            marketid: number; // 市场ID
            modifierid: number; // 操作人
            sort: number; // 排序
            title: string; // 标题
            trademode: number; // 交易模式
            updatedate: string; // 修改时间
            url: string; // 链接(地址或商品ID)
            urltype: number; // 链接类型 - 1:直接地址 2:商品ID
        }

        /** 获取数据库错误信息 请求 */
        interface ErrorInfosReq {
            rowNumber?: string; // 起始行号前索引
        }

        /** 获取数据库错误信息 响应 */
        interface ErrorInfosRsp {
            description: string; // 异常描述
            errorcode: string; // 异常代码
            errorid: number; // 异常ID
            modulecode: string; // 所属模块
            operatecode: string; // 所属操作
            rownumber: string; // 行号
        }

        /** 查询我的注册红包 请求 */
        interface MyRegisterMoneyReq {
            accountid: number; // 资金账户
        }

        /** 查询我的注册红包 响应 */
        interface MyRegisterMoneyRsp {
            amount: number; // 红包
        }

        /** 查询用户等级信息 请求 */
        interface UserLevelInfoReq {
            userid: number; // 用户ID
        }

        /** 查询用户等级信息 响应 */
        interface UserLevelInfoRsp {
            appup: number; // 晋升已累计的数量
            checkday: string; // 最近一次考核日
            levelgroup: string; // 当前等级
            nextlevelgroup: string; // 下一等级
            notyet: number; // 晋升还差多少数量
            progress: number; // 进度
        }

        /** 查询查询我推荐的好友等级 响应 */
        interface InvestorLevelGroupRsp {
            grouplevel: number;
            groupname: string;
            keepbuyqty: number;
            levelgroupid: number;
        }

        /** 查询好友 请求 */
        interface THJFriendsReq {
            userid: number; // 用户ID
            customername?: string; // 客户名称(企业名称)，模糊查询
            mobile?: string; // 手机号码(加密存储)，加密串精确查询
            levelgroupid?: number; // 等级ID
            page?: number; // 页码
            pagesize: number?; // 每页条数
        }

        /** 查询好友 响应 */
        interface THJFriendsRsp {
            accoutstatus: string; // 状态
            createtime: string; // 创建时间
            customername: string; // 客户名称(企业名称)，模糊查询
            frienduserid: number; // 用户UserID
            groupname: string; // 分级名称
            hasauth: number; // 是否已实名认证 - 0:未认证 1:已认证 2:已提交(待审核) 3:已拒绝
            mobile: string; // 手机号码(加密存储)，加密串精确查询
        }

        /** 查询收益 请求 */
        interface THJProfitsReq {
            userid?: number; // 用户ID
            marketid?: number; // 市场ID
            accountname?: string; // 好友名称，模糊查询
            goods?: string; // 商品代码或商品名称，模糊查询
            profitroletype?: number;
            page?: number; // 页码
            pagesize: number?; // 每页条数
        }

        /** 查询收益 响应 */
        interface THJProfitsRsp {
            brokerprofitrate: string; // 会员释出比例
            brokerrate: string; // 会员比例
            buyorselldisplay: string; // 方向
            chargeamount: number; // 手续费总额
            firend: string; // 下单好友
            levelonevalue: string; // 一级比例
            leveltwovalue: string; // 二级比例
            marketname: string; // 市场
            profitamount: number; // 分润金额
            profitroletypedisplay: string; // 分润角色
            tradeid: string; // 成交单号
            tradeqty: number; // 成交数量
            tradetimedisplay: string; // 成交时间
            wrstandardname: string; // 商品
        }

        /** 查询本人定金比例 请求 */
        interface MyDepositReq {
            userid?: number; // 用户ID
        }

        /** 查询本人定金比例 响应 */
        interface MyDepositRsp {
            depositqty: number; // 可用量
            depositrate: number; // 定金比例
            userid: number; // 用户ID
        }

        /** 定金比例个性化查询 请求 */
        interface THJinvesotrdepositReq {
            userid: number; // 用户ID
            presaleapplyid: string; // 预售申请ID
            page?: number; // 页码
            pagesize?: number; // 每页条数
        }

        /** 定金比例个性化查询 响应 */
        interface THJinvesotrdepositRsp {
            depositrate: number; // 定金比例
            qty: number; // 可用量
            userid: number; // 用户ID
        }

        /** 比例变更流水查询 请求 */
        interface THJInvesotrDepositLogReq {
            userid: number; // 用户ID
            depositrate: number;
            page?: number; // 页码
            pagesize?: number; // 每页条数
        }

        /** 比例变更流水查询 响应 */
        interface THJInvesotrDepositLogRsp {
            accountname: string; // 用户名
            buyuserid: number; // 采购用户ID
            changeqty: number; // 变更量
            curdepositqty: string; // 可用量(变更后)
            depositrate: number; // 定金比例（选中比例）
            logid: string; // 流水ID(336+Unix秒时间戳(10位)+xxxxxx)
            oridepositqty: number; // 可用量(变更前)
            updatetime: string; // 更新时间
            updatorid: number; // 更新人
            userid: number; // 用户ID
            wrtradedetailid: number; // 采购成交单ID
        }

        /** 文件上传请求 */
        interface uploadFileReq {
            /// 文件信息
            data: FormData
        }

        /** 文件上传回应 */
        interface uploadFileRsp {
            /// 上传文件路径
            filePath?: string,
            /// 上传文件名
            fileName?: string
        }
    }
}