"""环境变量配置模块"""

import os
from typing import Optional


def get_database_id(default: str = "29") -> str:
    """
    获取数据库ID环境变量
    
    Args:
        default: 默认值（默认为 "29"）
        
    Returns:
        str: 数据库ID
        
    Environment Variables:
        databaseId: 数据库ID
    """
    return os.environ.get("databaseId", default)


def get_datasource_id(default: str = "") -> str:
    """
    获取数据源ID环境变量
    
    Args:
        default: 默认值（默认为 ""）
        
    Returns:
        str: 数据源ID
        
    Environment Variables:
        datasourceId: 数据源ID
    """
    return os.environ.get("datasourceId", default)


def get_skill_id(default: str = "") -> str:
    """
    获取技能ID环境变量
    
    Args:
        default: 默认值（默认为 ""）
        
    Returns:
        str: 技能ID
        
    Environment Variables:
        skillId: 技能ID
    """
    return os.environ.get("skillId", default)


def get_backend_base_url(default: str = "http://lzwcai-demp-corp-manager:8086") -> str:
    """
    获取后端API基础URL环境变量
    
    Args:
        default: 默认值（默认为 "http://lzwcai-demp-corp-manager:8086"）
        
    Returns:
        str: 后端API基础URL
        
    Environment Variables:
        backendBaseUrl: 后端API基础URL
    """
    return os.environ.get("backendBaseUrl", default)


def get_env_config() -> dict:
    """
    获取所有环境配置
    
    Returns:
        dict: 包含所有配置的字典
        
    Example:
        config = get_env_config()
        print(config['database_id'])       # 输出: "29"
        print(config['datasource_id'])     # 输出: ""
        print(config['skill_id'])          # 输出: ""
        print(config['backend_base_url'])  # 输出: "http://lzwcai-demp-corp-manager:8086"
    """
    return {
        "database_id": get_database_id(),
        "datasource_id": get_datasource_id(),
        "skill_id": get_skill_id(),
        "backend_base_url": get_backend_base_url()
    }


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

