from django.urls import path
from . import views

urlpatterns = [
    # Public views
    path('', views.home_view, name='home'),
    path('pricing/', views.pricing_view, name='pricing'),
    path('contact/', views.contact_view, name='contact'),
    path('login/', views.login_view, name='login'),
    path('logout/', views.logout_view, name='logout'),
    
    # Superuser Console views
    path('superuser/', views.superuser_dashboard, name='superuser_dashboard'),
    path('superuser/company/create/', views.company_create, name='superuser_company_create'),
    path('superuser/company/<int:pk>/edit/', views.company_edit, name='superuser_company_edit'),
    path('superuser/company/<int:pk>/delete/', views.company_delete, name='superuser_company_delete'),
    path('superuser/company/<int:pk>/test/', views.company_test, name='superuser_company_test'),
    path('superuser/clients/', views.superuser_client_list, name='superuser_client_list'),
    path('superuser/clients/<int:company_id>/test-fb/', views.superuser_test_single_fb, name='superuser_test_single_fb'),
    path('superuser/clients/test-all-fb/', views.superuser_test_all_fb, name='superuser_test_all_fb'),
    path('superuser/company/<int:pk>/chat-api/', views.company_chat_api, name='superuser_company_chat_api'),
    path('superuser/company/test-sitemap/', views.test_sitemap_view, name='superuser_test_sitemap'),
    path('superuser/company/<int:company_id>/test-facebook-connection/', views.test_facebook_connection, name='test_facebook_connection'),
    path('superuser/company/<int:company_id>/test-whatsapp-connection/', views.test_whatsapp_connection, name='test_whatsapp_connection'),
    path('superuser/company/<int:company_id>/send-test-facebook-message/', views.send_test_facebook_message, name='send_test_facebook_message'),
    path('superuser/company/<int:company_id>/send-test-whatsapp-message/', views.send_test_whatsapp_message, name='send_test_whatsapp_message'),
    path('superuser/company/<int:company_id>/test-ecom-connection/', views.test_ecom_connection, name='superuser_test_ecom_connection'),
    path('superuser/company/<int:company_id>/test-google-sheet/', views.test_google_sheet_connection, name='superuser_test_google_sheet_connection'),
    path('superuser/topics/', views.superuser_topic_list, name='superuser_topic_list'),
    path('superuser/topics/<int:pk>/delete/', views.superuser_topic_delete, name='superuser_topic_delete'),
    path('superuser/models/', views.superuser_model_list, name='superuser_model_list'),
    path('superuser/models/create/', views.superuser_model_create, name='superuser_model_create'),
    path('superuser/models/<int:pk>/edit/', views.superuser_model_edit, name='superuser_model_edit'),
    path('superuser/models/<int:pk>/delete/', views.superuser_model_delete, name='superuser_model_delete'),
    path('superuser/packages/', views.superuser_package_list, name='superuser_package_list'),
    path('superuser/packages/create/', views.superuser_package_create, name='superuser_package_create'),
    path('superuser/packages/<int:pk>/edit/', views.superuser_package_edit, name='superuser_package_edit'),
    path('superuser/packages/<int:pk>/delete/', views.superuser_package_delete, name='superuser_package_delete'),
    
    # Client Admin Console views
    path('company-admin/', views.admin_dashboard, name='admin_dashboard'),
    path('company-admin/settings/', views.admin_company_settings, name='admin_company_settings'),
    path('company-admin/toggle-ai-agent/', views.admin_toggle_ai_agent, name='admin_toggle_ai_agent'),
    path('update-password/', views.update_password_view, name='update_password'),
    path('company-admin/test-sitemap/', views.test_sitemap_view, name='admin_test_sitemap'),
    path('company-admin/faqs/', views.admin_faq_list, name='admin_faq_list'),
    path('company-admin/faqs/create/', views.admin_faq_create, name='admin_faq_create'),
    path('company-admin/faqs/<int:pk>/edit/', views.admin_faq_edit, name='admin_faq_edit'),
    path('company-admin/faqs/<int:pk>/delete/', views.admin_faq_delete, name='admin_faq_delete'),
    path('company-admin/custom-parameters/', views.admin_custom_parameter_list, name='admin_custom_parameter_list'),
    path('company-admin/custom-parameters/create/', views.admin_custom_parameter_create, name='admin_custom_parameter_create'),
    path('company-admin/custom-parameters/<int:pk>/edit/', views.admin_custom_parameter_edit, name='admin_custom_parameter_edit'),
    path('company-admin/custom-parameters/<int:pk>/delete/', views.admin_custom_parameter_delete, name='admin_custom_parameter_delete'),
    path('company-admin/quick-types/', views.admin_quicktype_list, name='admin_quicktype_list'),
    path('company-admin/quick-types/create/', views.admin_quicktype_create, name='admin_quicktype_create'),
    path('company-admin/quick-types/<int:pk>/edit/', views.admin_quicktype_edit, name='admin_quicktype_edit'),
    path('company-admin/quick-types/<int:pk>/delete/', views.admin_quicktype_delete, name='admin_quicktype_delete'),
    path('company-admin/theme/', views.admin_theme_settings, name='admin_theme_settings'),
    path('company-admin/widget/', views.admin_widget_view, name='admin_widget_view'),
    path('company-admin/widget/preview/', views.admin_widget_preview, name='admin_widget_preview'),
    path('company-admin/test-ecom-connection/<int:company_id>/', views.test_ecom_connection, name='admin_test_ecom_connection'),
    path('company-admin/agents/', views.admin_agent_list, name='admin_agent_list'),
    path('company-admin/agents/create/', views.admin_agent_create, name='admin_agent_create'),
    path('company-admin/agents/<int:pk>/edit/', views.admin_agent_edit, name='admin_agent_edit'),
    path('company-admin/agents/<int:pk>/delete/', views.admin_agent_delete, name='admin_agent_delete'),
    
    # Media Management URLs
    path('company-admin/media/', views.admin_media_list, name='admin_media_list'),
    path('company-admin/media/create/', views.admin_media_create, name='admin_media_create'),
    path('company-admin/media/<int:pk>/edit/', views.admin_media_edit, name='admin_media_edit'),
    path('company-admin/media/<int:pk>/delete/', views.admin_media_delete, name='admin_media_delete'),

    # Custom Form Builder URLs
    path('company-admin/forms/', views.admin_form_list, name='admin_form_list'),
    path('company-admin/forms/create/', views.admin_form_create, name='admin_form_create'),
    path('company-admin/forms/<int:pk>/edit/', views.admin_form_edit, name='admin_form_edit'),
    path('company-admin/forms/<int:pk>/delete/', views.admin_form_delete, name='admin_form_delete'),

    # Form Submissions URLs
    path('company-admin/submissions/', views.admin_submission_list, name='admin_submission_list'),
    path('company-admin/submissions/<int:pk>/', views.admin_submission_detail, name='admin_submission_detail'),
    path('company-admin/submissions/<int:pk>/status/', views.admin_submission_update_status, name='admin_submission_update_status'),

    # Admin Messages console URLs
    path('company-admin/messages/', views.admin_messages_dashboard, name='admin_messages_dashboard'),
    path('company-admin/messages/escalations/<int:pk>/claim/', views.admin_claim_escalation_to_chat, name='admin_claim_escalation_to_chat'),
    path('company-admin/messages/escalations/pending/', views.admin_pending_escalations, name='admin_pending_escalations'),
    path('company-admin/messages/chat/<str:visitor_id>/', views.admin_chat, name='admin_chat'),
    path('company-admin/messages/chat/<str:visitor_id>/send/', views.admin_chat_send_message, name='admin_chat_send_message'),
    path('company-admin/messages/chat/<str:visitor_id>/typing/', views.admin_chat_update_typing_status, name='admin_chat_update_typing_status'),
    path('company-admin/messages/chat/<str:visitor_id>/release/', views.admin_chat_release_escalation, name='admin_chat_release_escalation'),
    path('company-admin/messages/chat/<str:visitor_id>/poll/', views.admin_chat_poll_messages, name='admin_chat_poll_messages'),
    path('company-admin/messages/chat/<str:visitor_id>/toggle-ai/', views.admin_chat_toggle_ai_mode, name='admin_chat_toggle_ai_mode'),
    path('company-admin/messages/chat/message/<int:message_id>/edit/', views.admin_chat_edit_message, name='admin_chat_edit_message'),
    path('company-admin/messages/chat/message/<int:message_id>/delete/', views.admin_chat_delete_message, name='admin_chat_delete_message'),

    # Voice Replies URLs
    path('company-admin/voice-replies/', views.admin_voice_reply_list, name='admin_voice_reply_list'),
    path('company-admin/voice-replies/create/', views.admin_voice_reply_create, name='admin_voice_reply_create'),
    path('company-admin/voice-replies/<int:pk>/edit/', views.admin_voice_reply_edit, name='admin_voice_reply_edit'),
    path('company-admin/voice-replies/<int:pk>/delete/', views.admin_voice_reply_delete, name='admin_voice_reply_delete'),


    # Agent Desk views
    path('agent/', views.agent_dashboard, name='agent_dashboard'),
    path('agent/escalations/<int:pk>/claim/', views.agent_claim_escalation, name='agent_claim_escalation'),
    path('agent/escalations/pending/', views.agent_get_pending_escalations, name='agent_pending_escalations'),
    path('agent/complaints/', views.agent_complaints, name='agent_complaints'),
    path('agent/complaints/<int:pk>/status/', views.agent_update_complaint_status, name='agent_update_complaint_status'),
    path('agent/submissions/', views.agent_submission_list, name='agent_submission_list'),
    path('agent/submissions/<int:pk>/', views.agent_submission_detail, name='agent_submission_detail'),
    path('agent/submissions/<int:pk>/status/', views.agent_submission_update_status, name='agent_submission_update_status'),
    path('agent/chat/<str:visitor_id>/', views.agent_chat, name='agent_chat'),
    path('agent/chat/<str:visitor_id>/send/', views.agent_send_message, name='agent_send_message'),
    path('agent/chat/<str:visitor_id>/typing/', views.agent_update_typing_status, name='agent_update_typing_status'),
    path('agent/chat/<str:visitor_id>/release/', views.agent_release_escalation, name='agent_release_escalation'),
    path('agent/chat/<str:visitor_id>/poll/', views.agent_poll_messages, name='agent_poll_messages'),
    path('agent/chat/<str:visitor_id>/toggle-ai/', views.agent_toggle_ai_mode, name='agent_toggle_ai_mode'),
    path('agent/facebook-comments/', views.agent_facebook_comments, name='agent_facebook_comments'),
    path('agent/facebook-comments/<int:comment_id>/reply/', views.agent_reply_facebook_comment, name='agent_reply_facebook_comment'),
    path('agent/search-suggestions/', views.agent_search_suggestions, name='agent_search_suggestions'),
    path('agent/chat/message/<int:message_id>/edit/', views.agent_edit_message, name='agent_edit_message'),
    path('agent/chat/message/<int:message_id>/delete/', views.agent_delete_message, name='agent_delete_message'),
    
    
    # Visitor Widget Integration views
    path('chatbot/widget.js', views.widget_js_view, name='chatbot_widget_js'),
    path('chatbot/iframe/<int:company_id>/', views.chatbot_iframe_view, name='chatbot_iframe'),
    path('chatbot/fullscreen/<int:company_id>/', views.chatbot_fullscreen_view, name='chatbot_fullscreen'),
    path('chatbot/iframe/<int:company_id>/chat-api/', views.chatbot_iframe_chat_api, name='chatbot_iframe_chat_api'),
    path('chatbot/iframe/<int:company_id>/theme/', views.chatbot_get_theme, name='chatbot_get_theme'),
    path('chatbot/iframe/<int:company_id>/set-agent/', views.chatbot_iframe_set_agent, name='chatbot_iframe_set_agent'),
    path('chatbot/iframe/<int:company_id>/poll-messages/', views.chatbot_poll_messages, name='chatbot_poll_messages'),
    path('chatbot/iframe/<int:company_id>/escalation-status/', views.chatbot_escalation_status, name='chatbot_escalation_status'),
    path('chatbot/iframe/<int:company_id>/agent-typing/', views.chatbot_get_agent_typing_status, name='chatbot_agent_typing_status'),
    path('company-admin/escalations/', views.admin_escalations_list, name='admin_escalations_list'),
    path('company-admin/escalations/<int:pk>/claim/', views.admin_claim_escalation, name='admin_claim_escalation'),
    path('company-admin/agents/<int:company_id>/send/', views.admin_agent_send_message, name='admin_agent_send_message'),
    
    # Webhooks
    path('webhooks/facebook/', views.facebook_webhook, name='facebook_webhook'),
    path('webhooks/whatsapp/', views.whatsapp_webhook, name='whatsapp_webhook'),
    
    # Privacy Policy
    path('privacy-policy/', views.privacy_policy_view, name='privacy_policy'),
    path('privacy-policy/logo.jpg', views.privacy_policy_logo_view, name='privacy_policy_logo'),
    path('superuser/privacy-policy/', views.superuser_privacy_policy, name='superuser_privacy_policy'),
    path('superuser/settings/', views.superuser_settings, name='superuser_settings'),
    path('superuser/site-config/', views.superuser_site_config, name='superuser_site_config'),
    path('superuser/monitor/', views.superuser_monitor, name='superuser_monitor'),
    path('superuser/monitor/webhook-test-logs/', views.superuser_monitor_webhook_logs, name='superuser_monitor_webhook_logs'),
    path('superuser/monitor/webhook-retry/<int:log_id>/', views.superuser_retry_ai_reply, name='superuser_retry_ai_reply'),
    path('superuser/monitor/fb-comments-log/', views.superuser_fb_comments_log, name='superuser_fb_comments_log'),
    path('superuser/ai-replies/', views.superuser_ai_replies, name='superuser_ai_replies'),
    path('developer/docs/', views.public_documentation, name='public_documentation'),
    path('developer/docs/test-api/', views.public_test_developer_api, name='public_test_developer_api'),
    
    # Homepage Lead Capture URLs
    path('submit-lead/', views.submit_lead, name='submit_lead'),
    path('superuser/leads/', views.superuser_leads_list, name='superuser_leads_list'),
    path('superuser/lead/<int:pk>/delete/', views.superuser_delete_lead, name='superuser_delete_lead'),
    
    # PWA integration URLs
    path('manifest.json', views.pwa_manifest_view, name='pwa_manifest'),
    path('sw.js', views.pwa_service_worker_view, name='pwa_service_worker'),
    
    # Root level static and media fallbacks for PWA asset compatibility
    path('static/<path:path>', views.serve_static_fallback, name='static_fallback'),
    path('media/<path:path>', views.serve_media_fallback, name='media_fallback'),
]

