Files
ZYZ/shared/db/GMRecord.ts
2021-12-21 19:42:39 +08:00

46 lines
1.1 KiB
TypeScript

import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, ReturnModelType, mongoose } from '@typegoose/typegoose';
import { gameData } from '../pubUtils/data';
/**
* GM用户组接口
*/
@index({ uid: 1 })
@index({ api: 1 })
export default class GMRecord extends BaseModel {
@prop({ required: true })
uid: number;
@prop({ required: true })
env: string;
@prop({ required: true })
api: string;
@prop({ required: true })
apiName: string;
@prop({ required: true })
body: string;
@prop({ required: true })
result: string;
public static async createRecord(uid: number, env: string, api: string, body: string, result: string) {
let dicApi = gameData.apiByUrl.get(api);
const r = await GMRecordModel.insertMany({uid, env, api, apiName: dicApi?.name, body, result});
return r;
}
}
export let GMRecordModel: ReturnModelType<typeof GMRecord, {}>;
export function loadGMRecordModel(connect: mongoose.Connection) {
GMRecordModel = getModelForClass(GMRecord, {
existingConnection: connect
});
}
export interface GMRecordType extends Pick<DocumentType<GMRecord>, keyof GMRecord>{};