/** * 踢人记录模型 * TypeGoose 定义,符合 Tailchat 插件标准模式 */ import { db } from 'tailchat-server-sdk'; const { getModelForClass, prop, modelOptions, TimeStamps, index } = db; @modelOptions({ options: { customName: 'p_saleschat_kickrecord' } }) @index({ groupId: 1, kickedAt: -1 }) @index({ userId: 1, kickedAt: -1 }) export class KickRecord extends TimeStamps implements db.Base { _id: db.Types.ObjectId; id: string; /** 群组 ID(关联群组) */ @prop({ required: true, ref: 'Group' }) groupId: db.Types.ObjectId; /** 被踢用户 ID(关联用户) */ @prop({ required: true, ref: 'User' }) userId: db.Types.ObjectId; /** 操作人 ID(关联用户) */ @prop({ required: true, ref: 'User' }) kickedBy: db.Types.ObjectId; /** 原因 */ @prop({ default: '无' }) reason: string; /** 踢出时间 */ @prop({ default: () => new Date() }) kickedAt: Date; } export type KickRecordDocument = db.DocumentType; const model = getModelForClass(KickRecord); export type KickRecordModel = typeof model; export default model;