Files
ZYZ/shared/db/Mail.ts
2021-01-12 11:06:05 +08:00

38 lines
1.1 KiB
TypeScript

import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { RewardInter } from '../pubUtils/interface';
import { nowSeconds } from '../pubUtils/timeUtil';
@index({ roleId: 1 })
export default class Mail extends BaseModel {
@prop({ required: true })
roleId: string;
@prop({ required: true })
mailId: number;
@prop({ required: true })
goods: Array<RewardInter>;
@prop({ required: true, default: nowSeconds() })
sendTime: number;
@prop({ required: true })
sendName: string;
public static async addMails( mails: Array<MailType>) {
await MailModel.insertMany(mails);
}
public static async addMail(params:{ goods: Array<RewardInter>, sendName: string, mailId: number, sendTime?: number}) {
const doc = new MailModel();
const mail = Object.assign(doc.toJSON(), params);
const mailInfo: MailType = await MailModel.create(mail);
return mailInfo;
}
}
export const MailModel = getModelForClass(Mail);
export interface MailType extends Pick<DocumentType<Mail>, keyof Mail> { };