32 lines
985 B
TypeScript
32 lines
985 B
TypeScript
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<DocumentType<GuildRefiner>, keyof GuildRefiner>{} |