"""Comprehensive URL routes for Parks domain (API v1). This file exposes a maximal set of "full-fat" endpoints implemented in `apps.api.v1.parks.park_views` and `apps.api.v1.parks.views`. Endpoints are intentionally expansive to match the rides API functionality and provide complete feature parity for parks management. """ from django.urls import path, include from rest_framework.routers import DefaultRouter from .park_views import ( ParkListCreateAPIView, ParkDetailAPIView, FilterOptionsAPIView, CompanySearchAPIView, ParkSearchSuggestionsAPIView, ParkImageSettingsAPIView, ) from .park_rides_views import ParkRidesListAPIView, ParkRideDetailAPIView, ParkDetailAPIView as ParkComprehensiveDetailAPIView from .views import ParkPhotoViewSet # Create router for nested photo endpoints router = DefaultRouter() router.register(r"", ParkPhotoViewSet, basename="park-photo") app_name = "api_v1_parks" urlpatterns = [ # Core list/create endpoints path("", ParkListCreateAPIView.as_view(), name="park-list-create"), # Filter options path("filter-options/", FilterOptionsAPIView.as_view(), name="park-filter-options"), # Autocomplete / suggestion endpoints path( "search/companies/", CompanySearchAPIView.as_view(), name="park-search-companies", ), path( "search-suggestions/", ParkSearchSuggestionsAPIView.as_view(), name="park-search-suggestions", ), # Detail and action endpoints - supports both ID and slug path("/", ParkDetailAPIView.as_view(), name="park-detail"), # Park rides endpoint - list rides at a specific park path("/rides/", ParkRidesListAPIView.as_view(), name="park-rides-list"), # Park ride detail endpoint - get comprehensive details for a specific ride at a park path("/rides//", ParkRideDetailAPIView.as_view(), name="park-ride-detail"), # Park comprehensive detail endpoint - get all possible detail about a park path("/detail/", ParkComprehensiveDetailAPIView.as_view(), name="park-comprehensive-detail"), # Park image settings endpoint path( "/image-settings/", ParkImageSettingsAPIView.as_view(), name="park-image-settings", ), # Park photo endpoints - domain-specific photo management path("/photos/", include(router.urls)), ]