import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType, } from '@typegoose/typegoose'; import { nowSeconds } from '../pubUtils/timeUtil'; @index({ leagueCode: 1, roleId: 1, configId: 1, time: 1 }) export default class GVGUserDailyDistribute extends BaseModel { @prop({ required: true }) roleId: string; // 玩家 @prop({ required: true }) configId: number; // 赛季信息 @prop({ required: true }) leagueCode: string; // 所属联军 @prop({ required: true, default: 0 }) job: number; // 职能 1-贤臣 2-猛将 // 贡献 @prop({ required: true, default: 0 }) food: number; // 粮食 @prop({ required: true, default: 0 }) mineral: number; // 矿物 @prop({ required: true, default: 0 }) wood: number; // 木材 @prop({ required: true, default: 0 }) score: number; // 据点积分 @prop({ required: true, default: 0 }) time: number = 0; // 据点积分 public static async findByRole(configId: number, leagueCode: string, roleId: string) { const result: GVGUserDailyDistributeType = await GVGUserDailyDistributeModel.findOne({ configId, leagueCode, roleId, time: nowSeconds() }).select('food mineral wood score').lean(); return result; } } export const GVGUserDailyDistributeModel = getModelForClass(GVGUserDailyDistribute); export interface GVGUserDailyDistributeType extends Pick, keyof GVGUserDailyDistribute> { id: number; }; export type GVGUserDailyDistributeUpdate = Partial; // 将所有字段变成可选项