import { cookies } from 'next/headers';
import { redirect } from 'next/navigation';
import { getAuthenticatedUserFromToken } from '@/lib/adminAccess';
import { getSafeInternalPath } from '@/lib/authNavigation';
import PinLoginClient from './PinLoginClient';

export const dynamic = 'force-dynamic';
export const runtime = 'nodejs';

export const metadata = {
  title: 'Login with PIN | Cambridge Veritas',
  description: 'Sign in to Cambridge Veritas using your user ID or email address and PIN.',
};

export default async function LoginByPinPage({ searchParams }) {
  const params = await searchParams;
  const returnTo = getSafeInternalPath(params?.redirect, '/account');
  const token = (await cookies()).get('token')?.value || '';
  const user = await getAuthenticatedUserFromToken(token).catch(() => null);

  if (user) {
    redirect(returnTo);
  }

  return <PinLoginClient redirectTo={returnTo} />;
}
