import apiRequest from './client' export interface Stats { pageviews: number visitors: number } export interface TopPage { path: string pageviews: number } export interface TopReferrer { referrer: string pageviews: number } export interface CountryStat { country: string pageviews: number } export interface CityStat { city: string country: string pageviews: number } export interface RegionStat { region: string country: string pageviews: number } export interface DailyStat { date: string pageviews: number visitors: number } export interface RealtimeStats { visitors: number } export async function getStats(siteId: string, startDate?: string, endDate?: string): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) const query = params.toString() return apiRequest(`/sites/${siteId}/stats${query ? `?${query}` : ''}`) } export async function getRealtime(siteId: string): Promise { return apiRequest(`/sites/${siteId}/realtime`) } export async function getTopPages(siteId: string, startDate?: string, endDate?: string, limit = 10): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) params.append('limit', limit.toString()) return apiRequest<{ pages: TopPage[] }>(`/sites/${siteId}/pages?${params.toString()}`).then(r => r?.pages || []) } export async function getTopReferrers(siteId: string, startDate?: string, endDate?: string, limit = 10): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) params.append('limit', limit.toString()) return apiRequest<{ referrers: TopReferrer[] }>(`/sites/${siteId}/referrers?${params.toString()}`).then(r => r?.referrers || []) } export async function getCountries(siteId: string, startDate?: string, endDate?: string, limit = 10): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) params.append('limit', limit.toString()) return apiRequest<{ countries: CountryStat[] }>(`/sites/${siteId}/countries?${params.toString()}`).then(r => r?.countries || []) } export async function getCities(siteId: string, startDate?: string, endDate?: string, limit = 10): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) params.append('limit', limit.toString()) return apiRequest<{ cities: CityStat[] }>(`/sites/${siteId}/cities?${params.toString()}`).then(r => r?.cities || []) } export async function getRegions(siteId: string, startDate?: string, endDate?: string, limit = 10): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) params.append('limit', limit.toString()) return apiRequest<{ regions: RegionStat[] }>(`/sites/${siteId}/regions?${params.toString()}`).then(r => r?.regions || []) } export async function getDailyStats(siteId: string, startDate?: string, endDate?: string): Promise { const params = new URLSearchParams() if (startDate) params.append('start_date', startDate) if (endDate) params.append('end_date', endDate) return apiRequest<{ stats: DailyStat[] }>(`/sites/${siteId}/daily?${params.toString()}`).then(r => r?.stats || []) }