Files
thrilltrack-explorer/src/hooks/homepage/useHomepageRated.ts
2025-10-30 22:26:02 +00:00

46 lines
1.3 KiB
TypeScript

import { useQuery } from '@tanstack/react-query';
import { supabase } from '@/integrations/supabase/client';
import { queryKeys } from '@/lib/queryKeys';
export function useHomepageHighestRatedParks(enabled = true) {
return useQuery({
queryKey: queryKeys.homepage.highestRatedParks(),
queryFn: async () => {
const { data, error } = await supabase
.from('parks')
.select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`)
.not('average_rating', 'is', null)
.order('average_rating', { ascending: false })
.limit(12);
if (error) throw error;
return data || [];
},
enabled,
staleTime: 5 * 60 * 1000,
gcTime: 15 * 60 * 1000,
refetchOnWindowFocus: false,
});
}
export function useHomepageHighestRatedRides(enabled = true) {
return useQuery({
queryKey: queryKeys.homepage.highestRatedRides(),
queryFn: async () => {
const { data, error } = await supabase
.from('rides')
.select(`*, park:parks(*), location:locations(*)`)
.not('average_rating', 'is', null)
.order('average_rating', { ascending: false })
.limit(12);
if (error) throw error;
return data || [];
},
enabled,
staleTime: 5 * 60 * 1000,
gcTime: 15 * 60 * 1000,
refetchOnWindowFocus: false,
});
}