import { BASE_URL, IMAGE_BASE_URL, buildStorageUrl } from "@/components/main/BaseUrl";
import React, { cache } from "react";
import { cookies } from "next/headers";
import { IAdvertisingProfile } from "@/types/types";
import Container from "@/components/elements/Container";
import AdProfileHead from "@/components/billboards/Profile/AdProfileHead";
import AdProfileContent from "@/components/billboards/Profile/AdProfileContent";
import { Metadata } from "next";

interface IUserProps {
  params: Promise<{ id: string }>;
}

// بهینه‌سازی واکشی داده‌ها برای جلوگیری از تکرار درخواست (Shared Cache)
const getProfile = cache(async (id: string) => {
  try {
    const res = await fetch(`${BASE_URL}/advertising/profile-web?vitrineId=${id}`, {
      cache: 'no-store'
    });
    if (!res.ok) return null;
    const data = await res.json();
    return data.profileDetails as IAdvertisingProfile;
  } catch (error) {
    return null;
  }
});

export async function generateMetadata({ params }: IUserProps): Promise<Metadata> {
  const { id } = await params;
  const profile = await getProfile(id);

  if (!profile) {
    return { title: "آگهی یافت نشد | مدستاگرام" };
  }

  // --- تنظیم تایتل طبق فرمت درخواستی شما ---
  // فرمت: عنوان آگهی - دسته بندی - محله - شهر - مدستاگرام
  const titleParts = [
    profile.title,
    profile.category?.name,
    profile.neighborhood?.name,
    profile.city?.name,
    "مدستاگرام"
  ].filter(Boolean); // حذف مقادیر خالی

  const finalTitle = titleParts.join(" - ");

  // --- تنظیم دیسکریپشن طبق فرمت درخواستی شما ---
  // فرمت: دسته بندی - شهر - توضیحات آگهی
  const description = `${profile.category?.name || ""} - ${profile.city?.name || ""} - ${profile.description || ""}`.slice(0, 160);

  const image = profile.images?.[0] ? `${IMAGE_BASE_URL}${profile.images[0]}` : "/images/logo.png";

  return {
    title: finalTitle,
    description: description,
    openGraph: {
      title: finalTitle,
      description: description,
      url: `https://modstagram.com/billboards/${id}`,
      siteName: "مدستاگرام",
      images: [{ url: image }],
      locale: "fa_IR",
      type: "article",
    },
    alternates: {
      canonical: `https://modstagram.com/billboards/${id}`,
    }
  };
}

export default async function AdvertisingProfilePage({ params }: IUserProps) {
  const { id } = await params;
  const profile = await getProfile(id);

  if (!profile) return <Container className="py-20 text-center">آگهی یافت نشد</Container>;

  return (
    <Container>
      {/* اضافه کردن H1 برای سبز شدن نمره سئو - مخفی از کاربر بصری، مرئی برای گوگل */}
      <h1 className="sr-only">
        {profile.title} - {profile.category?.name} در {profile.city?.name}، {profile.neighborhood?.name}
      </h1>

      <AdProfileHead profile={profile} id={id} />
      <AdProfileContent profile={profile} />
    </Container>
  );
}