import type { UseQueryOptions } from '@tanstack/react-query'; import { useDateParameters } from '@/components/hooks/useDateParameters'; import { useDateRange } from '@/components/hooks/useDateRange'; import { useApi } from '../useApi'; import { useFilterParameters } from '../useFilterParameters'; export interface WebsiteStatsData { pageviews: number; visitors: number; visits: number; bounces: number; totaltime: number; comparison: { pageviews: number; visitors: number; visits: number; bounces: number; totaltime: number; }; } export function useWebsiteStatsQuery( websiteId: string, options?: UseQueryOptions, ) { const { get, useQuery } = useApi(); const { startAt, endAt, unit, timezone } = useDateParameters(); const { compare } = useDateRange(); const filters = useFilterParameters(); return useQuery({ queryKey: [ 'websites:stats', { websiteId, startAt, endAt, unit, timezone, compare, ...filters }, ], queryFn: () => get(`/websites/${websiteId}/stats`, { startAt, endAt, unit, timezone, compare, ...filters }), enabled: !!websiteId, ...options, }); }