<?php

namespace WPSN\Modules\AIReadiness;

defined('ABSPATH') || exit;

/**
 * Small catalog of major AI crawler user-agent tokens.
 *
 * The goal is to give site owners a simple, explicit set of toggles.
 * This list is intentionally conservative and can be expanded later.
 */
final class AiBotsCatalog
{
    /**
     * @return array<string, array<string,mixed>>
     */
    public static function catalog(): array
    {
        return [
            // OpenAI
            'oai_searchbot' => [
                'group' => 'OpenAI',
                'label' => 'OAI-SearchBot',
                'ua' => 'OAI-SearchBot',
                'purpose' => __('Search indexing / discovery for OpenAI experiences.', 'wp-seo-next'),
                'default_allow' => true,
            ],
            'gptbot' => [
                'group' => 'OpenAI',
                'label' => 'GPTBot',
                'ua' => 'GPTBot',
                'purpose' => __('Training data collection (model development).', 'wp-seo-next'),
                'default_allow' => true,
            ],
            'chatgpt_user' => [
                'group' => 'OpenAI',
                'label' => 'ChatGPT-User',
                'ua' => 'ChatGPT-User',
                'purpose' => __('User-requested fetching (when a user asks ChatGPT to visit a URL).', 'wp-seo-next'),
                'default_allow' => true,
            ],

            // Anthropic
            'claude_searchbot' => [
                'group' => 'Anthropic',
                'label' => 'Claude-SearchBot',
                'ua' => 'Claude-SearchBot',
                'purpose' => __('Search result quality / indexing for Claude experiences.', 'wp-seo-next'),
                'default_allow' => true,
            ],
            'claudebot' => [
                'group' => 'Anthropic',
                'label' => 'ClaudeBot',
                'ua' => 'ClaudeBot',
                'purpose' => __('Training data collection (model development).', 'wp-seo-next'),
                'default_allow' => true,
            ],
            'claude_user' => [
                'group' => 'Anthropic',
                'label' => 'Claude-User',
                'ua' => 'Claude-User',
                'purpose' => __('User-requested fetching (when a user asks Claude to visit a URL).', 'wp-seo-next'),
                'default_allow' => true,
            ],

            // Google
            'google_extended' => [
                'group' => 'Google',
                'label' => 'Google-Extended',
                'ua' => 'Google-Extended',
                'purpose' => __('Controls whether your content can be used for Gemini training/grounding; does not affect Google Search ranking.', 'wp-seo-next'),
                'default_allow' => true,
            ],
        ];
    }
}
