// File: components/ai/intent-classification/analytics/method-breakdown-table.tsx // Change Log // - 2026-05-19: สร้าง Method Breakdown Table สำหรับ Analytics Dashboard (T036, US3). 'use client'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { Badge } from '@/components/ui/badge'; import type { MethodStats } from '@/lib/services/ai-intent.service'; interface MethodBreakdownTableProps { data: MethodStats[]; } /** แปลงชื่อ method เป็น label + สี */ function methodBadge(method: string) { switch (method) { case 'pattern': return Pattern Match; case 'llm_fallback': return LLM Fallback; case 'semaphore_overflow': return Semaphore Overflow; case 'llm_error': return LLM Error; default: return {method}; } } /** * ตารางแสดงสถิติแยกตาม method (pattern, llm_fallback, etc.) */ export function MethodBreakdownTable({ data }: MethodBreakdownTableProps) { if (data.length === 0) { return

ยังไม่มีข้อมูล

; } const total = data.reduce((sum, d) => sum + d.count, 0); return ( Method Count % Avg Confidence Avg Latency {data.map((row) => ( {methodBadge(row.method)} {row.count} {total > 0 ? ((row.count / total) * 100).toFixed(1) : 0}% {row.avgConfidence.toFixed(2)} {row.avgLatencyMs.toFixed(1)}ms ))}
); }