import { getModelForClass, prop, DocumentType, Ref, ReturnModelType, modelOptions, } from '@typegoose/typegoose'; import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'; import type { Types } from 'mongoose'; import { User } from '../user/user'; export class PluginManifest extends TimeStamps implements Base { _id: Types.ObjectId; id: string; @prop() label: string; @prop({ unique: true, }) name: string; /** * 插件入口地址 */ @prop() url: string; @prop() icon?: string; @prop() version: string; @prop() author: string; @prop() description: string; @prop() requireRestart: string; @prop({ ref: () => User }) uploader?: Ref; } export type PluginManifestDocument = DocumentType; const model = getModelForClass(PluginManifest); export type PluginManifestModel = typeof model; export default model;