"""
URL configuration for the dashboard app.
"""
from django.urls import path
from apps.dashboard import views
from apps.dashboard import data_views

app_name = 'dashboard'

urlpatterns = [
    path('', views.DashboardRedirectView.as_view(), name='redirect'),
    path('admin/', views.AdminDashboardView.as_view(), name='admin'),
    path('support-staff/', views.SupportStaffDashboardView.as_view(), name='support_staff'),
    path('accounts-staff/', views.AccountsStaffDashboardView.as_view(), name='accounts_staff'),
    path('teacher/', views.TeacherDashboardView.as_view(), name='teacher'),
    path('teacher/courses/', views.TeacherManageCoursesView.as_view(), name='teacher_courses'),
    path('student/', views.StudentDashboardView.as_view(), name='student'),

    # Admin management pages
    path('admin/users/', views.ManageUsersView.as_view(), name='manage_users'),
    path('admin/users/add/', views.AdminUserCreateView.as_view(), name='admin_user_add'),
    path('admin/users/<int:pk>/delete/', views.AdminUserDeleteView.as_view(), name='admin_user_delete'),
    path('admin/users/<int:pk>/reset-password/', views.AdminResetUserPasswordView.as_view(), name='admin_user_reset_password'),
    path('admin/courses/', views.ManageCoursesAdminView.as_view(), name='manage_courses'),
    path('admin/courses/create/', views.AdminCourseCreateView.as_view(), name='admin_course_create'),
    path('admin/courses/<int:pk>/edit/', views.AdminCourseEditView.as_view(), name='admin_course_edit'),
    path('admin/courses/<int:pk>/delete/', views.AdminCourseDeleteView.as_view(), name='admin_course_delete'),
    path('admin/courses/<int:course_pk>/modules/add/', views.AdminModuleCreateView.as_view(), name='admin_module_add'),
    path('admin/modules/<int:pk>/edit/', views.AdminModuleEditView.as_view(), name='admin_module_edit'),
    path('admin/modules/<int:pk>/delete/', views.AdminModuleDeleteView.as_view(), name='admin_module_delete'),
    path('admin/categories/', views.ManageCategoriesView.as_view(), name='manage_categories'),
    path('admin/categories/create/', views.CategoryCreateView.as_view(), name='category_create'),
    path('admin/categories/<int:pk>/edit/', views.CategoryEditView.as_view(), name='category_edit'),
    path('admin/categories/<int:pk>/delete/', views.CategoryDeleteView.as_view(), name='category_delete'),
    path('admin/settings/', views.AdminSettingsView.as_view(), name='manage_settings'),
    path('admin/settings/smtp-test/', views.AdminSmtpTestView.as_view(), name='smtp_test'),
    path('admin/email/templates/', views.EmailTemplateListView.as_view(), name='email_templates'),
    path('admin/email/templates/add/', views.EmailTemplateCreateView.as_view(), name='email_template_add'),
    path('admin/email/templates/<int:pk>/edit/', views.EmailTemplateEditView.as_view(), name='email_template_edit'),
    path('admin/email/templates/<int:pk>/delete/', views.EmailTemplateDeleteView.as_view(), name='email_template_delete'),
    path('admin/email/compose/', views.AdminComposeEmailView.as_view(), name='compose_email'),
    path('admin/roles/', views.ManageRolesView.as_view(), name='manage_roles'),
    path('admin/users/<int:pk>/edit/', views.AdminUserEditView.as_view(), name='admin_user_edit'),

    # Data Manager — themed CRUD mirror of Django admin
    path('admin/data/', data_views.DataHomeView.as_view(), name='data_home'),
    path('admin/data/<str:app_label>/<str:model_name>/', data_views.DataListView.as_view(), name='data_list'),
    path('admin/data/<str:app_label>/<str:model_name>/add/', data_views.DataCreateView.as_view(), name='data_add'),
    path('admin/data/<str:app_label>/<str:model_name>/<str:pk>/edit/', data_views.DataEditView.as_view(), name='data_edit'),
    path('admin/data/<str:app_label>/<str:model_name>/<str:pk>/delete/', data_views.DataDeleteView.as_view(), name='data_delete'),

    # Admin how-to guide (static HTML)
    path('admin/guide/', views.AdminGuideView.as_view(), name='admin_guide'),
]
