# -*- coding: utf-8 -*-
"""
URL configuration for the PUBLIC schema (inventory.by domain).

This is the main domain where:
- PlatformAdmin can access admin panel and dashboard
- Tenant registration is available
- Password setup for new tenant owners

IMPORTANT: На public домене НЕ работает аутентификация CustomUser!
CustomUser живёт в tenant schemas и доступен только на tenant доменах.
"""
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.urls import re_path
from django.views.static import serve

urlpatterns = [
    # Django Admin для PlatformAdmin
    path('admin/', admin.site.urls),

    # Панель управления платформой (login/logout/dashboard для PlatformAdmin)
    path('platform/', include('platform_admin.urls')),

    # Регистрация тенантов (/, /register/, /register/success/)
    path('', include('tenants.urls')),

    # Установка пароля владельцами тенантов (только setup-password)
    # НЕ включаем полный accounts.urls - на public домене нельзя логиниться как CustomUser
    path('accounts/', include('accounts.urls')),
]

# Serve media files in development
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    
    # Django Debug Toolbar (только если включено в настройках)
    if getattr(settings, 'DEBUG_TOOLBAR_ENABLED', False):
        import debug_toolbar
        urlpatterns += [
            path('__debug__/', include(debug_toolbar.urls)),
        ]
else:
    # Force serve media files in production (for NAS setup)
    urlpatterns += [
        re_path(r'^media/(?P<path>.*)$', serve, {
            'document_root': settings.MEDIA_ROOT,
        }),
    ]
    # Fallback для статических файлов в production (если nginx не настроен или не может прочитать файлы)
    urlpatterns += [
        re_path(r'^static/(?P<path>.*)$', serve, {
            'document_root': settings.STATIC_ROOT,
        }),
    ]
