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: number; @prop({ required: true }) seqId: number; @prop({ required: true }) mailId: number; @prop({ required: true }) goods: Array; @prop({ required: true, default: nowSeconds() }) sendTime: number; @prop({ required: true }) sendName: string; public static async addMails( mails: Array) { let mailInfos:Array = await MailModel.insertMany(mails); return mailInfos; } public static async addMail(params:{ goods: Array, 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, keyof Mail> { };