"""插件相关数据模型"""
from typing import Optional, Dict, Any
from pydantic import BaseModel, Field


class PluginRequest(BaseModel):
    """
    插件请求模型
    
    Attributes:
        plugin_id: 插件ID
        action: 执行动作
        params: 请求参数
    """
    plugin_id: str = Field(..., description="插件ID", examples=["plugin_001"])
    action: str = Field(..., description="执行动作", examples=["execute"])
    params: Optional[Dict[str, Any]] = Field(default=None, description="请求参数")
    
    model_config = {
        "json_schema_extra": {
            "examples": [
                {
                    "plugin_id": "plugin_001",
                    "action": "execute",
                    "params": {"key": "value"}
                }
            ]
        }
    }


class PluginResponse(BaseModel):
    """
    插件响应模型
    
    Attributes:
        plugin_id: 插件ID
        result: 执行结果
        status: 执行状态
    """
    plugin_id: str = Field(..., description="插件ID")
    result: Optional[Dict[str, Any]] = Field(default=None, description="执行结果")
    status: str = Field(default="success", description="执行状态")
