import Link from "next/link";
import { notFound } from "next/navigation";

import { createClient } from "../../../lib/supabase/server";

import CartButton from "../../components/CartButton";
import ProductDetailsClient from "./ProductDetailsClient";


export default async function ProductPage({
  params,
}: {
  params: Promise<{
    slug: string;
  }>;
}) {
  const {
    slug,
  } = await params;

  const supabase =
    await createClient();


  // =============================================
  // GET PRODUCT
  // =============================================

  const {
    data: product,
    error: productError,
  } =
    await supabase
      .from("products")
      .select(
        `
          id,
          name,
          slug,
          description,
          price,
          is_available,
          featured_image_url
        `
      )
      .eq(
        "slug",
        slug
      )
      .eq(
        "is_available",
        true
      )
      .maybeSingle();


  if (
    productError ||
    !product
  ) {
    notFound();
  }


  // =============================================
  // GET AVAILABLE VARIANTS
  // =============================================

  const {
    data: variants,
    error: variantsError,
  } =
    await supabase
      .from(
        "product_variants"
      )
      .select(
        `
          id,
          name,
          price,
          is_available
        `
      )
      .eq(
        "product_id",
        product.id
      )
      .eq(
        "is_available",
        true
      )
      .order(
        "price",
        {
          ascending: true,
        }
      );


  if (
    variantsError
  ) {
    console.error(
      "Variants error:",
      variantsError
    );
  }


  return (
    <main className="min-h-screen bg-[#fffaf4] text-[#2b2118]">

      {/* =========================================
          HEADER
      ========================================== */}

      <header className="sticky top-0 z-50 border-b border-black/5 bg-[#fffaf4]/95 backdrop-blur">

        {/* DESKTOP / MAIN HEADER */}
        <div className="mx-auto flex max-w-7xl items-center justify-between px-5 py-4 md:px-10">

          {/* LOGO */}
          <Link
            href="/"
            className="shrink-0 text-2xl font-black tracking-[0.22em]"
          >
            PELCY
          </Link>


          {/* DESKTOP NAVIGATION */}
          <nav className="hidden items-center gap-8 text-sm font-medium md:flex">

            <Link
              href="/"
              className="transition hover:opacity-60"
            >
              Home
            </Link>


            <Link
              href="/#products"
              className="transition hover:opacity-60"
            >
              Products
            </Link>


            <Link
              href="/#about"
              className="transition hover:opacity-60"
            >
              About
            </Link>


            <Link
              href="/#contact"
              className="transition hover:opacity-60"
            >
              Contact
            </Link>


            <Link
              href="/order-tracking"
              className="font-bold transition hover:opacity-60"
            >
              Track Order
            </Link>

          </nav>


          {/* CART */}
          <CartButton />

        </div>


        {/* MOBILE NAVIGATION */}
        <nav className="border-t border-black/5 md:hidden">

          <div className="mx-auto flex max-w-7xl items-center gap-6 overflow-x-auto px-5 py-3 text-sm font-semibold">

            <Link
              href="/"
              className="shrink-0 transition hover:opacity-60"
            >
              Home
            </Link>


            <Link
              href="/#products"
              className="shrink-0 transition hover:opacity-60"
            >
              Products
            </Link>


            <Link
              href="/#about"
              className="shrink-0 transition hover:opacity-60"
            >
              About
            </Link>


            <Link
              href="/#contact"
              className="shrink-0 transition hover:opacity-60"
            >
              Contact
            </Link>


            <Link
              href="/order-tracking"
              className="shrink-0 rounded-full bg-[#2b2118] px-4 py-2 font-bold text-white"
            >
              Track Order
            </Link>

          </div>

        </nav>

      </header>


      {/* =========================================
          PRODUCT DETAILS
      ========================================== */}

      <div className="mx-auto max-w-7xl px-5 py-10 md:px-10 md:py-16">

        {/* BACK LINK */}
        <div className="mb-8">

          <Link
            href="/#products"
            className="inline-flex items-center gap-2 text-sm font-bold text-black/55 transition hover:text-black"
          >
            ← Back to Products
          </Link>

        </div>


        <ProductDetailsClient
          product={{
            ...product,

            price:
              Number(
                product.price
              ),
          }}
          variants={
            (
              variants ??
              []
            ).map(
              (
                variant
              ) => ({
                ...variant,

                price:
                  Number(
                    variant.price
                  ),
              })
            )
          }
        />

      </div>


      {/* =========================================
          ORDER TRACKING PROMPT
      ========================================== */}

      <section className="border-t border-black/5 bg-[#f1e5d8]">

        <div className="mx-auto max-w-7xl px-5 py-12 md:px-10">

          <div className="flex flex-col gap-6 rounded-[28px] bg-white p-7 shadow-sm md:flex-row md:items-center md:justify-between md:p-8">

            <div>

              <p className="text-sm font-black uppercase tracking-[0.18em] text-[#9b6a44]">
                Already placed an order?
              </p>


              <h2 className="mt-2 text-2xl font-black md:text-3xl">
                Check your PELCY order status.
              </h2>


              <p className="mt-2 max-w-xl text-sm leading-6 text-black/55 md:text-base">
                Use your order number and the phone number
                entered during checkout to follow your
                payment and delivery progress.
              </p>

            </div>


            <Link
              href="/order-tracking"
              className="inline-flex shrink-0 items-center justify-center rounded-full bg-[#2b2118] px-7 py-4 font-black text-white transition hover:scale-105"
            >
              Track My Order
            </Link>

          </div>

        </div>

      </section>


      {/* =========================================
          FOOTER
      ========================================== */}

      <footer className="bg-[#19130f] text-white">

        <div className="mx-auto max-w-7xl px-5 py-10 md:px-10">

          <div className="flex flex-col justify-between gap-7 md:flex-row md:items-center">

            <div>

              <h2 className="text-xl font-black tracking-[0.2em]">
                PELCY
              </h2>


              <p className="mt-2 text-sm text-white/50">
                Fresh goodness, delivered.
              </p>

            </div>


            <div className="flex flex-wrap gap-5 text-sm text-white/60">

              <Link
                href="/"
                className="transition hover:text-white"
              >
                Home
              </Link>


              <Link
                href="/#products"
                className="transition hover:text-white"
              >
                Products
              </Link>


              <Link
                href="/order-tracking"
                className="transition hover:text-white"
              >
                Track Order
              </Link>

            </div>


            <p className="text-sm text-white/45">
              © 2026 PELCY. All rights reserved.
            </p>

          </div>

        </div>

      </footer>

    </main>
  );
}