import { Metadata } from "next";
import CourseDetail from "./CourseClient";

// نوع Props را به‌روز کردیم که params یک Promise باشد
type Props = {
  params: Promise<{ id: string; title: string }>;
};

// تابع metadata با await روی params
export async function generateMetadata({ params }: Props): Promise<Metadata> {
  try {
    const { id } = await params; // اول await می‌کنیم، بعد id می‌گیریم

    const res = await fetch(
      `https://app.modstagram.ir/api/v1/academy/academy/get/curses?page=1&limit=20&status=accept&_id=${id}`,
      { cache: "no-store" }
    );

    const response = await res.json();
    const course =
      response?.data?.courses?.[0] ||
      response?.courses?.[0] ||
      response?.[0];

    if (course) {
      const courseName = course.cuorse_name || "دوره آموزشی";
      const category = course.category || "دسته‌بندی نامشخص";
      const teacher = course.teacher_name || "مدرس نامشخص";

      const rawCaption = course.caption || "";
      const cleanCaption = rawCaption
        .replace(/<[^>]*>?/gm, "")
        .substring(0, 150);

      return {
        title: `${courseName} - ${category} - مدستاگرام`,
        description: `${category} - ${cleanCaption} - مدرس: ${teacher} - مدستاگرام`,
      };
    }
  } catch (error) {
    console.error("خطا در دریافت اطلاعات سئو:", error);
  }

  return {
    title: "جزئیات دوره - مدستاگرام",
    description: "توضیحات دوره آکادمی - مدستاگرام",
  };
}

// صفحه اصلی را async کردیم تا بتوانیم params را await کنیم
export default async function CoursePage({ params }: Props) {
  const { id } = await params; // استخراج id از params
  return <CourseDetail courseId={id} />;
}
