"""
URL Configuration for Streams Application

This module defines URL patterns for stream management,
channel configuration, and real-time stream control.
"""

from django.urls import path
from . import views

app_name = 'streams'

urlpatterns = [
    # Channel management
    path('channels/', views.ChannelListView.as_view(), name='channel_list'),
    path('channels/create/', views.ChannelCreateView.as_view(), name='channel_create'),
    path('channels/<uuid:pk>/', views.ChannelDetailView.as_view(), name='channel_detail'),
    path('channels/<uuid:pk>/edit/', views.ChannelUpdateView.as_view(), name='channel_edit'),
    
    # Stream control
    path('channels/<uuid:channel_id>/start/', views.start_stream, name='channel_start'),
    
    # Session management
    path('sessions/', views.StreamSessionListView.as_view(), name='session_list'),
    path('sessions/<uuid:pk>/', views.StreamSessionDetailView.as_view(), name='session_detail'),
    path('sessions/<uuid:session_id>/stop/', views.stop_stream, name='session_stop'),
    path('sessions/<uuid:session_id>/delete/', views.delete_session, name='session_delete'),
    
    # Configuration management
    path('configs/', views.ConfigurationListView.as_view(), name='config_list'),
    path('configs/video/create/', views.VideoConfigurationCreateView.as_view(), name='video_config_create'),
    path('configs/audio/create/', views.AudioConfigurationCreateView.as_view(), name='audio_config_create'),
    
    # HTMX endpoints for real-time updates
    path('api/sessions/<uuid:session_id>/status/', views.stream_status, name='session_status'),
    path('api/sessions/<uuid:session_id>/segments/', views.segment_list, name='session_segments'),
    
    # Media player views
    path('channels/<uuid:channel_id>/player/', views.hls_player_view, name='hls_player'),
    path('channels/<uuid:channel_id>/ts-browser/', views.ts_file_browser, name='ts_browser'),
    path('channels/<uuid:channel_id>/iframes/', views.iframe_gallery, name='iframe_gallery'),
    path('channels/<uuid:channel_id>/jingles/', views.jingle_preview, name='jingle_preview'),
    
    # Media file serving
    path('media/<slug:channel_slug>/<str:file_type>/<str:filename>', views.serve_media_file, name='serve_media'),
]
