Files
chat/server/plugins/com.msgbyte.saleschat/models/kickrecord.ts

41 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-04-25 16:36:34 +08:00
/**
*
* 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<KickRecord>;
const model = getModelForClass(KickRecord);
export type KickRecordModel = typeof model;
export default model;