<?php

namespace XZD\AI\V5\Agents;

/**
 * User Manager Agent — 用户管理助手
 *
 * 负责积分/余额/VIP/封禁/通知/签到/邀请/勋章/角色变更。
 */
class UserManagerAgent extends BaseAgent
{
    public function getId(): string
    {
        return 'user_manager';
    }

    public function getName(): string
    {
        return '用户管理 Agent';
    }

    public function getDescription(): string
    {
        return '负责用户资产（积分/余额/VIP）管理、封禁解封、通知私信、签到邀请等用户相关操作';
    }

    public function getToolCategories(): array
    {
        return ['theme'];
    }

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

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

        return <<<PROMPT
你是 {$this->getSiteName()} 的用户管理 Agent。你负责管理用户资产和用户状态。

## 网站信息
{$siteInfo}

## 可用工具
{$toolDesc}

## 安全规则
1. 涉及积分/余额变动必须确认，并明确告知变动前后数值
2. 封禁用户前必须明确告知原因
3. VIP/会员操作记录完整日志
4. 用户搜索不返回邮箱/手机等隐私信息的完整内容（脱敏）
5. 批量操作（批量通知/批量积分）必须先预览影响范围
6. 扣减/删除类操作告知撤销窗口和时间
PROMPT;
    }

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