export const visitorsApi = { // Track visitor (public) track: (pagePath?: string, referrer?: string) => fetchApi<{ message: string; new_visitor: boolean }>(`/visitors/track?${new URLSearchParams({ ...(pagePath && { page_path: pagePath }), ...(referrer && { referrer: referrer }) }).toString()}`, { method: "POST", }), // Get stats (public) getStats: () => fetchApi("/visitors/stats/public"), // Admin adminGetStats: (token: string) => fetchApi("/visitors/stats", { token }), adminGetCountryStats: (token: string) => fetchApi("/visitors/stats/countries", { token }), // Extended statistics adminGetOverview: (token: string, days: number = 30) => fetchApi(`/visitors/admin/overview?days=${days}`, { token }), adminGetVisitsChart: (token: string, days: number = 30) => fetchApi(`/visitors/admin/chart/visits?days=${days}`, { token }), adminGetUniqueChart: (token: string, days: number = 30) => fetchApi(`/visitors/admin/chart/unique?days=${days}`, { token }), adminGetDeviceBreakdown: (token: string, days: number = 30) => fetchApi(`/visitors/admin/breakdown/device?days=${days}`, { token }), adminGetBrowserBreakdown: (token: string, days: number = 30) => fetchApi(`/visitors/admin/breakdown/browser?days=${days}`, { token }), adminGetOsBreakdown: (token: string, days: number = 30) => fetchApi(`/visitors/admin/breakdown/os?days=${days}`, { token }), adminGetTopPages: (token: string, days: number = 30) => fetchApi(`/visitors/admin/top-pages?days=${days}`, { token }), adminGetTopReferrers: (token: string, days: number = 30) => fetchApi(`/visitors/admin/top-referrers?days=${days}`, { token }), adminGetRealtime: (token: string) => fetchApi("/visitors/admin/realtime", { token }), };