import { gonghuiLevel } from '../gonghui/type';

/**
 * 登录
 */
export type ReqLogin = {
    bindUid: string;
    sid: number;
    serverName: string;
    sign: string;
    lng: string;
};

export type ResLogin = {
    /**玩家属性 */
    gud: playerInfo & playerAttr & Partial<playerAppend>;
    /**开服时间 */
    openTime: string;
    /**
     * 开服天数
     */
    openDay: number;
    /**当前时间 */
    curTime: number;
    /**是否第一次登录 */
    firstLogin: boolean;
    /**登陆额外数据 */
    otherData?: any;
};

/**玩家基本属性 */
export type playerInfo = {
    /**等级 */
    lv: number;
    /**vip */
    vip: number;
    /**唯一id */
    uid: string;
    /**登录账号 */
    bindUid: string;
    /**战力 */
    power: number;
    /**历史最大战力 */
    maxpower?: number;
    /**是否封禁 */
    status?: number;
    /**是否禁言 */
    status_chat?: number;
};


/**玩家attr道具 */
export type playerAttr = {
    /**英雄经验 */
    nexp: number;
    /**金币 */
    jinbi: number;
    /**钻石 */
    rmbmoney: number;
    /**荣誉勋章 */
    rongyu: number;
    /**充值经验 */
    payExp?: number;
    /**贵金属 */
    guijinshu?: number;
} & {
    [k: string]: any;
};

/**新增玩家属性 */
export type playerAppend = {
    /**图鉴等级 */
    tujianLv: number;
    /**头像框 */
    head: {
        /**头像id */
        id: string,
        /**到期时间戳 -1：永久 */
        time: number;
    };
    /**头像框 */
    headFrame: {
        /**头像框id */
        id: string,
        /**到期时间戳 -1：永久 */
        time: number;
    };
    /**聊天框 */
    chatFrame: {
        /**聊天框id */
        id: string,
        /**到期时间戳 -1：永久 */
        time: number;
    };
    /**名字 */
    name: string;
    /**正在使用的造型 */
    upModel: {
        /**id */
        id: string,
        /**到期时间戳 -1：永久 */
        time: number;
    };
    /**造型 */
    model: {
        [k: string]: {
            /**id */
            id: string,
            /**到期时间戳 -1：永久 */
            time: number;
        };
    };
    /**名望 */
    renown: number;
    /**维修厂座驾等级 */
    wxcLv: {
        /**id */
        lv: number;
        /**已组装的下标 */
        ids: number[];
    };
    /**当前玩家已通关的地图id */
    mapId: number;
    /**收藏品 */
    shoucangping: { [k: string]: number; };
    /**训练计划使用的图鉴点数 */
    useTujianLvPoint: number;
    /**训练计划激活的技能 */
    skills: { [skillId: string]: number; };
    /**作战计划设置的战斗技能 */
    fightSkills: { [pos: string]: string; };
    /**英雄出战位 */
    heroPos: { [pos: string]: string; };
    /**公会id */
    ghId: string;
    /**公会名字 */
    ghName: string;
    /**公会阶级 */
    ghLevel: gonghuiLevel;
    /**公会物资 */
    ghwz?: { [type: string]: number; };
    /**退出公会时间 */
    ghExitTime?: number;
    /**最近一次登录时间戳 */
    loginTime?: number;
    /**最近一次登出时间 */
    logoutTime?: number;
    /**建号时间 */
    cTime?: number;
    /**登录天数 */
    loginDays?: number;
    /**serverName */
    serverName?: string;
    sid?: number;
    /**在线总时长 */
    onlineTime?: number;
    /**最新在线时间 */
    newonlinetime?: number;
    /**是否npc */
    isNpc?: boolean;
    /**出战阵型等级 */
    matrix?: {
        [type: string]: number;
    };
    /**记录信息 */
    matrixPos?: {
        [type: string]: {
            [pos: string]: string;
        };
    };
    /**选择的出战阵型 */
    selectMatrix?: string;
    /**出战的英雄id */
    fightHeros?: string[];
    /**助战英雄 */
    helpHeros?: {
        _id: string;
        jieji: number;
        heroId?: string | number;
        heroPosId?: string | number | undefined;
    }[];
    /**修改名字次数 */
    changeNameNum?: number;
    /**配件格子解锁 */
    peijianUnlock?: {
        [pos: string]: string;
    };
    /**已解锁的头像框列表 */
    headFrames?: {
        [id: string]: number;
    };
    /**已解锁的聊天框列表 */
    chatFrames?: {
        [id: string]: number;
    };

    /**获得的皮肤*/
    heroskin?: {
        [skid: string]: number;
    }
};