59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
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<LogModel> 基础数据库操作类
|
||
*/
|
||
class LogDB extends PbToolBase<LogModel> {
|
||
/**
|
||
* 创建 LogDB 实例
|
||
*
|
||
* @param pbClient - PocketBase 客户端实例,用于与数据库通信
|
||
* @param logger - 日志记录器实例,用于记录操作日志
|
||
*/
|
||
constructor(pbClient: PocketBase, logger: Logger) {
|
||
super(DB_NAME, pbClient, logger)
|
||
}
|
||
}
|
||
|
||
export default LogDB
|