#!/usr/bin/env python3
"""
简化的JSON-RPC Commander
"""

from typing import Dict, Any, List, Callable

from .base import JSONRPCCommander

class SimpleJSONRPCCommander(JSONRPCCommander):
    """简化的JSON-RPC Commander，用于快速创建命令行工具"""
    
    def __init__(self, service_name: str):
        self.command_handlers: Dict[str, Callable] = {}
        super().__init__(service_name)
    
    def _register_commands(self) -> None:
        """默认不注册任何命令"""
        pass
    
    def add_command(self, 
                   name: str,
                   handler: Callable,
                   description: str,
                   required_args: List[str] = None,
                   optional_args: Dict[str, Dict[str, Any]] = None) -> None:
        """
        添加命令处理器
        
        Args:
            name: 命令名称
            handler: 命令处理函数
            description: 命令描述
            required_args: 必需参数列表
            optional_args: 可选参数配置
        """
        self.register_command(name, description, required_args, optional_args)
        self.command_handlers[name] = handler
        # 重新创建parser以包含新命令
        from .parser import ArgumentParser
        self.parser = ArgumentParser(self.commands)
    
    def execute_command(self, command: str, args: Dict[str, Any]) -> Any:
        """执行命令"""
        if command not in self.command_handlers:
            raise ValueError(f"No handler for command: {command}")
        
        handler = self.command_handlers[command]
        return handler(**args)

# 便捷函数
def create_simple_commander(service_name: str) -> SimpleJSONRPCCommander:
    """创建简单的JSON-RPC Commander"""
    return SimpleJSONRPCCommander(service_name)
