import { getProjectBySlug } from "@/app/actions";
import WorkDetailClient from "@/components/WorkDetailClient";
import { notFound } from "next/navigation";
import { Metadata } from "next";

export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }): Promise<Metadata> {
    const { slug } = await params;
    const data = await getProjectBySlug(slug);
    if (!data) return {};

    const { project } = data;
    return {
        title: project.title,
        description: project.subtitle,
        openGraph: {
            title: `${project.title} | Muğla Dijital`,
            description: project.subtitle,
            images: [project.hero_image],
        },
    };
}

export default async function ProjectDetailPage({ params }: { params: Promise<{ slug: string }> }) {
    const { slug } = await params;
    const data = await getProjectBySlug(slug);
    if (!data) notFound();

    const breadcrumbLd = {
        "@context": "https://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [
            {
                "@type": "ListItem",
                "position": 1,
                "name": "Ana Sayfa",
                "item": "https://mugladijitalmedya.com"
            },
            {
                "@type": "ListItem",
                "position": 2,
                "name": "Çalışmalarımız",
                "item": "https://mugladijitalmedya.com/works"
            },
            {
                "@type": "ListItem",
                "position": 3,
                "name": data.project.title,
                "item": `https://mugladijitalmedya.com/works/${data.project.slug}`
            }
        ]
    };

    const creativeWorkLd = {
        "@context": "https://schema.org",
        "@type": "CreativeWork",
        "name": data.project.title,
        "description": data.project.subtitle,
        "image": data.project.hero_image,
        "author": {
            "@type": "Organization",
            "name": "Muğla Dijital"
        },
        "publisher": {
            "@type": "Organization",
            "name": "Muğla Dijital"
        }
    };

    return (
        <>
            <script
                type="application/ld+json"
                dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbLd) }}
            />
            <script
                type="application/ld+json"
                dangerouslySetInnerHTML={{ __html: JSON.stringify(creativeWorkLd) }}
            />
            <WorkDetailClient project={data.project} nextProject={data.nextProject} />
        </>
    );
}
