// File: types/ai.ts // ประเภทข้อมูลสำหรับ AI Integration (ADR-018, ADR-020) // สถานะของ AI Migration Log (ตรงกับ backend MigrationLogStatus) export enum AiMigrationLogStatus { PENDING_REVIEW = 'PENDING_REVIEW', VERIFIED = 'VERIFIED', IMPORTED = 'IMPORTED', FAILED = 'FAILED', } // ผลลัพธ์จาก Real-time AI Extraction export interface ExtractionResult { migrationLogPublicId: string; // ADR-019: UUID เท่านั้น status: 'processing' | 'completed' | 'failed'; extractedMetadata?: Record; confidenceScore?: number; action?: string; processingTimeMs?: number; } // ข้อมูล AI Migration Log (ตาราง migration_logs) export interface AiMigrationLog { publicId: string; // ADR-019: UUID เท่านั้น sourceFile: string; sourceMetadata?: Record; aiExtractedMetadata?: Record; confidenceScore?: number; status: AiMigrationLogStatus; adminFeedback?: string; reviewedAt?: string; createdAt: string; updatedAt: string; } // DTO สำหรับส่ง Extract Document ไปยัง AI export interface ExtractDocumentDto { publicId: string; // ADR-019: UUID ของไฟล์ใน temp storage context: 'ingestion' | 'migration' | 'review'; fileType?: string; } // DTO สำหรับอัปเดตสถานะ Migration Log (Admin) export interface AiMigrationUpdateDto { status?: AiMigrationLogStatus; adminFeedback?: string; } // Feedback สำหรับปรับปรุงความแม่นยำ AI export interface AiFeedbackDto { documentPublicId: string; // ADR-019: UUID เท่านั้น field: string; aiSuggestion: string; userCorrection: string; confidence: number; timestamp: string; userAgent: string; } // Metrics สำหรับ Admin Analytics Dashboard export interface PerformanceMetrics { overallAccuracy: number; userCorrectionRate: number; avgProcessingTime: number; fieldAccuracy: Record; modelPerformance: Record; } // Paginated Result สำหรับ AI endpoints export interface AiPaginatedResult { items: T[]; total: number; page: number; limit: number; totalPages: number; }