Files
ZYZ/shared/db/SystemConfig.ts
2021-01-07 20:36:30 +08:00

39 lines
1.7 KiB
TypeScript

import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
@index({ id: 1 })
export default class SystemConfig extends BaseModel {
@prop({ required: true, default: 1})
id: number;
@prop({ required: true })
warId: number; // 地图
@prop({ required: true, default: 1 })
seasonNum: number; // 赛季
@prop({ required: true })
seasonEndTime: number; //赛季结束的时间
public static async findSystemConfig(lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOne({ id: 1 }).lean(lean);
return result;
}
public static async createSystemConfig(seasonEndTime: number, warId: number, lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, { seasonEndTime, warId, seasonNum: 1 }, { upsert: true, new: true }).lean(lean);
return result;
}
public static async updateSystemConfig(update: { seasonEndTime?: number, warId?: number, seasonNum?:number }, lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, update, { upsert: true, new: true }).lean(lean);
return result;
}
public static async updateSeason( seasonEndTime: number, lean = true) {
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, { seasonEndTime, $inc: { seasonNum: 1 } }, { upsert: true, new: true }).lean(lean);
return result;
}
}
export const SystemConfigModel = getModelForClass(SystemConfig);
export interface SystemConfigType extends Pick<DocumentType<SystemConfig>, keyof SystemConfig> {
id: number;
};