/** * 处理器通用选项 */ export interface ProcessOptions { /** 文件存储路径或标识 */ storageKey?: string; /** 是否异步处理 */ async?: boolean; /** 超时时间(毫秒) */ timeout?: number; /** 处理优先级 */ priority?: 'low' | 'normal' | 'high' | 'urgent'; /** 重试次数 */ retries?: number; /** 是否保存中间结果 */ saveIntermediate?: boolean; /** 处理标签 */ tags?: string[]; /** 处理完成后是否删除原文件 */ deleteAfterProcess?: boolean; } /** * 处理器通用结果 */ export interface ProcessResult { /** 是否成功 */ success: boolean; /** 处理后的数据 */ data?: any; /** 错误信息 */ error?: Error; /** * 要保存到 file_metadata 表的元数据 * 处理器可以通过返回这个字段来指定要保存的内容 * 如果不设置,将保存整个 result 对象 * * @example * // Excel/CSV 处理器示例 * return { * success: true, * data: parsedData, * metadata: { * data: parsedData, * headers: ['col1', 'col2'], * rowCount: 100, * columnCount: 5, * successCount: 98, * errorCount: 2, * } * }; * * @example * // PDF 处理器示例 * return { * success: true, * data: extractedText, * metadata: { * text: extractedText, * pageCount: 10, * wordCount: 5000, * language: 'en', * } * }; */ metadata?: Record; /** 其他元数据(旧字段,建议使用 metadata 字段) */ metadata_legacy?: { /** 处理耗时(毫秒) */ duration?: number; /** 处理器名称 */ processor?: string; /** 处理时间 */ processedAt?: Date; /** 文件大小 */ fileSize?: number; /** 其他元数据 */ [key: string]: any; }; /** 额外信息 */ extras?: { /** 警告信息 */ warnings?: string[]; /** 建议操作 */ suggestions?: string[]; /** 关联的文件ID */ relatedFiles?: string[]; /** 处理日志 */ logs?: Array<{ timestamp: Date; level: 'debug' | 'info' | 'warn' | 'error'; message: string; data?: any; }>; /** 性能指标 */ metrics?: { memoryUsage?: number; cpuUsage?: number; throughput?: number; [key: string]: number; }; }; }