export interface KpiMetric { id: string; label: string; value: number; prev?: number; unit?: string; description?: string; } export interface MonthlyTrend { month: string; enforce: number; detect: number; accuracy: number; } export interface ViolationType { type: string; count: number; pct: number; } /** Dashboard KPI (6 metrics) — src/features/dashboard/Dashboard.tsx */ export const MOCK_KPI_METRICS: KpiMetric[] = [ { id: 'KPI-RT', label: '실시간 탐지', value: 47, prev: 42, description: 'AI 감시 탐지 선박' }, { id: 'KPI-EEZ', label: 'EEZ 침범', value: 18, prev: 21, description: '배타적경제수역 침범' }, { id: 'KPI-DV', label: '다크베셀', value: 12, prev: 9, description: 'AIS 미송출 선박' }, { id: 'KPI-TR', label: '불법환적 의심', value: 8, prev: 6, description: '해상전재 의심 건' }, { id: 'KPI-TK', label: '추적 중', value: 15, prev: 13, description: '함정 추적 진행' }, { id: 'KPI-EN', label: '나포/검문', value: 3, prev: 2, description: '금일 단속 실적' }, ]; /** Statistics monthly trend (7 months) — src/features/statistics/Statistics.tsx */ export const MOCK_MONTHLY_TRENDS: MonthlyTrend[] = [ { month: '10월', enforce: 42, detect: 128, accuracy: 81 }, { month: '11월', enforce: 38, detect: 145, accuracy: 84 }, { month: '12월', enforce: 55, detect: 167, accuracy: 86 }, { month: '1월', enforce: 61, detect: 189, accuracy: 88 }, { month: '2월', enforce: 48, detect: 156, accuracy: 89 }, { month: '3월', enforce: 52, detect: 172, accuracy: 90 }, { month: '4월', enforce: 15, detect: 67, accuracy: 93 }, ]; /** Statistics violation types (5 types) — src/features/statistics/Statistics.tsx */ export const MOCK_VIOLATION_TYPES: ViolationType[] = [ { type: 'EEZ 침범', count: 124, pct: 35 }, { type: '다크베셀', count: 89, pct: 25 }, { type: 'MMSI 변조', count: 64, pct: 18 }, { type: '불법환적', count: 43, pct: 12 }, { type: '어구 불법', count: 35, pct: 10 }, ];