import Link from "next/link";
import { redirect } from "next/navigation";
import { auth } from "@/lib/auth";

export default async function AdminLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const session = await auth();

  if (!session?.user) {
    redirect("/login");
  }

  const role = (session.user as { role?: string }).role;

  if (role !== "admin" && role !== "moderator") {
    return (
      <main className="mx-auto max-w-xl px-6 py-16 text-center">
        <h1 className="font-heading text-3xl font-semibold text-terracotta">
          Not authorized
        </h1>
        <p className="mt-4 text-charcoal/70">
          You don&apos;t have access to the admin panel.
        </p>
      </main>
    );
  }

  const isAdmin = role === "admin";

  return (
    <div className="mx-auto max-w-6xl px-6 py-16">
      <nav className="mb-10 flex flex-wrap gap-6 border-b border-charcoal/10 pb-4">
        {isAdmin && (
          <Link
            href="/admin"
            className="text-sm font-medium text-charcoal hover:text-terracotta"
          >
            Dashboard
          </Link>
        )}
        <Link
          href="/admin/flags"
          className="text-sm font-medium text-charcoal hover:text-terracotta"
        >
          Flags
        </Link>
        <Link
          href="/admin/labels"
          className="text-sm font-medium text-charcoal hover:text-terracotta"
        >
          Labels
        </Link>
        <Link
          href="/admin/fixes"
          className="text-sm font-medium text-charcoal hover:text-terracotta"
        >
          Fixes
        </Link>
        <Link
          href="/admin/users"
          className="text-sm font-medium text-charcoal hover:text-terracotta"
        >
          Users
        </Link>
        {isAdmin && (
          <>
            <Link
              href="/admin/brands"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Brands
            </Link>
            <Link
              href="/admin/blocklist"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Blocklist
            </Link>
            <Link
              href="/admin/badges"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Badges
            </Link>
            <Link
              href="/admin/navigation"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Navigation
            </Link>
            <Link
              href="/admin/cellar-choice"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Cellar Choice
            </Link>
            <Link
              href="/admin/log"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Log
            </Link>
            <Link
              href="/admin/api-keys"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              API Keys
            </Link>
            <Link
              href="/admin/settings"
              className="text-sm font-medium text-charcoal hover:text-terracotta"
            >
              Settings
            </Link>
          </>
        )}
      </nav>
      {children}
    </div>
  );
}
