"""
URL configuration for config project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/6.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
from rest_framework.permissions import IsAdminUser
from rest_framework.authentication import SessionAuthentication
from users.authentication import AccountJWTAuthentication

urlpatterns = [
    path('admin/', admin.site.urls),
    path('health/', include('core_runtime.urls')),
    path('api/v1/users/', include('users.urls')),
    path('api/v1/experience/', include('game_experience.urls')),
    path("api/v1/meta/", include("api_core.urls")),
    path("api/v1/economy/", include("economy.urls")),
    path('api/schema/', SpectacularAPIView.as_view(permission_classes=[IsAdminUser], authentication_classes=[SessionAuthentication, AccountJWTAuthentication]), name='schema'),
    path('api/docs/', SpectacularSwaggerView.as_view(url_name='schema', permission_classes=[IsAdminUser], authentication_classes=[SessionAuthentication, AccountJWTAuthentication]), name='swagger-ui'),
    path("api/v1/careers/", include("careers.urls")),
    path("api/v1/matches/", include("matches.urls")),
    path("api/v1/players/", include("players.urls")),
    path("api/v1/assets/", include("asset_registry.urls")),
    path("api/v1/club-ownership/", include("club_ownership.urls")),
    path("api/v1/marketplace/", include("marketplace.urls")),
    path("api/v1/club-assets/", include("club_assets.urls")),
    path("api/v1/club-commercial/", include("club_commercial.urls")),
    path("api/v1/club-finance/", include("club_finance.urls")),
    path("api/v1/club-payroll/", include("club_payroll.urls")),
    path("api/v1/club-debt/", include("club_debt.urls")),
    path("api/v1/club-licensing/", include("club_licensing.urls")),
    path("api/v1/competition-reallocation/", include("competition_reallocation.urls")),
    path("api/v1/regulatory-appeals/", include("regulatory_appeals.urls")),
    path("api/v1/mother-appeals/", include("mother_appeals.urls")),
    path("api/v1/season-ratification/", include("season_ratification.urls")),
    path("api/v1/official-history/", include("official_history.urls")),
    path("api/v1/federation-rankings/", include("federation_rankings.urls")),
    path("api/v1/historical-movements/", include("historical_movements.urls")),
    path("api/v1/competition-entry-rights/", include("competition_entry_rights.urls")),
    path("api/v1/competition-draw-governance/", include("competition_draw_governance.urls")),
    path("api/v1/competition-calendar-governance/", include("competition_calendar_governance.urls")),
    path("api/v1/match-officials-governance/", include("match_officials_governance.urls")),
    path("api/v1/match-result-governance/", include("match_result_governance.urls")),
    path("api/v1/replay-execution/", include("replay_execution.urls")),
    path("api/v1/federation-rulebook/", include("federation_rulebook.urls")),
    path("api/v1/regulatory-evidence/", include("regulatory_evidence.urls")),
    path("api/v1/competition-registration/", include("competition_registration.urls")),
    path("api/v1/player-loans/", include("player_loans.urls")),
    path("api/v1/clubs/", include("clubs.urls")),
    path("api/v1/contracts/", include("contracts.urls")),
    path("api/v1/transfers/", include("transfers.urls")),
    path("api/v1/leagues/", include("leagues.urls")),
    path("api/v1/seasons/", include("seasons.urls")),
    path("api/v1/academy/", include("academy.urls")),
    path("api/v1/staff/", include("staff.urls")),
    path("api/v1/training/", include("training.urls")),
    path("api/v1/federations/", include("federations.urls")),
    path("api/v1/injuries/", include("injuries.urls")),
    path("api/v1/nutrition/", include("nutrition.urls")),
    path("api/v1/statistics/", include("game_statistics.urls")),
    path("api/v1/notifications/", include("notifications.urls")),
]
