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 = 0; @prop({ required: true }) ratioUp: number = 0; @prop({ required: true }) fixUp: number = 0; } export class CeAttr { @prop({ required: false }) hp?: CeAttrData = new CeAttrData(); @prop({ required: false }) atk?: CeAttrData = new CeAttrData(); @prop({ required: false }) matk?: CeAttrData = new CeAttrData(); @prop({ required: false }) def?: CeAttrData = new CeAttrData(); @prop({ required: false }) mdef?: CeAttrData = new CeAttrData(); @prop({ required: false }) agi?: CeAttrData = new CeAttrData(); @prop({ required: false }) luk?: CeAttrData = new CeAttrData(); @prop({ required: false }) hit?: CeAttrData = new CeAttrData(); @prop({ required: false }) cri?: CeAttrData = new CeAttrData(); @prop({ required: false }) flee?: CeAttrData = new CeAttrData(); @prop({ required: false }) antCri?: CeAttrData = new CeAttrData(); @prop({ required: false }) damageIncrease?: CeAttrData = new CeAttrData(); @prop({ required: false }) damageDecrease?: CeAttrData = new CeAttrData(); @prop({ required: false }) defIngnore?: CeAttrData = new CeAttrData(); @prop({ required: false }) bloodSuck?: CeAttrData = new CeAttrData(); }