import { Head, Link } from '@inertiajs/react';

type Vehicle = { id: number; make: string; model: string; engine_code: string | null };
type Product = { id: number; name: string; slug: string; sku: string; price: string; discount_price: string | null; brand: { name: string } | null; images: { path: string; alt_text: string | null; is_main: boolean }[] };

export default function Recommendations({ vehicles, products }: { vehicles: Vehicle[]; products: Product[] }) {
    return (
        <>
            <Head title="Compatible Parts" />
            <main className="min-h-screen bg-slate-50 px-4 py-6 text-slate-900 sm:px-6 lg:px-8">
                <div className="mx-auto max-w-7xl">
                    <Link href="/account/vehicles" className="text-sm font-semibold text-cyan-700">Saved vehicles</Link>
                    <h1 className="mt-3 text-2xl font-semibold">Compatible parts</h1>
                    <p className="mt-2 text-sm text-slate-500">{vehicles.length} saved vehicle(s)</p>
                    <div className="mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
                        {products.map((product) => {
                            const image = product.images.find((item) => item.is_main);
                            return (
                                <Link key={product.id} href={`/parts/${product.slug}`} className="rounded-lg border border-slate-200 bg-white p-4">
                                    <div className="flex aspect-[4/3] items-center justify-center overflow-hidden rounded-md bg-slate-100">{image ? <img src={image.path} alt={image.alt_text ?? product.name} className="h-full w-full object-cover" /> : <span className="text-sm text-slate-500">No image</span>}</div>
                                    <p className="mt-4 text-xs font-medium uppercase text-cyan-700">{product.brand?.name ?? 'Brand'}</p>
                                    <h2 className="mt-1 font-semibold">{product.name}</h2>
                                    <p className="mt-1 text-xs text-slate-500">SKU {product.sku}</p>
                                    <p className="mt-3 font-semibold">{product.discount_price ?? product.price}</p>
                                </Link>
                            );
                        })}
                    </div>
                    {products.length === 0 ? <p className="mt-6 rounded-lg border border-slate-200 bg-white p-5 text-sm text-slate-500">No compatible parts found yet.</p> : null}
                </div>
            </main>
        </>
    );
}
