"""PostgreSQL MCP工具全局管理器"""
from loguru import logger
from typing import Optional
from th_agenter.services.mcp.postgresql_mcp import PostgreSQLMCPTool

class PostgreSQLToolManager:
    """PostgreSQL工具全局单例管理器"""
    
    _instance: Optional['PostgreSQLToolManager'] = None
    _postgresql_tool: Optional[PostgreSQLMCPTool] = None
    
    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance
    
    @property
    def postgresql_tool(self) -> PostgreSQLMCPTool:
        """获取PostgreSQL工具实例"""
        if self._postgresql_tool is None:
            self._postgresql_tool = PostgreSQLMCPTool()
            logger.info("创建全局PostgreSQL工具实例")
        return self._postgresql_tool
    
    def get_tool(self) -> PostgreSQLMCPTool:
        """获取PostgreSQL工具实例（别名方法）"""
        return self.postgresql_tool


# 全局实例
postgresql_tool_manager = PostgreSQLToolManager()


def get_postgresql_tool() -> PostgreSQLMCPTool:
    """获取全局PostgreSQL工具实例"""
    return postgresql_tool_manager.get_tool()