import { prop, DocumentType, } from '@typegoose/typegoose'; import GMMail from './GMMail'; export default class ServerStategy { @prop({ required: true, default: 0 }) maxPlayerCnt: number; // 人数上限 @prop({ required: true, default: 0, type: Number }) timers: number[]; // 开服时间点 @prop({ required: true, type: Number }) activityGroupId: number[]; // 选择活动组 @prop({ required: true, type: GMMail, _id: false }) openMail: GMMail; @prop({ required: true, type: GMMail, _id: false }) circleMail: GMMail; @prop({ required: true, default: 0 }) stopRegisterTime: number; // 关闭注册时间 constructor(stategy: ServerStategyUpdate) { this.maxPlayerCnt = stategy.maxPlayerCnt; this.timers = stategy.timers; this.activityGroupId = stategy.activityGroupId; this.stopRegisterTime = stategy.stopRegisterTime; } } export interface ServerStategyType extends Pick, keyof ServerStategy> { }; export type ServerStategyUpdate = Partial; // 将所有字段变成可选项