import { apiClient } from '../../services/apiClient'; export interface AssessmentStats { totalAttempts: number; highestScore: number; averageScore: number; completionRate: number; recentRecords: { id: string; userId?: string; knowledgeBase: string; template: string; score: number | null; status: 'IN_PROGRESS' | 'COMPLETED'; createdAt: string; user?: { id: string }; }[]; } export interface StatsQueryParams { startDate?: string; endDate?: string; templateId?: string; knowledgeGroupId?: string; } export class AssessmentStatsService { async getStats(params?: StatsQueryParams): Promise { const query = new URLSearchParams(); if (params?.startDate) query.set('startDate', params.startDate); if (params?.endDate) query.set('endDate', params.endDate); if (params?.templateId) query.set('templateId', params.templateId); if (params?.knowledgeGroupId) query.set('knowledgeGroupId', params.knowledgeGroupId); const queryString = query.toString(); const url = `/assessment/stats${queryString ? `?${queryString}` : ''}`; const { data } = await apiClient.get(url); return data; } async reviewAssessment(sessionId: string, newScore: number, comment?: string): Promise { const response = await apiClient.request(`/assessment/${sessionId}/review`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ newScore, comment }), }); if (!response.ok) throw new Error('Failed to review assessment'); return await response.json(); } } export const assessmentStatsService = new AssessmentStatsService();