import { Head, Link } from '@inertiajs/react';
import { BookOpen, Map } from 'lucide-react';
import AppLayout from '@/layouts/app-layout';
import type { BreadcrumbItem } from '@/types';

type Path = {
    id: number;
    title: string;
    slug: string;
    description: string | null;
    thumbnail: string | null;
    courses_count: number;
};

type Props = { paths: Path[] };

const breadcrumbs: BreadcrumbItem[] = [{ title: 'Paket Belajar', href: '/learning-paths' }];

export default function LearningPathsIndex({ paths }: Props) {
    return (
        <>
            <Head title="Paket Belajar" />

            <div className="mx-auto max-w-6xl flex flex-col gap-6 px-5 py-8">
                <div>
                    <h1 className="text-2xl font-bold">Paket Belajar</h1>
                    <p className="mt-1 text-sm text-muted-foreground">
                        Kurikulum terstruktur — pelajari kelas dalam urutan yang tepat
                    </p>
                </div>

                {paths.length === 0 ? (
                    <div className="rounded-xl border border-dashed p-12 text-center">
                        <Map className="mx-auto mb-3 h-10 w-10 text-muted-foreground/40" />
                        <p className="text-muted-foreground">Belum ada paket belajar tersedia.</p>
                    </div>
                ) : (
                    <div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
                        {paths.map((path) => (
                            <Link
                                key={path.id}
                                href={`/learning-paths/${path.slug}`}
                                className="group rounded-xl border bg-card p-5 transition-shadow hover:shadow-md"
                            >
                                {path.thumbnail ? (
                                    <img
                                        src={path.thumbnail}
                                        alt={path.title}
                                        className="mb-4 h-36 w-full rounded-lg object-cover"
                                    />
                                ) : (
                                    <div className="mb-4 flex h-36 w-full items-center justify-center rounded-lg bg-gradient-to-br from-primary/10 to-primary/5">
                                        <Map className="h-10 w-10 text-primary/40" />
                                    </div>
                                )}

                                <h2 className="font-semibold group-hover:text-primary">{path.title}</h2>

                                {path.description && (
                                    <p className="mt-1 line-clamp-2 text-sm text-muted-foreground">
                                        {path.description}
                                    </p>
                                )}

                                <div className="mt-3 flex items-center gap-1.5 text-xs text-muted-foreground">
                                    <BookOpen className="h-3.5 w-3.5" />
                                    <span>{path.courses_count} kelas</span>
                                </div>
                            </Link>
                        ))}
                    </div>
                )}
            </div>
        </>
    );
}

LearningPathsIndex.layout = (page: React.ReactNode) => (
    <AppLayout breadcrumbs={breadcrumbs}>{page}</AppLayout>
);
