/**
 * robots.txt: صفحات شخصی، پنل مدیریت و APIها از ایندکس خارج‌اند.
 * ربات‌های هوش مصنوعی (GEO) بر اساس تنظیم «اجازه خواندن سایت به ربات‌های هوش مصنوعی» در پنل مجاز یا مسدود می‌شوند.
 */
import type { MetadataRoute } from "next";
import { site } from "@/lib/site";
import { getAiSettings } from "@/server/services/ai";

export const revalidate = 3600;

const PRIVATE = ["/admin", "/api/", "/account", "/cart", "/checkout", "/auth", "/payment"];
/** ربات‌های موتورهای پاسخ و آموزش مدل‌های هوش مصنوعی */
export const AI_CRAWLERS = [
  "GPTBot",
  "OAI-SearchBot",
  "ChatGPT-User",
  "ClaudeBot",
  "Claude-SearchBot",
  "Claude-User",
  "PerplexityBot",
  "Perplexity-User",
  "Google-Extended",
  "Applebot-Extended",
  "CCBot",
];

export default async function robots(): Promise<MetadataRoute.Robots> {
  const { allowAiCrawlers } = await getAiSettings();
  return {
    rules: [
      { userAgent: "*", allow: "/", disallow: PRIVATE },
      allowAiCrawlers ? { userAgent: AI_CRAWLERS, allow: ["/", "/llms.txt"], disallow: PRIVATE } : { userAgent: AI_CRAWLERS, disallow: "/" },
    ],
    sitemap: new URL("/sitemap.xml", site.url).toString(),
    host: site.url,
  };
}
