
import { useEffect, useState } from 'react';
import Header from '@/components/header/Header';
import TitleGallery from './TitleGallery';
import OverviewDetails from './OverviewDetails';
import PropertyBox from '@/components/property-box/PropertyBox';
import Footer from '@/components/footer/Footer';
import { Hotel } from '@/pages/search';
import { useRouter } from 'next/router';
import { get } from '@/api1/apiUtils';
import Head from 'next/head';

const Index = () => {
  const [hotelDetail, setHotelDetail] = useState<Hotel>();

  const router = useRouter();
  const { hotelId } = router.query;

  useEffect(() => {
    const fetchHotelDetail = async () => {
      if (!router.isReady || !hotelId) return;

      try {
        const res = await get(`/hotels/${hotelId}`) as any;
        setHotelDetail(res?.hotel);
      } catch (error) {
        console.error('Failed to fetch hotel:', error);
      }
    };

    fetchHotelDetail();
  }, [router.isReady, hotelId]);

  // Define SEO metadata
  const seo = {
    title: `${hotelDetail?.name} - Hotel Ayodhyas`,
    description: hotelDetail?.description || 'Default description if hotel detail is not available',
    keywords: 'hotel, travel, booking, vacations',
    ogImage: hotelDetail?.images || '/default-image.jpg' as any,
    ogType: 'website',
    ogUrl: `https://ayodhyas.com/hotels/${hotelId}`,
  };

  return (
    <>
      <Head>
        <title>{seo.title}</title>
        <meta name="description" content={seo.description} />
        <meta name="keywords" content={seo.keywords} />

        {/* Open Graph tags for social sharing */}
        <meta property="og:title" content={seo.title} />
        <meta property="og:description" content={seo.description} />
        <meta property="og:image" content={seo.ogImage} />
        <meta property="og:type" content={seo.ogType} />
        <meta property="og:url" content={seo.ogUrl} />

        {/* Twitter card */}
        <meta name="twitter:card" content="summary_large_image" />
        <meta name="twitter:title" content={seo.title} />
        <meta name="twitter:description" content={seo.description} />
        <meta name="twitter:image" content={seo.ogImage} />
      </Head>

      <Header />
      <TitleGallery hotelDetail={hotelDetail} />
      <OverviewDetails hotelDetail={hotelDetail} />
      <PropertyBox />
      <Footer />
    </>
  );
};

export default Index;
