import type { MetadataRoute } from "next";
import { BRAND_DOMAIN } from "@/lib/brand";

const BASE_URL = `https://${BRAND_DOMAIN}`;

// Surfaces privees : portail client + espace agence + endpoints API.
const DISALLOW_PATHS = [
  "/portail",
  "/portail/",
  "/atelier-novelia",
  "/atelier-novelia/",
  "/api/",
];

// AI crawlers explicitement autorises pour la strategie GEO :
// on veut etre cite dans AI Overviews / Perplexity / ChatGPT / Claude search.
// Les bots respectent (en general) un userAgent dedie ; on duplique la regle
// pour eviter l'ambiguite "*".
const AI_CRAWLERS = [
  "GPTBot",           // OpenAI / ChatGPT search
  "ChatGPT-User",     // OpenAI requete on-demand utilisateur
  "ClaudeBot",        // Anthropic Claude
  "anthropic-ai",     // Variant historique Anthropic
  "PerplexityBot",    // Perplexity
  "Perplexity-User",  // Perplexity requete on-demand
  "Google-Extended",  // Gemini / SGE Google (separe du Googlebot SEO classique)
  "CCBot",            // Common Crawl (alimente plusieurs datasets IA)
  "Applebot-Extended",// Apple Intelligence
];

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      // Regle generale pour tous les bots (SEO classique inclus).
      {
        userAgent: "*",
        allow: "/",
        disallow: DISALLOW_PATHS,
      },
      // Regles explicites pour AI crawlers : meme allow/disallow que le general,
      // mais signal fort de bienvenue (et evite qu'un changement futur sur "*"
      // ne casse la strategie GEO).
      ...AI_CRAWLERS.map((userAgent) => ({
        userAgent,
        allow: "/",
        disallow: DISALLOW_PATHS,
      })),
    ],
    sitemap: `${BASE_URL}/sitemap.xml`,
    host: BASE_URL,
  };
}
