import { useQuery } from '@tanstack/react-query';
import { supabase } from '@/integrations/supabase/client';
import { queryKeys } from '@/lib/queryKeys';

export function useHomepageTrendingParks(enabled = true) {
  return useQuery({
    queryKey: queryKeys.homepage.trendingParks(),
    queryFn: async () => {
      const { data, error } = await supabase
        .from('parks')
        .select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`)
        .order('view_count_30d', { ascending: false })
        .limit(12);
      
      if (error) throw error;
      return data || [];
    },
    enabled,
    staleTime: 5 * 60 * 1000,
    gcTime: 15 * 60 * 1000,
    refetchOnWindowFocus: false,
  });
}

export function useHomepageTrendingRides(enabled = true) {
  return useQuery({
    queryKey: queryKeys.homepage.trendingRides(),
    queryFn: async () => {
      const { data, error } = await supabase
        .from('rides')
        .select(`
          *, 
          park:parks(*, location:locations(*)),
          manufacturer:companies!rides_manufacturer_id_fkey(*),
          designer:companies!rides_designer_id_fkey(*)
        `)
        .order('view_count_30d', { ascending: false })
        .limit(12);
      
      if (error) throw error;
      return data || [];
    },
    enabled,
    staleTime: 5 * 60 * 1000,
    gcTime: 15 * 60 * 1000,
    refetchOnWindowFocus: false,
  });
}
