from django.urls import path
from .views import *

urlpatterns = [
    path(
        "locations/", LocationListCreateAPIView.as_view(), name="location-list-create"
    ),
    path(
        "locations/<int:id>/",
        LocationRetrieveUpdateDestroyAPIView.as_view(),
        name="location-detail",
    ),
    path("nearbylocations/", NearbyLocationsView.as_view(), name="nearby-locations"),
    path("estimate/", FareEstimationView.as_view(), name="fare-estimate"),
    path(
        "available-vehicles/",
        AvailableVehicleTypesView.as_view(),
        name="available-vehicles",
    ),
    path(
        "driver/update-location/",
        UpdateDriverLocationView.as_view(),
        name="update-driver-location",
    ),
    path("ride/accept/<int:ride_id>/", AcceptRideView.as_view(), name="accept-ride"),
    path("ride/reject/<int:ride_id>/", RejectRideView.as_view(), name="reject-ride"),
    path(
        "ride/driver-location/<int:ride_id>/",
        DriverLocationView.as_view(),
        name="driver-location",
    ),
    path("ride/start/<int:ride_id>/", StartRideView.as_view(), name="start-ride"),
    path("ride/end/<int:ride_id>/", EndRideView.as_view(), name="end-ride"),
    path("ride/detail/<int:ride_id>/", RideDetailView.as_view(), name="ride-detail"),
    path(
        "ride/approaching/<int:ride_id>/",
        EndRideView.as_view(),
        name="driver-approaching",
    ),
    path(
        "ride/arrived/<int:ride_id>/", RideDetailView.as_view(), name="driver-arrived"
    ),
    path("confirm-ride/", ConfirmRideView.as_view(), name="confirm-ride"),
    path(
        "driver/ride-detail/<int:ride_id>/",
        DriverRideDetailView.as_view(),
        name="ride-detail-driver",
    ),
    path("ride/list/", RideListView.as_view(), name="ride-list"),
    path("confirm/shared-ride/", CreateSharedRideView.as_view(), name="shared-ride"),
    path(
        "ride/list-shared-ride/",
        ListAvailableSharedRidesView.as_view(),
        name="shared-list",
    ),
    path("ride/join-shared/", JoinSharedRideView.as_view(), name="join-shared"),
    path("routes/create/", RouteCreateView.as_view(), name="route-create"),
    path(
        "routes/update/<int:route_id>/", RouteUpdateView.as_view(), name="route-update"
    ),
    path(
        "routes/delete/<int:route_id>/", RouteDeleteView.as_view(), name="route-delete"
    ),
    path("routes/list/", RouteListView.as_view(), name="route-list"),
    path(
        "scheduled/create/",
        ScheduledRideMasterCreateView.as_view(),
        name="scheduled-create",
    ),
    path(
        "scheduled/update/<int:id>/",
        ScheduledRideMasterUpdateView.as_view(),
        name="scheduled-update",
    ),
    path(
        "scheduled/delete/<int:id>/",
        ScheduledRideMasterDeleteView.as_view(),
        name="scheduled-delete",
    ),
    path(
        "scheduled/list/", ScheduledRideMasterListView.as_view(), name="scheduled-list"
    ),
    path('scheduled/rides/', ScheduledRideMobileListView.as_view(), name='ride-list'),
    path("scheduled/fare-estimate/", ScheduledFareEstimationView.as_view(), name="scheduled-fare-estimate"),
    path("scheduled/join/", JoinScheduledRideView.as_view(), name="scheduled-join"),
]
