import BaseModel from './BaseModel'; import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose'; class ScienceTree { @prop({ required: true }) id: number; @prop({ required: true }) time: number; @prop({ required: true }) assistCount: number; } @index({ guildCode: 1 }) export default class GuildRefiner extends BaseModel { @prop({ required: true }) guildCode: string; @prop({ required: true, type: ScienceTree, default:[] }) scienceTrees: ScienceTree[]; public static async createScienceTree(guildCode: string, scienceTrees: ScienceTree[], lean = true) { const result = await GuildRefinerModel.findOneAndUpdate({ guildCode }, {$set: {scienceTrees}}, {new: true, upsert: true}).lean(lean); return result; } } export const GuildRefinerModel = getModelForClass(GuildRefiner); export interface GuildRefinerType extends Pick, keyof GuildRefiner>{}