import PocketBase, { RecordModel } from "pocketbase" import { Logger } from "winston" import PbToolBase from "../base" const DB_NAME = "messageLog" /** * 消息日志接口,定义消息日志的数据结构 * 用于记录系统消息的发送、接收和处理过程 */ export interface Log { /** API 密钥,用于身份验证和追踪 */ apiKey: string /** 消息所属群组 ID,可选 */ groupId?: string /** 接收者 ID,可选 */ receiveId?: string /** 接收者 ID 类型,例如用户ID、群组ID等,可选 */ receiveIdType?: string /** 消息类型,例如文本、图片、语音等 */ msgType: string /** 原始消息内容 */ content: string /** 处理后的最终消息内容,可选 */ finalContent?: string /** 消息发送结果,可包含发送状态、时间等信息,可选 */ sendResult?: any /** 处理过程中的错误信息,可选 */ error?: string } /** * 消息日志模型类型,结合 Log 接口和 PocketBase 的 RecordModel */ export type LogModel = Log & RecordModel /** * 消息日志数据库操作类 * * 提供消息日志相关的数据库操作,继承自 PbToolBase 基础类 * 用于记录和查询系统中的消息传递过程,便于调试和审计 * * @extends PbToolBase 基础数据库操作类 */ class LogDB extends PbToolBase { /** * 创建 LogDB 实例 * * @param pbClient - PocketBase 客户端实例,用于与数据库通信 * @param logger - 日志记录器实例,用于记录操作日志 */ constructor(pbClient: PocketBase, logger: Logger) { super(DB_NAME, pbClient, logger) } } export default LogDB