mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 02:11:08 -05:00
- Introduced Next.js integration guide for ThrillWiki API, detailing authentication, core domain APIs, data structures, and implementation patterns. - Documented the migration to Rich Choice Objects, highlighting changes for frontend developers and enhanced metadata availability. - Fixed the missing `get_by_slug` method in the Ride model, ensuring proper functionality of ride detail endpoints. - Created a test script to verify manufacturer syncing with ride models, ensuring data integrity across related models.
73 lines
2.5 KiB
Python
73 lines
2.5 KiB
Python
"""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,
|
|
ParkComprehensiveDetailAPIView,
|
|
)
|
|
from .views import ParkPhotoViewSet, HybridParkAPIView, ParkFilterMetadataAPIView
|
|
|
|
# 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"),
|
|
|
|
# Hybrid filtering endpoints
|
|
path("hybrid/", HybridParkAPIView.as_view(), name="park-hybrid-list"),
|
|
path("hybrid/filter-metadata/", ParkFilterMetadataAPIView.as_view(), name="park-hybrid-filter-metadata"),
|
|
|
|
# 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("<str:pk>/", ParkDetailAPIView.as_view(), name="park-detail"),
|
|
|
|
# Park rides endpoints
|
|
path("<str:park_slug>/rides/", ParkRidesListAPIView.as_view(), name="park-rides-list"),
|
|
path("<str:park_slug>/rides/<str:ride_slug>/", ParkRideDetailAPIView.as_view(), name="park-ride-detail"),
|
|
|
|
# Comprehensive park detail endpoint with rides summary
|
|
path("<str:park_slug>/detail/", ParkComprehensiveDetailAPIView.as_view(), name="park-comprehensive-detail"),
|
|
|
|
# Park image settings endpoint
|
|
path(
|
|
"<int:pk>/image-settings/",
|
|
ParkImageSettingsAPIView.as_view(),
|
|
name="park-image-settings",
|
|
),
|
|
# Park photo endpoints - domain-specific photo management
|
|
path("<int:park_pk>/photos/", include(router.urls)),
|
|
]
|