// Analytics service for API interactions import { apiClient } from './api'; import type { AnalyticsSummary } from '@/types'; class AnalyticsService { /** * Get summary statistics for the analytics dashboard */ async getSummary(dateRange?: { start: string; end: string }): Promise { const params = new URLSearchParams(); if (dateRange) { params.append('startDate', dateRange.start); params.append('endDate', dateRange.end); } const queryString = params.toString(); return apiClient.get(`/analytics/summary${queryString ? `?${queryString}` : ''}`); } /** * Export analytics data to CSV */ async exportToCSV(dateRange?: { start: string; end: string }): Promise { const params = new URLSearchParams(); if (dateRange) { params.append('startDate', dateRange.start); params.append('endDate', dateRange.end); } const queryString = params.toString(); const response = await fetch( `${import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000/api'}/analytics/export${queryString ? `?${queryString}` : ''}`, { method: 'GET', headers: { 'Accept': 'text/csv', }, } ); if (!response.ok) { throw new Error('Failed to export data'); } return response.blob(); } } export const analyticsService = new AnalyticsService();