import type { MetadataRoute } from 'next';
import { headers } from 'next/headers';
import { isNoIndexHost } from '@/lib/searchIndexing';
import { MAIN_SITE_URL } from '@/lib/mainSiteUrl';

const BASE = MAIN_SITE_URL;

export const dynamic = 'force-dynamic';

export default async function robots(): Promise<MetadataRoute.Robots> {
  const requestHeaders = await headers();
  const requestHost =
    requestHeaders.get('x-forwarded-host') || requestHeaders.get('host') || '';

  if (isNoIndexHost(requestHost)) {
    return {
      rules: {
        userAgent: '*',
        allow: '/',
      },
    };
  }

  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: [
        '/account/',
        '/algebra-dashboard/',
        '/algebra-login/',
        '/algebra-signup/',
        '/dashboard/',
        '/api/',
        '/checkout/',
        '/login/',
        '/register/',
        '/reset-password/',
        '/signin/',
        '/*-thanks-you',
        '/*-thank-you',
      ],
    },
    sitemap: `${BASE}/sitemap.xml`,
  };
}
