Files
ZYZ/shared/db/GuildActive.ts
2022-05-10 16:56:41 +08:00

31 lines
1.1 KiB
TypeScript

import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
@index({ guildCode: 1, refTime: 1 })
export default class GuildActive extends BaseModel {
@prop({ required: true })
guildCode: string; // 军团
@prop({ required: true })
refTime: Date; // 刷新时间
@prop({ required: true, default: 0 })
active: number; // 活跃
// 更新
public static async addActive(guildCode: string, refTime: Date, active: number) {
let rec: GuildActiveType = await GuildActiveModel.findOneAndUpdate({ guildCode, refTime }, { $inc: { active } }, { new: true, upsert: true }).lean();
return rec;
}
public static async getActive(guildCode: string, refTime: Date) {
let rec: GuildActiveType = await GuildActiveModel.findOne({ guildCode, refTime }).lean();
return rec;
}
}
export const GuildActiveModel = getModelForClass(GuildActive);
export interface GuildActiveType extends Pick<DocumentType<GuildActive>, keyof GuildActive> { };
export type GuildActiveUpdateParam = Partial<GuildActiveType>; // 将所有字段变成可选项