import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType, } from '@typegoose/typegoose'; // 玩家跨联军保留数据 @index({ roleId: 1, configId: 1 }) export default class GVGRoleData extends BaseModel { @prop({ required: true }) roleId: string; // 玩家 @prop({ required: true }) configId: number; // 赛季信息 @prop({ required: true, default: 0 }) receivedLv: number; // 领取到的等级奖励 public static async findByRole(configId: number, roleId: string) { const result: GVGRoleDataType = await GVGRoleDataModel.findOneAndUpdate({ configId, roleId }, {}, { new: true, upsert: true}).lean(); return result; } public static async receiveLv(configId: number, roleId: string, lv: number) { const result: GVGRoleDataType = await GVGRoleDataModel.findOneAndUpdate({ configId, roleId }, { $set: { receivedLv: lv }}, { new: true }).lean(); return result; } } export const GVGRoleDataModel = getModelForClass(GVGRoleData); export interface GVGRoleDataType extends Pick, keyof GVGRoleData> { id: number; }; export type GVGRoleDataUpdate = Partial; // 将所有字段变成可选项