"""环境变量配置模块 - 数据库管理平台 MCP Server"""

import os
from typing import Optional


def get_api_key(default: Optional[str] = None) -> str:
    """
    获取数据库管理平台 API 密钥
    
    Args:
        default: 默认值（可选）
        
    Returns:
        str: API 密钥
        
    Raises:
        ValueError: 当 AGILE_DB_API_KEY 未设置且无默认值时
    """
    value = os.environ.get("AGILE_DB_API_KEY", default or "")
    if not value:
        raise ValueError("环境变量 AGILE_DB_API_KEY 未设置")
    return value


def get_base_url(default: str = "http://localhost:8080") -> str:
    """
    获取数据库管理平台后端地址
    
    Args:
        default: 默认值（默认 http://localhost:8080）
        
    Returns:
        str: 后端 API 基础 URL
    """
    return os.environ.get("AGILE_DB_BASE_URL", default)


def get_env_config() -> dict:
    """
    获取所有环境配置
    
    Returns:
        dict: 包含所有配置的字典
    """
    return {
        "api_key": get_api_key(""),
        "base_url": get_base_url(),
    }


def set_env_variable(key: str, value: str) -> None:
    """
    设置环境变量（仅在当前进程中有效）
    
    Args:
        key: 环境变量名
        value: 环境变量值
    """
    os.environ[key] = value
