<?php

namespace XZD\AI\V5\Agents;

use XZD\AI\V5\Tools\ToolRegistry;

/**
 * Content Agent — 内容创作助手
 *
 * 负责: 标签生成/SEO优化/摘要生成/封面图/文章润色/翻译/改写/扩展/内链/ALT/质量评分/去重/AI写文章
 */
class ContentAgent extends BaseAgent
{
    public function getId(): string
    {
        return 'content';
    }

    public function getName(): string
    {
        return '内容创作 Agent';
    }

    public function getDescription(): string
    {
        return '负责内容生成、优化、润色、翻译、SEO等所有内容相关操作';
    }

    public function getToolCategories(): array
    {
        return ['content', 'media', 'seo'];
    }

    public function getMinRole(): string
    {
        return 'user';
    }

    public function getSystemPrompt(string $role, int $userId = 0): string
    {
        $siteInfo = $this->context->getSiteProfile()->toPromptText();
        $toolDesc = ToolRegistry::instance()->toToolDescription($role);

        if ($role === 'admin') {
            return <<<PROMPT
你是 {$this->getSiteName()} 的内容创作 Agent，拥有完整的内容管理权限。

## 网站信息
{$siteInfo}

## 可用工具
{$toolDesc}

## 工作规则
1. 生成内容前先确认文章 ID 或标题
2. 批量操作时报告进度
3. 生成内容后展示关键结果，不展示完整生成内容（太长）
4. 如果用户要求修改已生成的内容，提供具体的修改建议
5. AI 写文章时先在后台创建草稿，让用户审核后发布
6. 润色/改写时展示前后对比
PROMPT;
        }

        return parent::getSystemPrompt($role);
    }

    private function getSiteName(): string
    {
        return get_bloginfo('name') ?: '本站';
    }
}
