# -*- coding: utf-8 -*-
"""
Channel Management URLs

This module defines URL patterns for the channel management application.
"""

from django.urls import path, include
from . import views

app_name = 'channels'

urlpatterns = [
    # Dashboard
    path('', views.ChannelDashboardView.as_view(), name='dashboard'),
    
    # Channel URLs
    path('channels/', views.ChannelListView.as_view(), name='channel_list'),
    path('channels/<int:pk>/', views.ChannelDetailView.as_view(), name='channel_detail'),
    path('channels/create/', views.ChannelCreateView.as_view(), name='channel_create'),
    path('channels/<int:pk>/edit/', views.ChannelUpdateView.as_view(), name='channel_edit'),
    path('channels/<int:pk>/delete/', views.ChannelDeleteView.as_view(), name='channel_delete'),
    path('channels/<int:pk>/health/', views.ChannelHealthCheckView.as_view(), name='channel_health'),
    path('channels/bulk-actions/', views.BulkChannelActionView.as_view(), name='channel_bulk_actions'),
    path('channels/import/', views.ChannelImportView.as_view(), name='channel_import'),
    path('channels/export/', views.ChannelExportView.as_view(), name='channel_export'),
    
    # Zone URLs
    path('zones/', views.ChannelZoneListView.as_view(), name='zone_list'),
    path('zones/<int:pk>/', views.ChannelZoneDetailView.as_view(), name='zone_detail'),
    path('zones/create/', views.ChannelZoneCreateView.as_view(), name='zone_create'),
    path('zones/<int:pk>/edit/', views.ChannelZoneUpdateView.as_view(), name='zone_edit'),
    path('zones/<int:pk>/delete/', views.ChannelZoneDeleteView.as_view(), name='zone_delete'),
    
    # Codec URLs
    path('codecs/', views.ChannelCodecListView.as_view(), name='codec_list'),
    path('codecs/<int:pk>/', views.ChannelCodecDetailView.as_view(), name='codec_detail'),
    path('codecs/create/', views.ChannelCodecCreateView.as_view(), name='codec_create'),
    path('codecs/<int:pk>/edit/', views.ChannelCodecUpdateView.as_view(), name='codec_edit'),
    path('codecs/<int:pk>/delete/', views.ChannelCodecDeleteView.as_view(), name='codec_delete'),
    
    # EPG URLs
    path('epg/', views.EPGProgramListView.as_view(), name='epg_list'),
    path('epg/<int:pk>/', views.EPGProgramDetailView.as_view(), name='epg_detail'),
    path('epg/create/', views.EPGProgramCreateView.as_view(), name='epg_create'),
    path('epg/<int:pk>/edit/', views.EPGProgramUpdateView.as_view(), name='epg_edit'),
    path('epg/<int:pk>/delete/', views.EPGProgramDeleteView.as_view(), name='epg_delete'),
    path('epg/schedule/', views.EPGScheduleView.as_view(), name='epg_schedule'),
    path('epg/import/', views.EPGImportView.as_view(), name='epg_import'),
    
    # Jingle URLs
    path('jingles/', views.JingleListView.as_view(), name='jingle_list'),
    path('jingles/<int:pk>/', views.JingleDetailView.as_view(), name='jingle_detail'),
    path('jingles/create/', views.JingleCreateView.as_view(), name='jingle_create'),
    path('jingles/<int:pk>/edit/', views.JingleUpdateView.as_view(), name='jingle_edit'),
    path('jingles/<int:pk>/delete/', views.JingleDeleteView.as_view(), name='jingle_delete'),
    path('jingles/<int:pk>/play/', views.JinglePlayView.as_view(), name='jingle_play'),
    path('jingles/<int:pk>/fingerprint/', views.JingleFingerprintView.as_view(), name='jingle_fingerprint'),
    
    # Schedule URLs
    path('schedules/', views.ChannelScheduleListView.as_view(), name='schedule_list'),
    path('schedules/<int:pk>/', views.ChannelScheduleDetailView.as_view(), name='schedule_detail'),
    path('schedules/create/', views.ChannelScheduleCreateView.as_view(), name='schedule_create'),
    path('schedules/<int:pk>/edit/', views.ChannelScheduleUpdateView.as_view(), name='schedule_edit'),
    path('schedules/<int:pk>/delete/', views.ChannelScheduleDeleteView.as_view(), name='schedule_delete'),
    
    # Zone Relation URLs
    path('relations/', views.ChannelZoneRelationListView.as_view(), name='relation_list'),
    path('relations/create/', views.ChannelZoneRelationCreateView.as_view(), name='relation_create'),
    path('relations/<int:pk>/edit/', views.ChannelZoneRelationUpdateView.as_view(), name='relation_edit'),
    path('relations/<int:pk>/delete/', views.ChannelZoneRelationDeleteView.as_view(), name='relation_delete'),
    
    # AJAX URLs for dynamic content
    path('ajax/channel-stats/<int:pk>/', views.ChannelStatsAjaxView.as_view(), name='ajax_channel_stats'),
    path('ajax/zone-channels/<int:zone_id>/', views.ZoneChannelsAjaxView.as_view(), name='ajax_zone_channels'),
    path('ajax/search-channels/', views.ChannelSearchAjaxView.as_view(), name='ajax_search_channels'),
    
    # API URLs
    path('api/v1/', include('apps.channels.api.v1.urls', namespace='api')),
]
