import apiClient from './api/client' export interface OverviewStats { users?: { total: number active: number inactive: number } invoices?: { total: number } revenue?: { total: number } storage?: { totalSize: number documents: number } totalUsers: number activeUsers: number totalRevenue: number totalTransactions: number storageUsed: number storageLimit: number } export interface UserGrowthData { date: string users: number activeUsers: number } export interface RevenueData { date: string revenue: number transactions: number } class AnalyticsService { /** * Get overview statistics */ async getOverview(): Promise { const response = await apiClient.get('/admin/analytics/overview') return response.data } /** * Get user growth data */ async getUserGrowth(days: number = 30): Promise { const response = await apiClient.get('/admin/analytics/users/growth', { params: { days }, }) return response.data } /** * Get revenue data */ async getRevenue(period: '7days' | '30days' | '90days' = '30days'): Promise { const response = await apiClient.get('/admin/analytics/revenue', { params: { period }, }) return response.data } /** * Get API usage statistics */ async getApiUsage(days: number = 7): Promise { const response = await apiClient.get('/admin/analytics/api-usage', { params: { days }, }) return response.data } /** * Get error rate statistics */ async getErrorRate(days: number = 7): Promise { const response = await apiClient.get('/admin/analytics/error-rate', { params: { days }, }) return response.data } /** * Get storage usage by user */ async getStorageByUser(limit: number = 10): Promise { const response = await apiClient.get('/admin/analytics/storage/by-user', { params: { limit }, }) return response.data } /** * Get storage analytics */ async getStorageAnalytics(): Promise { const response = await apiClient.get('/admin/analytics/storage') return response.data } /** * Export analytics data */ async exportData(): Promise { const response = await apiClient.get('/admin/analytics/export', { responseType: 'blob', }) return response.data } } export const analyticsService = new AnalyticsService()