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

export function useHomepageRecentlyClosedParks(enabled = true) {
  return useQuery({
    queryKey: queryKeys.homepage.recentlyClosedParks(),
    queryFn: async () => {
      const oneYearAgo = new Date();
      oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);
      const today = new Date();

      const { data, error } = await supabase
        .from('parks')
        .select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`)
        .gte('closing_date', oneYearAgo.toISOString())
        .lte('closing_date', today.toISOString())
        .order('closing_date', { ascending: false })
        .limit(12);
      
      if (error) throw error;
      return data || [];
    },
    enabled,
    staleTime: 5 * 60 * 1000,
    gcTime: 15 * 60 * 1000,
    refetchOnWindowFocus: false,
  });
}

export function useHomepageRecentlyClosedRides(enabled = true) {
  return useQuery({
    queryKey: queryKeys.homepage.recentlyClosedRides(),
    queryFn: async () => {
      const oneYearAgo = new Date();
      oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);
      const today = new Date();

      const { data, error } = await supabase
        .from('rides')
        .select(`
          *, 
          park:parks(*, location:locations(*)),
          manufacturer:companies!rides_manufacturer_id_fkey(*),
          designer:companies!rides_designer_id_fkey(*)
        `)
        .gte('closing_date', oneYearAgo.toISOString())
        .lte('closing_date', today.toISOString())
        .order('closing_date', { ascending: false })
        .limit(12);
      
      if (error) throw error;
      return data || [];
    },
    enabled,
    staleTime: 5 * 60 * 1000,
    gcTime: 15 * 60 * 1000,
    refetchOnWindowFocus: false,
  });
}
