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

import os
from typing import Optional


def get_workflow_id(default: str = "") -> str:
    """
    获取工作流ID环境变量
    
    Args:
        default: 默认值（默认为 ""）
        
    Returns:
        str: 工作流ID
        
    Environment Variables:
        workflowId: 工作流ID
    """
    return os.environ.get("workflowId", 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_workflow_execute_key(default: str = "") -> str:
    """
    获取工作流执行密钥（Token）环境变量
    
    Args:
        default: 默认值（默认为 ""）
        
    Returns:
        str: 工作流执行密钥
        
    Environment Variables:
        workflowExecuteKey: 工作流执行密钥/Token
    """
    return os.environ.get("workflowExecuteKey", default)


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


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