from django.urls import path
from admin_panel import views

urlpatterns = [
    path('product-categories/', views.ProductCategoryAPIView.as_view()),
    path('product-categories/<int:pk>/', views.ProductCategoryAPIView.as_view()),
    path('products/', views.ProductAPIView.as_view()),
    path('product-stock/<slug:product_id>/',views.StockHandelAPIView.as_view()),
    path('products/<slug:product_id>/', views.ProductAPIView.as_view()),
    path('draft-products/', views.draftProductAPIView.as_view()),
    path('platforms/', views.PlatformAPIView.as_view()),
    path('platforms/<slug:product_id>/', views.PlatformAPIView.as_view()),
    path('platforms-edit/<int:pk>/', views.PlatformAPIView.as_view()),
    path('product-images-edit/<slug:image_id>/', views.ProductImageAPIView.as_view()),
    path('product-images/<slug:product_id>/', views.ProductImageAPIView.as_view()),
    path('product-clicks/', views.ProductClickAPIView.as_view()),
    path('product-clicks/<slug:product_id>/', views.ProductClickAPIView.as_view()),
    path('marketplace-clicks/', views.MarketplaceClickAPIView.as_view()),
    path('marketplace-clicks/<slug:platform_id>/', views.MarketplaceClickAPIView.as_view()),
    path('spiderchart/',views.SpiderchartAPI.as_view()),
    path('traffic-chart/', views.TrafficAnalyticsView.as_view()),
    path('top-products/', views.topproductsAPI.as_view()),
    path('kpi/', views.KPIAPI.as_view()),

    
    #-------------------------------------Pritam-------------------------------------
    path('tags/', views.TagListCreateView.as_view()), #GET and POST
    path('tags/<int:pk>/', views.TagListCreateView.as_view()), #PATCH, DELETE
    path('blogs/', views.BlogListCreateView.as_view()),
    path('blogs/<slug:pk>/', views.BlogDetailView.as_view()),
    
    #-----------------------------Blog Likes-----------------------------
    path('blog-likes/<slug:blog_id>/', views.BlogLikeAPIView.as_view()),
    
    path('testimonials/', views.TestimonialListCreateView.as_view()),
    path('testimonials/<slug:pk>/', views.TestimonialDetailView.as_view()), 
    
    #-----------------------------Newsletter Subscriber-----------------------------
    path('newsletter-subscribers/', views.NewsletterSubscriberAPIView.as_view()),
    path('newsletter-subscribers/<slug:subscriber_id>/', views.NewsletterSubscriberAPIView.as_view()),
    path(
    "newsletter/send-otp/",
    views.NewsletterSendOTPAPIView.as_view(),
    name="newsletter-send-otp",
),
path(
    "newsletter/verify-otp/",
    views.NewsletterVerifyOTPAPIView.as_view(),
    name="newsletter-verify-otp",
),
    #-----------------------------Contact Messages-----------------------------
    path('contact-messages/', views.ContactMessageAPIView.as_view()),
    path('contact-messages/<slug:message_id>/', views.ContactMessageAPIView.as_view()),
    path("contact-delete/", views.contactmessagedeletebulk.as_view()),
    #-----------------------------Messages to Subscribers-----------------------------
    path('subscriber-messages/', views.MessagesToSubscribersAPIView.as_view()),
    #----------------- ARRIVAL PRODUCTS ------------------
    path('arrival-products/', views.ArrivalProductsAPI.as_view()),
    path('arrival-products/<slug:product_id>/', views.ArrivalProductsAPI.as_view()),
    #----------------- Special PRODUCTS ------------------
    path('special-offers/', views.SpecialOfferProductAPI.as_view()),
    path('special-offers/<slug:product_id>/', views.SpecialOfferProductAPI.as_view()),
    # ---------------- FEATURED PRODUCTS ------------------
    path('featured-products/', views.featuredProductsAPI.as_view()),
    path('featured-products/<slug:product_id>/', views.featuredProductsAPI.as_view()),
    # ---------------- COLLECTION LIST ------------------
    path('collections/', views.CollectionListAPIView.as_view()),
    path('collections/<slug:collection_id>/', views.CollectionListAPIView.as_view()),
    # ---------------- BAND STORY ----------------
    path('band-story/', views.BandStoryAPIView.as_view()),
    path('band-story/<int:story_id>/', views.BandStoryAPIView.as_view()),
    # ---------------- MARKETPLACE LINKS ----------------
    path('marketplace-links/', views.MarketplaceLinkAPIView.as_view()),
    path('marketplace-links/<int:link_id>/', views.MarketplaceLinkAPIView.as_view()),
    # ---------------- INSTAGRAM GALLERY ----------------
    path('instagram-gallery/', views.InstagramGalleryAPIView.as_view()),
    path('instagram-gallery/<slug:gallery_id>/', views.InstagramGalleryAPIView.as_view()),
    #-----------------------------Lead-----------------------------
    path('leads/', views.LeadCreateAPI.as_view()),
    path("lead/verify-otp/", views.VerifyLeadOTPAPIView.as_view()),
    #-----------------------------Hero Banner-----------------------------
    path('hero-banners/', views.HeroBannerPageAPIView.as_view()),
    path('hero-banners/<slug:banner_id>/', views.HeroBannerPageAPIView.as_view()),

    #-----------------------------Store Manager-----------------------------
    
    #-----------------------------Arrival Products Store-----------------------------
    path('store-arrival-products/', views.ArrivalProductsStoreAPI.as_view()),
    path('store-arrival-products/<slug:product_id>/', views.ArrivalProductsStoreAPI.as_view()),
    #-----------------------------Special Offer Products Store-----------------------------
    path('store-special-offers/', views.SpecialOfferProductStoreAPI.as_view()),
    path('store-special-offers/<slug:product_id>/', views.SpecialOfferProductStoreAPI.as_view()),
    #-----------------------------Featured Products Store-----------------------------
    path('store-featured-products/', views.featuredProductsStoreAPI.as_view()),
    path('store-featured-products/<slug:product_id>/', views.featuredProductsStoreAPI.as_view()),
    #-----------------------------Marketplace Link Store-----------------------------
    path('store-marketplace-links/', views.MarketplaceLinkStoreAPIView.as_view()),
    path('store-marketplace-links/<int:link_id>/', views.MarketplaceLinkStoreAPIView.as_view()),
    #-----------------------------Instagram Gallery Store-----------------------------
    path('store-instagram-gallery/', views.InstagramGalleryStoreAPIView.as_view()),
    path('store-instagram-gallery/<slug:gallery_id>/', views.InstagramGalleryStoreAPIView.as_view()),
    #-----------------------------Hero Banner Store-----------------------------
    path('store-hero-banners/', views.HeroBannerStoreAPIView.as_view()),
    path('store-hero-banners/<slug:banner_id>/', views.HeroBannerStoreAPIView.as_view()),
    #----------------------------Promise Store-----------------------------
    path('promises/', views.PromiseAPIView.as_view()),
    path('promises/<int:promise_id>/', views.PromiseAPIView.as_view()),
    
    #-----------------------------About Us Management-----------------------------
    path('about-us/', views.DescriptionAboutUsAPIView.as_view()),
    path('about-us/<slug:description_id>/', views.DescriptionAboutUsAPIView.as_view()),
    
    path('team-members/', views.TeamMemberAPIView.as_view()),
    path('team-members/<slug:member_id>/', views.TeamMemberAPIView.as_view()),
    
    path('core-values/', views.FactorsAPIView.as_view()),
    path('core-values/<slug:factor_id>/', views.FactorsAPIView.as_view()),

    path('recent-activity/', views.RecentActivityView.as_view()),
    
    #-----------------------------CLIENT MODIFICATION--------------------------
    path('logo-alt/',views.LogoTextAPI.as_view()),
    path('logo-alt/<int:pk>/',views.LogoTextAPI.as_view()),
    
    path('featured-marketplace/',views.FeaturedMarketplaceAPIView.as_view()),
    path('featured-marketplace/<int:link_id>/',views.FeaturedMarketplaceAPIView.as_view()),
    path("satisfied/", views.Satisfied_CustomerAPIView.as_view()),
    path("address/",views.ContactInfoAPI.as_view()),
    path("social-links/", views.SocialLinksAPIView.as_view()),
    path("social-links/<int:pk>/", views.SocialLinksAPIView.as_view()),
    path('widgets/', views.WidgetAPIView.as_view()),
    #-----------------------------Admin Management-----------------------------
    path('create-role/', views.CreateRoleView.as_view()),
    path('admin-login/', views.AdminLoginJWTView.as_view()),
    path('permissions/',views.PermissionListView.as_view()),
    path('create-admin/',views.CreateAdminView.as_view()),
    path('permissions/<int:pk>/', views.PermissionListView.as_view()),

    #==================== LIST ROLES AND ADMINS SOUMYA ====================


    path('roles/', views.RoleListView.as_view(), name='role-list'),
    path('admins/', views.AdminUserListView.as_view(), name='admin-list'),
    path('change-password/', views.ChangePasswordView.as_view()),
    path('roles/<int:pk>/', views.RoleDetailView.as_view()),
    path('admins/<int:pk>/', views.AdminUserDetailView.as_view()),
    path('current-user/', views.CurrentUserView.as_view()),

    path('api/coupons/', views.CouponAPI.as_view()),
    path('api/coupons/<int:pk>/', views.CouponAPI.as_view()),

    path('api/chats/', views.ChatAPI.as_view()),
    path('api/chats/<int:pk>/', views.ChatAPI.as_view()),

    # ===========Soumya=============
    path('chat/conversations/', views.ConversationListView.as_view()),
    path('chat/messages/<int:other_user_id>/', views.MessageListView.as_view()),
    path('chat/send/', views.MessageCreateView.as_view()),
    # admin_panel/urls.py – add these two lines inside urlpatterns
    path('chat/mark-read/<int:other_user_id>/', views.MarkMessagesReadView.as_view()),
    path('chat/unread-count/', views.UnreadCountView.as_view()),
    path('chat/all-admins/', views.AllAdminsListView.as_view()),
    # Add inside urlpatterns

    #path('modal-settings/', views.ModalSettingAPIView.as_view()),
    path('public/modal-config/', views.PublicModalConfigView.as_view()),
    path('chat/group-messages/', views.GroupMessageListView.as_view()),
    path('chat/group-unread-count/', views.GroupUnreadCountView.as_view()),
    path('chat/group-mark-read/', views.GroupMarkReadView.as_view()),
    # urls.py – add this line inside urlpatterns

    path('public/modal-configs/', views.PublicModalConfigView.as_view()),
    path('modal-settings/', views.ModalSettingListAPIView.as_view()),           # GET (list)
    path('modal-settings/<str:strategy>/', views.ModalSettingListAPIView.as_view()),  # PATCH
    
    
    path('header-logos/', views.HeaderLogoListCreateView.as_view()),
    path('header-logos/<int:pk>/', views.HeaderLogoDetailView.as_view()),
    path('product-marketplace-clicks/<slug:product_id>/', views.ProductMarketplaceClicksView.as_view()),
    
    path('seo/pages/', views.PageSEOAPIView.as_view()),
    path('seo/pages/<str:page_name>/', views.PageSEOAPIView.as_view()),
    
    path('forgot-password/', views.forget_password_email.as_view()),
    path('verify-otp/', views.VerifyOTP.as_view()),
    path('reset-password/', views.ResetPassword.as_view()),
    
    path('change-password/', views.change_password.as_view()),
    
 path(
    'seo/pages/<str:page_name>/',
    views.PageSEOAPIView.as_view()
),
path(
    'seo/products/',
    views.ProductSEOAPIView.as_view()
),

# ================= BLOG HERO =================

path(
    'blog-hero/',
    views.BlogHeroAPIView.as_view()
),

path(
    'blog-hero/<slug:hero_id>/',
    views.BlogHeroAPIView.as_view()
),


# ================= ABOUT HERO =================

path(
    'about-hero/',
    views.AboutHeroAPIView.as_view()
),

path(
    'about-hero/<slug:hero_id>/',
    views.AboutHeroAPIView.as_view()
),


# ================= TESTIMONIAL HERO =================

path(
    'testimonial-hero/',
    views.TestimonialHeroAPIView.as_view()
),

path(
    'testimonial-hero/<slug:hero_id>/',
    views.TestimonialHeroAPIView.as_view()
),

path(
    'about-core-values/',
    views.AboutCoreValueAPIView.as_view()
),

path(
    'about-core-values/<slug:value_id>/',
    views.AboutCoreValueAPIView.as_view()
),

    path('blog-analytics/track/<slug:blog_id>/', views.BlogAnalyticsTrackingView.as_view()),
    path('blog-analytics/summary/<slug:blog_id>/<str:period>/', views.BlogAnalyticsSummaryView.as_view()),
    
 path('subscriber-tags/', views.SubscriberTagViewSet.as_view({'get': 'list', 'post': 'create'})),
path('subscriber-tags/<int:pk>/', views.SubscriberTagViewSet.as_view({'get': 'retrieve', 'patch': 'partial_update', 'delete': 'destroy'})),
path('subscriber-segments/', views.SubscriberSegmentViewSet.as_view({'get': 'list', 'post': 'create'})),
path('subscriber-segments/<int:pk>/', views.SubscriberSegmentViewSet.as_view({'get': 'retrieve', 'patch': 'partial_update', 'delete': 'destroy'})),
path('subscriber-tag-assign/', views.SubscriberTagAssignmentView.as_view()),
path('subscribers/filter/', views.SubscriberFilterView.as_view()),
path('subscribers/export/', views.SubscriberExportView.as_view()),
path('email-campaigns/', views.EmailCampaignViewSet.as_view({'get': 'list', 'post': 'create'})),
path('email-campaigns/<int:pk>/', views.EmailCampaignViewSet.as_view({'get': 'retrieve', 'patch': 'partial_update', 'delete': 'destroy'})),
path('email-campaigns/<int:pk>/send/', views.EmailCampaignViewSet.as_view({'post': 'send'}, detail=True)),
path(
    'email-campaigns/analytics/',
    views.CampaignAnalyticsAPIView.as_view()
),
path('track/open/<int:campaign_id>/<slug:subscriber_id>/', views.TrackOpenAPIView.as_view()),
path(
    "track/click/<int:campaign_id>/<slug:subscriber_id>/",
    views.TrackClickAPIView.as_view(),
    name="track-click",
),
path(
    'unsubscribe/<int:campaign_id>/<slug:subscriber_id>/',
    views.UnsubscribeAPIView.as_view()
),
# urls.py – add these inside urlpatterns
path(
    'email-campaigns/<int:campaign_id>/events/',
    views.CampaignEventsAPIView.as_view()
),
path('visitor-heartbeat/', views.VisitorHeartbeatView.as_view()
    ),
path(
    'active-visitors/',
    views.ActiveVisitorsView.as_view()
),
path(
    'unsubscribed-users/',
    views.UnsubscribedUsersAPIView.as_view()
),
path(
        "campaigns/<int:campaign_id>/export/",views.ExportCampaignReportAPIView.as_view(),
        name="campaign-export",
    ),
path(
        "campaigns/save-draft/",
        views.SaveDraftCampaignAPIView.as_view(),
        name="save-draft"
    ),

    path(
        "campaigns/drafts/",
        views.DraftCampaignListAPIView.as_view(),
        name="draft-list"
    ),

    path(
        "campaigns/drafts/<int:campaign_id>/",
        views.DraftCampaignDetailAPIView.as_view(),
        name="draft-detail"
    ),

    path(
        "campaigns/drafts/<int:campaign_id>/delete/",
        views.DeleteDraftCampaignAPIView.as_view(),
        name="delete-draft"
    ),
    path(
    "newsletter-subscribers/<slug:subscriber_id>/history/",
    views.SubscriberHistoryAPIView.as_view(),
    name="subscriber-history",
),
    path(
        "newsletter-subscribers/<slug:subscriber_id>/campaign-engagement/",
        views.SubscriberCampaignEngagementAPIView.as_view(),
        name="subscriber-campaign-engagement",
    ),
    path(
        "email-campaign/dashboard/",
        views.CampaignDashboardAPIView.as_view(),
        name="campaign-dashboard",
    ),
    path(
    "newsletter-subscriber/bulk-delete/",
    views.BulkDeleteSubscribersAPIView.as_view(),
    name="bulk-delete-subscribers",
),
    path(
    "leads/bulk-delete/",
    views.BulkDeleteLeadsAPIView.as_view(),
    name="bulk-delete-subscribers",
),
path(
        "modal/ui/",
        views.ModalSettingsUIView.as_view(),
        name="modal-ui-settings",
    ),
    
        path(
        "subscriber-sources/",
        views.SubscriberSourcesAPIView.as_view()
    ),
    path(
        "delete-campaign/<int:pk>/",views.CampaignDelete.as_view()),
    path('privecy/',views.PrivecyUploadAPIView.as_view()),
    path('terms/',views.TermsUploadAPIView.as_view()),
    path(
        "watch-buy/",
        views.WatchBuyAPIView.as_view(),
        name="watch-buy"
    ),
    path(
        "our-journey/",
        views.OurJourneyAPIView.as_view(),
        name="our-journey"
    ),
    path("campaign-sort/<int:campaign_id>/",views.CampaignSorting.as_view()),
    path(
        "campaigns/export-excel/",
        views.CampaignExcelExportAPIView.as_view(),
        name="campaign-excel-export"
    ),
]