"""HTTP utils"""

import re


def build_base_url(endpoint: str) -> str:
    """
    构建基础 URL

    如果 endpoint 已经包含协议（http:// 或 https://），则直接返回；
    否则添加 http:// 前缀。协议检查是大小写不敏感的。

    Args:
        endpoint: 端点地址，可以是带协议或不带协议的地址

    Returns:
        str: 完整的基础 URL

    Examples:
        >>> build_base_url("http://example.com")
        'http://example.com'
        >>> build_base_url("https://example.com")
        'https://example.com'
        >>> build_base_url("HTTP://example.com/API/Users")
        'HTTP://example.com/API/Users'
        >>> build_base_url("example.com")
        'http://example.com'
        >>> build_base_url("10.40.77.77:8777")
        'http://10.40.77.77:8777'
        >>> build_base_url("example.com/API/Users")
        'http://example.com/API/Users'
    """
    # 使用正则表达式进行大小写不敏感的协议匹配
    # 只检查开头的协议部分，不影响后续的路径
    if re.match(r"^https?://", endpoint, re.IGNORECASE):
        return endpoint
    return f"http://{endpoint}"
