# -*- coding: utf-8 -*-
"""
Adtlas Core URL Configuration

This module defines the main URL routing for the Adtlas DAI Management System. 
including all app URLs, admin interface, static/media files,
and error handlers.

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/5.2/topics/http/urls/

URL Structure:
    - / : Core app (landing pages, dashboard)
    - /admin/ : Django admin interface
    - /accounts/ : User management and profiles
    - /auth/ : Authentication and authorization
    - /api/ : API endpoints

Features:
    - Comprehensive URL routing for all apps
    - Static and media file serving in development
    - Custom error handlers
    - API versioning support
    - Internationalization support

"""

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static 

from apps.core.api.v1.views import health_check

# Main URL patterns (language-independent)
urlpatterns = [
    path('activities/', include('apps.activities.urls')),
    # Django Admin Interface
    path("admin/", admin.site.urls, name="admin"), 
    # Health check endpoint for Docker
    path("health", health_check, name="health_check"), 

    
    # Core application URLs
    path("", include("apps.core.urls", namespace="core")),   
    # Authentication application URLs
    path("auth/", include("apps.authentication.urls", namespace="auth")),
    # Accounts application URLs
    path("accounts/", include("apps.accounts.urls", namespace="accounts")), 
    # Campaigns application URLs
    path("campaigns/", include("apps.campaigns.urls", namespace="campaigns")),
    # Advertisers application URLs
    path("advertisers/", include("apps.advertisers.urls", namespace="advertisers")),
    # Channels application URLs
    path("channels/", include("apps.channels.urls", namespace="channels")),
    # Playlists application URLs
    path("playlists/", include("apps.playlists.urls", namespace="playlists")),
    # Analytics application URLs
    path("analytics/", include("apps.analytics.urls", namespace="analytics")),
    # VAST application URLs
    path("vast/", include("apps.vast.urls", namespace="vast")), 
    # # API URLs
    # path("api/v1/", include("apps.core.api.urls", namespace="api")),
]

# 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)

# Custom error handlers
handler404 = "apps.core.views.handler404"
handler500 = "apps.core.views.handler500"
handler403 = "apps.core.views.handler403"
handler400 = "apps.core.views.handler400"

# Admin site customization
admin.site.site_header = "Adtlas Administration"
admin.site.site_title = "Adtlas Admin Portal"
admin.site.index_title = "Welcome to Adtlas Administration Portal"