import { Metadata } from 'next';
import { cookies } from 'next/headers';
import { redirect } from 'next/navigation';
import { decrypt, isExpired } from '@/lib/session';
import CheckEmailModule from '@/modules/authModule/check-email';
import { resolveTenantBranding } from '@/lib/tenantPresentation.server';

export async function generateMetadata(): Promise<Metadata> {
  const branding = await resolveTenantBranding();
  const fallbackTitle = 'Check Your Email';
  const fallbackDescription = 'Check your email to verify your account';

  return {
    title: `${branding.displayName || fallbackTitle} - Check Your Email`,
    description: branding.displayName ? `${branding.displayName} - Check Your Email` : fallbackDescription,
    icons: { icon: branding.logoUrl || '/images/favicon.ico' },
  };
}

export default async function CheckEmailPage() {
  const cookieStore = await cookies();
  const accessToken = cookieStore.get('access_token')?.value || '';
  if (accessToken && !isExpired(accessToken)) {
    const claims = decrypt(accessToken);
    if (claims?.user_id) {
      redirect('/');
    }
  }

  return <CheckEmailModule />;
}
