import { useQuery } from '@tanstack/react-query'; import { supabase } from '@/lib/supabaseClient'; import { queryKeys } from '@/lib/queryKeys'; /** * Hook to fetch park detail with all relations * Includes location, operator, property owner, and rides */ export function useParkDetail(slug: string | undefined, enabled = true) { return useQuery({ queryKey: queryKeys.parks.detail(slug || ''), queryFn: async () => { if (!slug) throw new Error('Slug is required'); const { data, error } = await supabase .from('parks') .select(` *, location:locations(*), operator:companies!parks_operator_id_fkey(*), property_owner:companies!parks_property_owner_id_fkey(*) `) .eq('slug', slug) .maybeSingle(); if (error) throw error; return data; }, enabled: enabled && !!slug, staleTime: 5 * 60 * 1000, // 5 minutes gcTime: 15 * 60 * 1000, // 15 minutes refetchOnWindowFocus: false, }); }