"""
Утилиты для работы с URL в Django backend
"""
import os
from django.conf import settings


def get_backend_url():
    """Получить базовый URL backend из настроек"""
    protocol = os.getenv('DJANGO_BACKEND_PROTOCOL', 'https')
    domain = os.getenv('DJANGO_BACKEND_DOMAIN', 'links.shareon.kr')
    return f"{protocol}://{domain}"


def get_media_base_url():
    """Получить базовый URL для медиа файлов"""
    return get_backend_url()  # Используем тот же базовый URL


def build_absolute_url(path):
    """Построить абсолютный URL для пути"""
    base_url = get_backend_url()
    if not path.startswith('/'):
        path = '/' + path
    return f"{base_url.rstrip('/')}{path}"


def build_media_url(media_path):
    """Построить абсолютный URL для медиа файла"""
    if not media_path:
        return None
        
    base_url = get_media_base_url()
    if not media_path.startswith('/'):
        media_path = '/' + media_path
    return f"{base_url.rstrip('/')}{media_path}"


def normalize_file_url(file_url):
    """
    Нормализация URL файлов - заменяет внутренние Docker URL на внешние
    """
    if not file_url:
        return file_url
    
    base_url = get_backend_url()
    
    # Список внутренних URL для замены
    internal_urls = [
        'http://web:8000',
        'http://links-web-1:8000', 
        'http://backend:8000',
        'http://localhost:8000',
        'http://links.shareon.kr'  # Заменяем HTTP на HTTPS
    ]
    
    # Заменяем все внутренние URL на внешний
    for internal_url in internal_urls:
        if internal_url in file_url:
            file_url = file_url.replace(internal_url, base_url.rstrip('/'))
    
    return file_url