import type { Metadata } from "next";
import { cookies } from "next/headers";
import { Suspense } from "react";

import ProductDetailClient from "@/components/amazon-coupons/ProductDetailClient";
import { getAmazonProductDetailServer } from "@/services/amazon.service.server";
import config from "@/utils/config";

export async function generateMetadata({ params }: { params: any }): Promise<Metadata> {
  const resolvedParams = await params;
  const { sku } = resolvedParams;

  let product_details: any = null;

  try {
    const res = await getAmazonProductDetailServer(sku);
    product_details = res?.product_details ?? null;
  } catch {}

  const cookieStore = await cookies();
  const userType = cookieStore.get("user_type");

  return {
    title: product_details?.title_string ?? "Amazon Coupons | Rebates.com",
    description: product_details?.description_string ?? "",
    icons: {
      icon:
        userType?.value === "PLUS"
          ? config.APP_CONFIG.PLUS_FAVICON
          : config.APP_CONFIG.FAVICON,
    },
  };
}

export default function Page() {
  return (
    <Suspense fallback={<div className="min-h-[300px]" />}>
      <ProductDetailClient />
    </Suspense>
  );
}
