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

app_name = 'mimansha_main'

urlpatterns = [
    # Core pages
    path("", views.home_page, name="home_page"),
    path("featured/", views.featured_page, name="featured_page"),
    path("about", views.about_mimamsha, name="about_mimamsha"),
    path("contact-us/", views.contact, name="contact_us"),
    path("search/", views.search_view, name="search_view"),
    
    # Blog-related URLs (public)
    path("blogs/<int:blog_id>/<slug:slug>/", views.blog_detail, name="blog_detail"),
    path('category/<slug:category_slug>/', views.category_blogs, name='category_blogs'),
    path('exploretopics/', views.explore_by_topics, name='topics_explore'),
    path("topics/<slug:slug>/", views.topic_detail, name="topic_detail"),
    path('exploreissues/', views.explore_by_issue, name='explore_by_issue'),
    path('exploreissues/<int:issue_id>/<slug:slug>/', views.explore_issue_detail, name='explore_issue_detail'),

    path('popular/', views.popular_blogs, name='popular_blogs'),
    
    # Author-related URLs
    path("authors/", views.author, name="authors"),
    path("authors/author-<int:author_id>/blogs/", views.author_blogs, name="author_blogs"),
    
    # Team-related URLs
    path("team/", views.team, name="team"),
    path("team-list/", views.team_list, name="team_list"),
    
    # Submission URLs
    path('submit/', views.submit_articles, name='submit_articles'),
    path('clear-author-session/', views.clear_author_session, name='clear_author_session'),
    
    # Poll-related URLs
    path("polls/", views.all_polls, name="all_polls"),
    path("polls/<int:poll_id>/vote/", views.vote, name="poll_vote"),
    path("create-poll/", views.create_poll, name="create_poll"),
    path("create-poll/<int:poll_id>/", views.create_poll, name="create_poll"),
    path('poll/delete/<int:pk>/', views.poll_delete, name='poll_delete'),
    
    # Authentication URLs
    path('login/', views.login_view, name='login'),
    path('logout/', views.logout_view, name='logout'),
    path('password-change/ajax/', views.change_password_ajax, name='password_change_ajax'),
    path('password-change/', views.change_password_ajax, name='password_change'),
    
    # Admin management URLs
    path("admin_is_me/", views.admin_dashboard, name="admin_dashboard"),
    
    # Blog management URLs
    path('blogs/', views.blog_list, name='blog_list'),
    path('blogs/published/', views.blog_list, {'status': 'published'}, name='blog_published'),
    path('blogs/drafts/', views.blog_list, {'status': 'drafts'}, name='blog_drafts'),
    path('blogs/user-submitted/', views.blog_list, {'status': 'user-submitted'}, name='blog_user_submitted'),
    path('blogs/partially-edited/', views.blog_list, {'status': 'partially-edited'}, name='blog_partially_edited'),
    path('blogs/archived/', views.blog_list, {'status': 'archived'}, name='blog_archived'),
    path('blog/create/', views.blog_create, name='blog_create'),
    path('blog/<int:pk>/update/', views.blog_update, name='blog_update'),
    path('blog/<int:pk>/delete/', views.blog_delete, name='blog_delete'),
    
    # Category management URLs
    path("blog_category/", views.blog_category_list, name="blog_category_list"),
    path("blog-category/create/", views.blog_category_create, name="blog_category_create"),
    path("blog-category/<int:pk>/update/", views.blog_category_update, name="blog_category_update"),
    path("blog-category/<int:pk>/delete/", views.blog_category_delete, name="blog_category_delete"),
    
    # Author management URLs
    path("author/", views.author_list, name="author_list"),
    path("author_create/", views.author_create, name="author_create"),
    path("authors/<int:pk>/update/", views.author_update, name="author_update"),
    path("authors/<int:pk>/delete/", views.author_delete, name="author_delete"),
    
    # Topic management URLs
    path("admin_topics/", views.topics_list, name="topics_list"),
    path("topics_create/", views.topics_create, name="topics_create"),
    path("topics/<int:pk>/update/", views.topics_update, name="topics_update"),
    path("topics/<int:pk>/delete/", views.topics_delete, name="topics_delete"),
    
    # Team management URLs
    path("team_list/", views.team_list, name="team_list"),
    path("team-members/create/", views.create_update_team_member, name="create_team_member"),
    path("team-members/<int:team_member_id>/update/", views.create_update_team_member, name="update_team_member"),
    path("team-members/<int:pk>/delete/", views.team_delete, name="team_delete"),
    
    # Issue management URLs
    path('issues/', views.issue_list, name='issue_list'),
    path('issues/create/', views.issue_create, name='issue_create'),
    path('issues/<slug:slug>/', views.issue_detail, name='issue_detail'),
    path('issues/<slug:slug>/update/', views.issue_update, name='issue_update'),
    path('issues/<slug:slug>/delete/', views.issue_delete, name='issue_delete'),
    path('issues/<slug:slug>/update-status/', views.update_issue_status, name='update_issue_status'),
    path('issues/<slug:slug>/add-blogs/', views.add_blogs_to_issue, name='add_blogs_to_issue'),
    path('issues/<slug:issue_slug>/remove-blog/<int:blog_id>/', views.remove_blog_from_issue, name='remove_blog_from_issue'),
    path('issue/<slug:slug>/update-order/', views.update_issue_item_order, name='update_issue_item_order'),
    
    # Newsletter and subscriber URLs
    path("subscribe-ajax/", views.subscribe_ajax, name="subscribe_ajax"),
    path('subscribers/', views.subscriber_list, name='subscriber_list'),
    path('newsletter/', views.send_newsletter, name='send_newsletter'),
    path('newsletter-progress/<int:task_id>/', views.newsletter_progress, name='newsletter_progress'),
    
    # Contact messages
    path('contact-messeges/', views.contact_message, name='contact_message'),



    path('search/authors/', views.search_authors, name='search_authors'),
    path('search/topics/', views.search_topics, name='search_topics'),

    
    path('tasks/', views.task_list, name='task_list'),
    path('createtask/', views.create_update_task, name='create_update_task'),
    path('edit/<int:pk>/', views.create_update_task, name='create_update_task'),
    path('delete/<int:pk>/', views.delete_task, name='delete_task'),
    path('tasks/update-status/', views.update_task_status, name='update_task_status'),



      # Permission manager main page
    path('permission-manager/', views.permission_manager, name='permission_manager'),
    
   # User permissions endpoints
    path('get-user-permissions/<int:user_id>/', views.get_user_permissions, name='get_user_permissions'),
    path('update-user-permissions/', views.update_user_permissions, name='update_user_permissions'),
    
    # Group permissions endpoints
    path('get-group-permissions/<int:group_id>/', views.get_group_permissions, name='get_group_permissions'),
    path('update-group-permissions/', views.update_group_permissions, name='update_group_permissions'),
    path('delete-group/<int:group_id>/', views.delete_group, name='delete_group'),
    path('get-all-groups/', views.get_all_groups, name='get_all_groups'),

    path('update-analytics/', analytics.update_analytics, name='update_analytics'),
    path('analytics/', views.analytics_dashboard, name='analytics'),
]


