""" Communications app URLs with comprehensive CRUD operations. """ from django.urls import path, include from . import views app_name = 'communications' urlpatterns = [ # ============================================================================ # DASHBOARD AND OVERVIEW # ============================================================================ path('', views.CommunicationsDashboardView.as_view(), name='dashboard'), # ============================================================================ # MESSAGE URLS (FULL CRUD - Operational Data) # ============================================================================ path('messages/', views.MessageListView.as_view(), name='message_list'), path('messages/create/', views.MessageCreateView.as_view(), name='message_create'), path('messages//', views.MessageDetailView.as_view(), name='message_detail'), path('messages//update/', views.MessageUpdateView.as_view(), name='message_update'), path('messages//delete/', views.MessageDeleteView.as_view(), name='message_delete'), path('messages/recent/', views.recent_messages, name='recent_messages'), # ============================================================================ # NOTIFICATION TEMPLATE URLS (FULL CRUD - Master Data) # ============================================================================ path('templates/', views.NotificationTemplateListView.as_view(), name='notification_template_list'), path('templates/create/', views.NotificationTemplateCreateView.as_view(), name='notification_template_create'), path('templates//', views.NotificationTemplateDetailView.as_view(), name='notification_template_detail'), path('templates//update/', views.NotificationTemplateUpdateView.as_view(), name='notification_template_update'), path('templates//delete/', views.NotificationTemplateDeleteView.as_view(), name='notification_template_delete'), # ============================================================================ # ALERT RULE URLS (FULL CRUD - Master Data) # ============================================================================ path('alert-rules/', views.AlertRuleListView.as_view(), name='alert_rule_list'), path('alert-rules/create/', views.AlertRuleCreateView.as_view(), name='alert_rule_create'), path('alert-rules//', views.AlertRuleDetailView.as_view(), name='alert_rule_detail'), path('alert-rules//update/', views.AlertRuleUpdateView.as_view(), name='alert_rule_update'), path('alert-rules//delete/', views.AlertRuleDeleteView.as_view(), name='alert_rule_delete'), # ============================================================================ # ALERT INSTANCE URLS (APPEND-ONLY - System Generated) # ============================================================================ path('alerts/', views.AlertInstanceListView.as_view(), name='alert_instance_list'), path('alerts//', views.AlertInstanceDetailView.as_view(), name='alert_instance_detail'), # ============================================================================ # COMMUNICATION CHANNEL URLS (FULL CRUD - Master Data) # ============================================================================ path('channels/', views.CommunicationChannelListView.as_view(), name='communication_channel_list'), path('channels/create/', views.CommunicationChannelCreateView.as_view(), name='communication_channel_create'), path('channels//', views.CommunicationChannelDetailView.as_view(), name='communication_channel_detail'), path('channels//update/', views.CommunicationChannelUpdateView.as_view(), name='communication_channel_update'), path('channels//delete/', views.CommunicationChannelDeleteView.as_view(), name='communication_channel_delete'), # ============================================================================ # DELIVERY LOG URLS (READ-ONLY - System Generated) # ============================================================================ path('delivery-logs/', views.DeliveryLogListView.as_view(), name='delivery_log_list'), path('delivery-logs//', views.DeliveryLogDetailView.as_view(), name='delivery_log_detail'), # ============================================================================ # HTMX ENDPOINTS FOR REAL-TIME UPDATES # ============================================================================ path('stats/', views.communications_stats, name='communications_stats'), path('htmx/message-search/', views.message_search, name='message_search'), # ============================================================================ # ACTION URLS FOR WORKFLOW OPERATIONS # ============================================================================ path('messages//send/', views.send_message, name='send_message'), path('channels//test/', views.test_channel, name='test_channel'), path('alerts//acknowledge/', views.acknowledge_alert, name='acknowledge_alert'), path('alerts//resolve/', views.resolve_alert, name='resolve_alert'), # ============================================================================ # API ENDPOINTS # ============================================================================ path('api/', include('communications.api.urls')), ]