from django.urls import path

from . import api_views, views

app_name = 'market'

urlpatterns = [
    path('', views.home, name='home'),
    path('set-language/', views.set_language, name='set_language'),
    path('plan-order/', views.plan_order, name='plan_order'),
    path('market/', views.market, name='market'),
    path('market/toggle-business-mode/', views.toggle_business_mode, name='toggle_business_mode'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
    path('terms/', views.legal_policy, {'policy_type': 'terms'}, name='terms'),
    path('privacy/', views.legal_policy, {'policy_type': 'privacy'}, name='privacy'),
    path('cookies/', views.legal_policy, {'policy_type': 'cookies'}, name='cookies'),

    path('cart/', views.cart_view, name='cart'),
    path('cart/add/<int:product_id>/', views.add_to_cart, name='add_to_cart'),
    path('cart/update/<int:cart_item_id>/', views.update_cart_item, name='update_cart_item'),

    path('checkout/location/', views.checkout_location, name='checkout_location'),
    path('checkout/provider/', views.checkout_provider, name='checkout_provider'),
    path('checkout/picker/', views.checkout_picker, name='checkout_picker'),
    path('checkout/schedule/', views.checkout_schedule, name='checkout_schedule'),

    path('orders/', views.order_list, name='order_list'),
    path('orders/<int:order_id>/', views.order_detail, name='order_detail'),
    path('orders/<int:order_id>/invoice/', views.order_invoice, name='order_invoice'),
    path('orders/<int:order_id>/reorder/', views.reorder, name='reorder'),
    path('orders/<int:order_id>/message/', views.order_send_message, name='order_send_message'),
    path('orders/<int:order_id>/messages/', views.order_messages_poll, name='order_messages_poll'),
    path('orders/<int:order_id>/track/', views.order_track_location, name='order_track_location'),
    path('orders/<int:order_id>/rate/', views.order_submit_rating, name='order_submit_rating'),

    path('plans/', views.saved_plans_list, name='saved_plans'),
    path('plans/<int:plan_id>/convert/', views.plan_convert_to_cart, name='plan_convert_to_cart'),
    path('plans/<int:plan_id>/delete/', views.plan_delete, name='plan_delete'),

    path('spending/', views.spending, name='spending'),

    path('shopping-guide/', views.shopping_guide, name='shopping_guide'),

    path('my-data/', views.my_data, name='my_data'),
    path('my-data/clear-chat/', views.my_data_clear_chat, name='my_data_clear_chat'),
    path('my-data/clear-memory/', views.my_data_clear_memory, name='my_data_clear_memory'),
    path('my-data/delete-plans/', views.my_data_delete_plans, name='my_data_delete_plans'),

    path('profile/edit/', views.profile_edit, name='profile_edit'),
    path('profile/edit/save-named-location/<str:kind>/', views.profile_save_named_location, name='profile_save_named_location'),
    path('account/settings/', views.account_settings, name='account_settings'),
    path('account/settings/delete/', views.delete_account, name='delete_account'),

    path('fleet/register/', views.fleet_register, name='fleet_register'),
    path('fleet/region/', views.fleet_update_region, name='fleet_update_region'),
    path('fleet/dashboard/', views.fleet_dashboard, name='fleet_dashboard'),
    path('fleet/live-positions/', views.fleet_live_positions, name='fleet_live_positions'),
    path('fleet/drivers/<int:driver_id>/track/', views.fleet_track_driver, name='fleet_track_driver'),
    path('fleet/drivers/<int:driver_id>/track/data/', views.fleet_track_driver_data, name='fleet_track_driver_data'),
    path('fleet/ai-insights/', views.fleet_ai_insights, name='fleet_ai_insights'),
    path('fleet/drivers/<int:driver_id>/message/', views.fleet_message_send, name='fleet_message_send'),
    path('fleet/drivers/<int:driver_id>/messages/', views.fleet_message_poll, name='fleet_message_poll'),
    path('fleet/trucks/add/', views.fleet_add_truck, name='fleet_add_truck'),
    path('fleet/trucks/<int:truck_id>/edit/', views.fleet_edit_truck, name='fleet_edit_truck'),
    path('fleet/trucks/<int:truck_id>/toggle/', views.fleet_toggle_truck, name='fleet_toggle_truck'),
    path('fleet/signoff-templates/create/', views.fleet_create_signoff_template, name='fleet_create_signoff_template'),
    path('fleet/signoff-templates/<int:template_id>/update/', views.fleet_update_signoff_template, name='fleet_update_signoff_template'),
    path('fleet/signoff-templates/<int:template_id>/toggle/', views.fleet_toggle_signoff_template, name='fleet_toggle_signoff_template'),
    path('fleet/drivers/invite/', views.fleet_invite_driver, name='fleet_invite_driver'),
    path('fleet/drivers/<int:driver_id>/reassign/', views.fleet_reassign_driver, name='fleet_reassign_driver'),
    path('fleet/orders/<int:order_id>/assign/', views.fleet_assign_driver, name='fleet_assign_driver'),
    path('fleet/request-payout/', views.fleet_request_payout, name='fleet_request_payout'),
    path('fleet/vendors/register/', views.fleet_register_vendor, name='fleet_register_vendor'),
    path('fleet/vendors/<str:vendor_type>/<int:vendor_id>/receive-stock/', views.fleet_receive_stock, name='fleet_receive_stock'),
    path('fleet/vendors/<str:vendor_type>/<int:vendor_id>/products/create/', views.fleet_create_product, name='fleet_create_product'),

    path('account/api-subscription/request/', views.request_api_subscription_view, name='request_api_subscription'),
    path('account/api-keys/generate/', views.generate_api_key_view, name='generate_api_key'),
    path('account/api-keys/<int:key_id>/revoke/', views.revoke_api_key_view, name='revoke_api_key'),

    path('api/v1/catalog/', api_views.catalog, name='api_catalog'),
    path('api/v1/orders/<int:order_id>/status/', api_views.order_status, name='api_order_status'),
    path('api/v1/truck-types/', api_views.truck_types, name='api_truck_types'),
    path('api/v1/fleet/trucks/', api_views.fleet_trucks, name='api_fleet_trucks'),
    path('api/v1/fleet/orders/', api_views.fleet_orders, name='api_fleet_orders'),
    path('api/v1/fleet/earnings/', api_views.fleet_earnings, name='api_fleet_earnings'),

    path('assistant/cook/', views.cook_assistant, name='cook_assistant'),
    path('assistant/cook/add/', views.cook_assistant_add_to_cart, name='cook_assistant_add_to_cart'),
    path('assistant/chat/message/', views.chat_message, name='chat_message'),
    path('assistant/chat/reset/', views.chat_reset, name='chat_reset'),
    path('assistant/chat/history/', views.chat_history_load, name='chat_history_load'),
    path('assistant/chat/clear-memory/', views.chat_clear_memory, name='chat_clear_memory'),

    path('api/fuzzy-area/', views.fuzzy_area_search, name='fuzzy_area_search'),
    path('api/nearby-amenities/', views.nearby_amenities, name='nearby_amenities'),
    path('api/search-amenities/', views.search_amenities, name='search_amenities'),
    path('api/location-search/', views.location_search, name='location_search'),
    path('api/region-search/', views.region_search, name='region_search'),
    path('api/market-search-suggestions/', views.market_search_suggestions, name='market_search_suggestions'),
    path('api/reverse-geocode/', views.reverse_geocode_view, name='reverse_geocode_view'),
    path('api/reverse-geocode-components/', views.reverse_geocode_components_view, name='reverse_geocode_components_view'),
    path('api/traffic-tile/<int:z>/<int:x>/<int:y>/', views.traffic_tile_proxy, name='traffic_tile_proxy'),
    path('api/weather/', views.weather_data, name='weather_data'),

    path('service-worker.js', views.service_worker, name='service_worker'),
    path('push/subscribe/', views.push_subscribe, name='push_subscribe'),
    path('push/unsubscribe/', views.push_unsubscribe, name='push_unsubscribe'),
]
