from django.urls import path, include from . import views, views_search from apps.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.ParkListView.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("apps.rides.park_urls", namespace="rides"), ), ]