"""
expense/urls.py
===============
URL configuration for the Expense Management module.
"""

from django.urls import path

from . import views

urlpatterns = [
    # Dashboard
    path("expense/", views.expense_dashboard, name="expense-dashboard"),

    # Expense requests
    path("expense/request/submit/", views.submit_expense_request, name="expense-submit"),
    path("expense/request/my/", views.my_expense_requests, name="expense-my-requests"),
    path(
        "expense/request/<int:pk>/detail/",
        views.expense_request_detail,
        name="expense-request-detail",
    ),
    path(
        "expense/request/<int:pk>/action/<str:action>/",
        views.action_modal,
        name="expense-action-modal",
    ),

    # Approval actions
    path("expense/request/<int:pk>/approve/", views.approve_expense, name="expense-approve"),
    path("expense/request/<int:pk>/reject/", views.reject_expense, name="expense-reject"),
    path("expense/request/<int:pk>/kiv/", views.kiv_expense, name="expense-kiv"),
    path(
        "expense/request/<int:pk>/recall-kiv/",
        views.recall_kiv,
        name="expense-recall-kiv",
    ),
    path(
        "expense/request/<int:pk>/resubmit/",
        views.resubmit_expense,
        name="expense-resubmit",
    ),

    # Approval queue
    path(
        "expense/approval-queue/",
        views.approval_queue,
        name="expense-approval-queue",
    ),

    # AJAX
    path(
        "expense/ajax/sub-heads/",
        views.ajax_sub_heads,
        name="expense-ajax-sub-heads",
    ),
    path("expense/ajax/items/", views.ajax_budget_items, name="expense-ajax-items"),

    # Workflow config
    path("expense/workflow/", views.workflow_config, name="expense-workflow-config"),
    path(
        "expense/workflow/create/",
        views.workflow_form,
        name="expense-workflow-create",
    ),
    path(
        "expense/workflow/<int:pk>/edit/",
        views.workflow_form,
        name="expense-workflow-edit",
    ),
    path(
        "expense/workflow/<int:workflow_pk>/stage/create/",
        views.stage_form,
        name="expense-stage-create",
    ),
    path(
        "expense/workflow/<int:workflow_pk>/stage/<int:pk>/edit/",
        views.stage_form,
        name="expense-stage-edit",
    ),
]
