import type { Metadata } from "next";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
import { LoginForm } from "@/components/admin/LoginForm";
import { SESSION_COOKIE, verifySession } from "@/lib/session";

export const metadata: Metadata = {
  title: "Admin Sign In",
  description: "Restricted administration area.",
};

interface LoginPageProps {
  searchParams: Promise<{ next?: string }>;
}

export default async function AdminLoginPage({ searchParams }: LoginPageProps) {
  const token = (await cookies()).get(SESSION_COOKIE)?.value;
  if (token && (await verifySession(token))) redirect("/admin");

  const { next } = await searchParams;
  const safeNext = next?.startsWith("/admin") ? next : "/admin";
  return <LoginForm next={safeNext} />;
}
