import CategoriesData from "@comp/AppsComponent/CategoriesData/page";
import React from "react";

export async function generateMetadata({ params }) {
  const decodedName = decodeURIComponent(params.id[1]);

  return {
    title: decodedName,
    description: `  خرید ${decodedName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
    metadataBase: new URL(
      `https://www.vesmeh.com/categories/${params.id[0]}/${decodedName}`
    ),
    keywords: [
      "آرایشی",
      "بهداشت خانگی",
      "محصولات زیبایی",
      "لوازم تمیزی",
      "مراقبت شخصی",
    ],
    openGraph: {
      title: decodedName,
      description: `  خرید ${decodedName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
      url: `https://www.vesmeh.com/categories/${params.id[0]}/${decodedName}`,
      type: "website",
    },
    twitter: {
      site: "@vesmehstore",
      description: `  خرید ${decodedName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
      title: decodedName,
      creator: "@vesmehstore",
    },
  };
}

const fetchProducts = async (categoryId, searchParams) => {
  const {
    brandIds: brandIdsString,
    isActive,
    specialOffer,
    ...params
  } = searchParams;

  const query = {
    ...(categoryId != 0 ? { categoryId } : {}),
    page: 0,
    ...(!!isActive ? { isActive: !!isActive } : {}),
    ...(!!specialOffer ? { specialOffer: !!specialOffer } : {}),
    ...params,
  };

  const brandIds = brandIdsString?.split(",") ?? [];
  const brandIdsQuery =
    brandIds?.length > 0 ? `&brandIds=${brandIds?.join("&brandIds=")}` : "";

  try {
    const res = await fetch(
      `${process.env.NEXT_PUBLIC_API_URL}/product?` +
        new URLSearchParams({ ...query }) +
        brandIdsQuery
    );
    if (!res.ok) return [];
    const products = await res.json();

    console.log("products++++++++++++++++++++++++++++++++", products);
    return products;
  } catch (error) {
    return [];
  }
};

const page = async ({ params, searchParams }) => {
  const products = await fetchProducts(params?.["id"]?.[0], searchParams);

  return (
    <div>
      <CategoriesData params={params} products={products} />
    </div>
  );
};

export default page;
