Files
ZYZ/shared/db/BaseModel.ts
2020-12-12 17:06:28 +08:00

67 lines
1.4 KiB
TypeScript

import { prop, pre } from '@typegoose/typegoose';
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
/**
* BaseModel
*/
@pre<BaseModel>('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;
@prop({ required: false })
atk?: CeAttrData;
@prop({ required: false })
matk?: CeAttrData;
@prop({ required: false })
def?: CeAttrData;
@prop({ required: false })
mdef?: CeAttrData;
@prop({ required: false })
agi?: CeAttrData;
@prop({ required: false })
luk?: CeAttrData;
@prop({ required: false })
hit?: CeAttrData;
@prop({ required: false })
cri?: CeAttrData;
@prop({ required: false })
flee?: CeAttrData;
@prop({ required: false })
antCri?: CeAttrData;
@prop({ required: false })
damageIncrease?: CeAttrData;
@prop({ required: false })
damageDecrease?: CeAttrData;
@prop({ required: false })
defIngnore?: CeAttrData;
@prop({ required: false })
bloodSuck?: CeAttrData;
}