import type { Metadata } from "next";

import { buildMetadata } from "@/lib/seo";
import { getTours } from "@/lib/sttrip-api";

import { TravelSearchHero } from "@/features/home/components/TravelSearchHero";
import { PackageGridWithTabs } from "@/features/packages/components/PackageGridWithTabs";

import {
  tourCategories as fallbackCategories,
  tourPackages as fallbackPackages,
} from "@/features/packages/data/tour-packages";

export const metadata: Metadata = buildMetadata({
  title: "Tour Packages",
  description:
    "Curated single and multi-country holiday tour packages from Bangladesh across Asia, Europe and beyond.",
});

interface TourPackagesPageProps {
  searchParams: Promise<{
    destination?: string;
    searchType?: string;
    month?: string;
  }>;
}

export default async function TourPackagesPage({
  searchParams,
}: TourPackagesPageProps) {
  const { destination } = await searchParams;

  let categories = fallbackCategories;
  let packages = fallbackPackages;

  try {
    const api = await getTours();

    if (api.packages.length > 0) {
      packages = api.packages;
      categories = api.categories;
    }
  } catch {
    // Laravel API unavailable:
    // keep existing static data as fallback.
  }

  return (
    <>
      <TravelSearchHero
        eyebrow="Where to next"
        title="Tour Packages"
        description="Handpicked holiday packages across the region and beyond — flights, hotels and sightseeing bundled in."
      />

      <section className="py-12 sm:py-16">
        <div className="container-app">
          <PackageGridWithTabs
            categories={categories}
            packages={packages}
            initialDestination={destination}
          />
        </div>
      </section>
    </>
  );
}
