from django.urls import path, include from . import views, views_search from rides.views import ParkSingleCategoryListView from .views_roadtrip import ( RoadTripPlannerView, CreateTripView, TripDetailView, FindParksAlongRouteView, GeocodeAddressView, ParkDistanceCalculatorView, ) app_name = "parks" urlpatterns = [ # Park views with autocomplete search path("", views_search.ParkSearchView.as_view(), name="park_list"), path("create/", views.ParkCreateView.as_view(), name="park_create"), # Add park button endpoint (moved before park detail pattern) path("add-park-button/", views.add_park_button, name="add_park_button"), # Location search endpoints path("search/location/", views.location_search, name="location_search"), path("search/reverse-geocode/", views.reverse_geocode, name="reverse_geocode"), # Areas and search endpoints for HTMX path("areas/", views.get_park_areas, name="get_park_areas"), path("suggest_parks/", views_search.suggest_parks, name="suggest_parks"), path("search/", views.search_parks, name="search_parks"), # Road trip planning URLs path("roadtrip/", RoadTripPlannerView.as_view(), name="roadtrip_planner"), path("roadtrip/create/", CreateTripView.as_view(), name="roadtrip_create"), path("roadtrip//", TripDetailView.as_view(), name="roadtrip_detail"), # Road trip HTMX endpoints path("roadtrip/htmx/parks-along-route/", FindParksAlongRouteView.as_view(), name="roadtrip_htmx_parks_along_route"), path("roadtrip/htmx/geocode/", GeocodeAddressView.as_view(), name="roadtrip_htmx_geocode"), path("roadtrip/htmx/distance/", ParkDistanceCalculatorView.as_view(), name="roadtrip_htmx_distance"), # Park detail and related views path("/", views.ParkDetailView.as_view(), name="park_detail"), path("/edit/", views.ParkUpdateView.as_view(), name="park_update"), path("/actions/", views.park_actions, name="park_actions"), # Area views path("/areas//", views.ParkAreaDetailView.as_view(), name="area_detail"), # Park-specific category URLs path("/roller_coasters/", ParkSingleCategoryListView.as_view(), {'category': 'RC'}, name="park_roller_coasters"), path("/dark_rides/", ParkSingleCategoryListView.as_view(), {'category': 'DR'}, name="park_dark_rides"), path("/flat_rides/", ParkSingleCategoryListView.as_view(), {'category': 'FR'}, name="park_flat_rides"), path("/water_rides/", ParkSingleCategoryListView.as_view(), {'category': 'WR'}, name="park_water_rides"), path("/transports/", ParkSingleCategoryListView.as_view(), {'category': 'TR'}, name="park_transports"), path("/others/", ParkSingleCategoryListView.as_view(), {'category': 'OT'}, name="park_others"), # Include park-specific rides URLs path("/rides/", include("rides.park_urls", namespace="rides")), ]