from django.urls import path
from . import views

# Define the app namespace for URL reversing
app_name = 'channels'

# URL patterns for the channels application
# Organized by functionality: dashboard, channels, zones, shows, EPG, and API endpoints
urlpatterns = [
    # Dashboard and main views
    path('', views.dashboard, name='dashboard'),
    
    # Channel management URLs
    path('channels/', views.ChannelListView.as_view(), name='channel_list'),
    path('channels/create/', views.ChannelCreateView.as_view(), name='channel_create'),
    path('channels/<int:pk>/', views.ChannelDetailView.as_view(), name='channel_detail'),
    path('channels/<int:pk>/edit/', views.ChannelUpdateView.as_view(), name='channel_edit'),
    path('channels/<int:pk>/delete/', views.ChannelDeleteView.as_view(), name='channel_delete'),
    
    # Zone management URLs
    path('zones/', views.ZoneListView.as_view(), name='zone_list'),
    path('zones/create/', views.ZoneCreateView.as_view(), name='zone_create'),
    
    # Show management URLs
    path('shows/', views.ShowListView.as_view(), name='show_list'),
    path('shows/create/', views.ShowCreateView.as_view(), name='show_create'),
    path('shows/<int:pk>/', views.ShowDetailView.as_view(), name='show_detail'),
    
    # EPG (Electronic Program Guide) management URLs
    path('epg/', views.EPGListView.as_view(), name='epg_list'),
    path('epg/create/', views.EPGCreateView.as_view(), name='epg_create'),
    path('epg/import/', views.bulk_epg_import, name='epg_bulk_import'),
    path('epg/export/', views.export_epg_csv, name='epg_export'),
    
    # API endpoints for AJAX requests
    path('api/channels/<int:channel_id>/zones/', views.channel_zones_api, name='api_channel_zones'),
    path('api/epg/calendar/', views.epg_calendar_api, name='api_epg_calendar'),
]