import Container from "@/components/elements/Container";
import { cookies } from "next/headers";
import SearchFilter from "@/components/search/SearchFilter";
import { fetchSearch } from "@/api/fetchSearch";
import InfiniteSearch from "@/components/search/InfiniteSearch";
import { Metadata } from "next";
import { pageSeo } from "@/config/pageSeo";
import { generatePageMetadata } from "@/utils/generatePageMetadata";

interface ISearchProps {
  searchParams: Promise<{
    search?: string;
    type?: string;
  }>;
}

// تبدیل متادیتای ثابت به داینامیک
export async function generateMetadata({ searchParams }: ISearchProps): Promise<Metadata> {
  const { search } = await searchParams;

  if (!search) {
    return generatePageMetadata({
      title: pageSeo.search.title,
      description: pageSeo.search.description,
      path: pageSeo.search.path,
      keywords: [...pageSeo.search.keywords],
    });
  }

  const title = `نتایج جستجو برای «${search}» | مدستاگرام`;
  const description = `نتایج جستجوی تخصصی برای «${search}» در حوزه مد، زیبایی و مدلینگ در مدستاگرام.`;

  return generatePageMetadata({
    title,
    description,
    path: `${pageSeo.search.path}?search=${encodeURIComponent(search)}`,
  });
}

export default async function Search({ searchParams }: ISearchProps) {
  const token = (await cookies()).get("token")?.value || "";
  const filters = await searchParams;

  const initialData =
    filters.search && filters.type
      ? await fetchSearch(1, 10, filters, token)
      : undefined;

  return (
    <Container>
      {/* اضافه کردن H1 مخفی برای بهبود سئو */}
      <h1 className="sr-only">
        {filters.search 
          ? `نتایج جستجوی مدستاگرام برای: ${filters.search}` 
          : "جستجوی تخصصی در پلتفرم مد و زیبایی مدستاگرام"}
      </h1>

      <SearchFilter />
      <InfiniteSearch
        initialData={initialData}
        filters={filters}
        token={token}
      />
    </Container>
  );
}