from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView
from rest_framework.permissions import AllowAny

urlpatterns = [
    path("admin/", admin.site.urls),

    # API routes
    path("api/", include("apps.core.urls")),
    path("api/", include("apps.hr.urls")),
    path("api/", include("apps.projects.urls")),
    path("api/", include("apps.events.urls")),
    path("api/", include("apps.meetings.urls")),
    path("api/", include("apps.tasks.urls")),
    path("api/", include("apps.asset_management.urls")),
    path("api/", include("apps.procurements.urls")),
    path("api/", include("apps.administrations.urls")),
    path("api/", include("apps.publications.urls")),
    path("api/", include("apps.contacts.urls")),
    path("api/", include("apps.companies.urls")),
    path("api/", include("apps.activities.urls")),
    path("api/chat/", include("apps.chat.urls")),
    path("api/", include("apps.tools.urls")),
    path("api/", include("apps.notifications.urls")),
    path("api/", include("apps.analytics.urls")),
    path("api/", include("apps.disseminations.urls")),
    path("api/", include("apps.finance.urls")),

    # API Documentation — schema endpoints stay public for client tooling
    path("api/schema/", SpectacularAPIView.as_view(permission_classes=[AllowAny]), name="schema"),
    path("api/redoc/", SpectacularRedocView.as_view(permission_classes=[AllowAny]), name="redoc"),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)