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 uploadFileReq {
            /// 文件信息
            data: FormData
        }

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