Marwan Alwali 25c9701c34 update
2025-11-06 18:18:43 +03:00

42 lines
2.1 KiB
Python

"""
Appointments app URL configuration.
"""
from django.urls import path
from . import views
app_name = 'appointments'
urlpatterns = [
# Appointment List & Calendar
path('', views.AppointmentListView.as_view(), name='appointment_list'),
path('calendar/', views.AppointmentCalendarView.as_view(), name='appointment_calendar'),
# Appointment CRUD
path('create/', views.AppointmentCreateView.as_view(), name='appointment_create'),
path('<uuid:pk>/', views.AppointmentDetailView.as_view(), name='appointment_detail'),
path('<uuid:pk>/quick-view/', views.AppointmentQuickViewView.as_view(), name='appointment_quick_view'),
path('<uuid:pk>/update/', views.AppointmentUpdateView.as_view(), name='appointment_update'),
path('<uuid:pk>/pdf/', views.AppointmentPDFView.as_view(), name='appointment_pdf'),
path('<uuid:pk>/email-pdf/', views.AppointmentEmailPDFView.as_view(), name='appointment_email_pdf'),
# State Machine Transitions
path('<uuid:pk>/confirm/', views.AppointmentConfirmView.as_view(), name='appointment_confirm'),
path('<uuid:pk>/reschedule/', views.AppointmentRescheduleView.as_view(), name='appointment_reschedule'),
path('<uuid:pk>/cancel/', views.AppointmentCancelView.as_view(), name='appointment_cancel'),
path('<uuid:pk>/arrive/', views.AppointmentArriveView.as_view(), name='appointment_arrive'),
path('<uuid:pk>/start/', views.AppointmentStartView.as_view(), name='appointment_start'),
path('<uuid:pk>/complete/', views.AppointmentCompleteView.as_view(), name='appointment_complete'),
path('<uuid:pk>/no-show/', views.AppointmentNoShowView.as_view(), name='appointment_no_show'),
# Patient Confirmation (Phase 5) - Public URLs (no login required)
path('confirm/<str:token>/', views.ConfirmAppointmentView.as_view(), name='patient_confirm'),
path('decline/<str:token>/', views.DeclineAppointmentView.as_view(), name='patient_decline'),
# Availability API
path('api/available-slots/', views.AvailableSlotsView.as_view(), name='available_slots'),
# Calendar Events API
path('events/', views.AppointmentEventsView.as_view(), name='appointment-events'),
]