from django.urls import path
from . import views

urlpatterns = [
    # Public
    path('', views.EventListView.as_view(), name='event-list'),
    path('categories/', views.EventCategoriesView.as_view(), name='event-categories'),
    path('upcoming/', views.UpcomingEventsView.as_view(), name='upcoming-events'),
    path('popular/', views.PopularEventsView.as_view(), name='popular-events'),
    path('nearby/', views.NearbyEventsView.as_view(), name='nearby-events'),

    # Vendor management
    path('my-events/', views.VendorMyEventsView.as_view(), name='my-events'),
    path('create/', views.EventCreateView.as_view(), name='event-create'),

    # Vendor public - by slug
    path('vendor/<slug:vendor_slug>/', views.VendorEventsPublicView.as_view(), name='vendor-events-public'),

    # Mall events
    path('mall/<slug:mall_slug>/', views.MallEventsView.as_view(), name='mall-events'),

    # Package management
    path('packages/<int:pk>/update/', views.EventPackageUpdateView.as_view(), name='package-update'),
    path('packages/<int:pk>/delete/', views.EventPackageDeleteView.as_view(), name='package-delete'),

    # Admin
    path('admin/', views.AdminEventsListView.as_view(), name='admin-events'),
    path('admin/<int:pk>/toggle/', views.AdminEventToggleView.as_view(), name='admin-event-toggle'),
    path('admin/<int:pk>/delete/', views.AdminEventDeleteView.as_view(), name='admin-event-delete'),

    # Detail by slug (public)
    path('slug/<slug:slug>/', views.EventDetailView.as_view(), name='event-detail-slug'),

    # Detail / Update / Delete by ID
    path('<int:pk>/', views.EventDetailByIdView.as_view(), name='event-detail'),
    path('<int:pk>/update/', views.EventUpdateView.as_view(), name='event-update'),
    path('<int:pk>/delete/', views.EventDeleteView.as_view(), name='event-delete'),

    # Package add to event
    path('<int:event_id>/packages/', views.EventPackageAddView.as_view(), name='event-package-add'),

    # Social
    path('<int:event_id>/like/', views.EventLikeToggleView.as_view(), name='event-like'),
    path('<int:event_id>/like/status/', views.EventLikeStatusView.as_view(), name='event-like-status'),
    path('<int:event_id>/save/', views.EventSaveToggleView.as_view(), name='event-save'),
    path('<int:event_id>/unsave/', views.EventUnsaveView.as_view(), name='event-unsave'),
]
