/**
 * Home Page (SSR)
 * Main landing page with school search and browsing
 */

import { fetchSchools, fetchFilters } from '@/lib/api';
import { HomeView } from '@/components/HomeView';

interface HomePageProps {
  searchParams: {
    search?: string;
    local_authority?: string;
    school_type?: string;
    page?: string;
    postcode?: string;
    radius?: string;
  };
}

export const metadata = {
  title: 'Home',
  description: 'Search and compare primary school KS2 performance across England',
};

// Force dynamic rendering (no static generation at build time)
export const dynamic = 'force-dynamic';

export default async function HomePage({ searchParams }: HomePageProps) {
  // Parse search params
  const page = parseInt(searchParams.page || '1');
  const radius = searchParams.radius ? parseInt(searchParams.radius) : undefined;

  // Fetch data on server with error handling
  try {
    const [schoolsData, filtersData] = await Promise.all([
      fetchSchools({
        search: searchParams.search,
        local_authority: searchParams.local_authority,
        school_type: searchParams.school_type,
        postcode: searchParams.postcode,
        radius,
        page,
        page_size: 50,
      }),
      fetchFilters(),
    ]);

    return (
      <HomeView
        initialSchools={schoolsData}
        filters={filtersData?.filters || { local_authorities: [], school_types: [], years: [] }}
      />
    );
  } catch (error) {
    console.error('Error fetching data for home page:', error);

    // Return error state with empty data
    return (
      <HomeView
        initialSchools={{ schools: [], pagination: { page: 1, page_size: 50, total: 0, pages: 0 } }}
        filters={{ local_authorities: [], school_types: [], years: [] }}
      />
    );
  }
}
