
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path

from core import orders_views, workflow_views
from core.views import (
    home,
    db_status,
    staff_login,
    staff_logout,
    dashboard,
)
from accounts.role_views import role_management
from accounts import staff_views
from accounts.session_settings_views import session_settings


urlpatterns = [
    # Django administration
    path("admin/", admin.site.urls),

    # Main portal
    path("", home, name="home"),
    path("login/", staff_login, name="login"),
    path("logout/", staff_logout, name="logout"),
    path("dashboard/", dashboard, name="dashboard"),
    path("db-status/", db_status, name="db-status"),

    # Orders Workspace
    path(
        "orders/",
        orders_views.orders_list,
        name="orders_list",
    ),
    path(
        "orders/<int:order_id>/",
        orders_views.order_detail,
        name="order_detail",
    ),

    # Order workflow
    path(
        "orders/<int:order_id>/accept/",
        workflow_views.order_accept,
        name="order_accept",
    ),
    path(
        "orders/<int:order_id>/hold/",
        workflow_views.order_hold,
        name="order_hold",
    ),
    path(
        "orders/<int:order_id>/decline/",
        workflow_views.order_decline,
        name="order_decline",
    ),
    path(
        "orders/<int:order_id>/start-processing/",
        workflow_views.order_start_processing,
        name="order_start_processing",
    ),

    # Password reset
    path(
        "password-reset/",
        auth_views.PasswordResetView.as_view(
            template_name="accounts/password_reset_form.html",
            email_template_name="accounts/password_reset_email.txt",
            subject_template_name="accounts/password_reset_subject.txt",
            success_url="/password-reset/done/",
        ),
        name="password_reset",
    ),
    path(
        "password-reset/done/",
        auth_views.PasswordResetDoneView.as_view(
            template_name="accounts/password_reset_done.html",
        ),
        name="password_reset_done",
    ),
    path(
        "password-reset/<uidb64>/<token>/",
        auth_views.PasswordResetConfirmView.as_view(
            template_name="accounts/password_reset_confirm.html",
            success_url="/password-reset/complete/",
        ),
        name="password_reset_confirm",
    ),
    path(
        "password-reset/complete/",
        auth_views.PasswordResetCompleteView.as_view(
            template_name="accounts/password_reset_complete.html",
        ),
        name="password_reset_complete",
    ),

    # Role management
    path(
        "role-management/",
        role_management,
        name="role_management",
    ),

    # Staff management
    path(
        "staff-management/",
        staff_views.staff_management,
        name="staff_management",
    ),
    path(
        "staff-management/create/",
        staff_views.staff_create,
        name="staff_create",
    ),
    path(
        "staff-management/<int:user_id>/roles/",
        staff_views.staff_update_roles,
        name="staff_update_roles",
    ),
    path(
        "staff-management/<int:user_id>/toggle-active/",
        staff_views.staff_toggle_active,
        name="staff_toggle_active",
    ),
    path(
        "staff-management/<int:user_id>/reset-password/",
        staff_views.staff_reset_password,
        name="staff_reset_password",
    ),

    # Session settings
    path(
        "session-settings/",
        session_settings,
        name="session_settings",
    ),
]
