import { prop, pre } from '@typegoose/typegoose'; import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'; /** * BaseModel */ @pre('save', function(next) { if (!this.createdAt || this.isNew) { this.createdAt = this.updatedAt = new Date(); } else { this.updatedAt = new Date(); } next(); }) export default class BaseModel extends TimeStamps { _id?: string @prop() createdAt: Date @prop() updatedAt: Date } export class CeAttrData { @prop({ required: true }) base?: number; @prop({ required: true }) ratioUp: number; @prop({ required: true }) fixUp: number; } export class CeAttr { @prop({ required: true }) hp: CeAttrData; @prop({ required: true }) atk: CeAttrData; @prop({ required: true }) matk: CeAttrData; @prop({ required: true }) def: CeAttrData; @prop({ required: true }) mdef: CeAttrData; @prop({ required: true }) agi: CeAttrData; @prop({ required: true }) luk: CeAttrData; @prop({ required: true }) hit: CeAttrData; @prop({ required: true }) cri: CeAttrData; @prop({ required: true }) flee: CeAttrData; @prop({ required: true }) antCri: CeAttrData; @prop({ required: true }) damageIncrease: CeAttrData; @prop({ required: true }) damageDecrease: CeAttrData; @prop({ required: true }) defIngnore: CeAttrData; @prop({ required: true }) bloodSuck: CeAttrData; }