""" 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('/', views.AppointmentDetailView.as_view(), name='appointment_detail'), path('/quick-view/', views.AppointmentQuickViewView.as_view(), name='appointment_quick_view'), path('/update/', views.AppointmentUpdateView.as_view(), name='appointment_update'), path('/pdf/', views.AppointmentPDFView.as_view(), name='appointment_pdf'), path('/email-pdf/', views.AppointmentEmailPDFView.as_view(), name='appointment_email_pdf'), # State Machine Transitions path('/confirm/', views.AppointmentConfirmView.as_view(), name='appointment_confirm'), path('/reschedule/', views.AppointmentRescheduleView.as_view(), name='appointment_reschedule'), path('/cancel/', views.AppointmentCancelView.as_view(), name='appointment_cancel'), path('/arrive/', views.AppointmentArriveView.as_view(), name='appointment_arrive'), path('/start/', views.AppointmentStartView.as_view(), name='appointment_start'), path('/complete/', views.AppointmentCompleteView.as_view(), name='appointment_complete'), path('/no-show/', views.AppointmentNoShowView.as_view(), name='appointment_no_show'), # Patient Confirmation (Phase 5) - Public URLs (no login required) path('confirm//', views.ConfirmAppointmentView.as_view(), name='patient_confirm'), path('decline//', 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'), # ============================================================================ # Session URLs (Group Session Support) # ============================================================================ # Session List & Management path('sessions/', views.SessionListView.as_view(), name='session_list'), path('sessions/available/', views.AvailableGroupSessionsView.as_view(), name='available_group_sessions'), path('sessions/create/', views.GroupSessionCreateView.as_view(), name='group_session_create'), path('sessions//', views.SessionDetailView.as_view(), name='session_detail'), # Session Actions path('sessions//add-patient/', views.AddPatientToSessionView.as_view(), name='session_add_patient'), path('sessions//start/', views.SessionStartView.as_view(), name='session_start'), path('sessions//complete/', views.SessionCompleteView.as_view(), name='session_complete'), path('sessions//cancel/', views.SessionCancelView.as_view(), name='session_cancel'), # Participant Actions path('participants//check-in/', views.SessionParticipantCheckInView.as_view(), name='participant_check_in'), path('participants//update-status/', views.SessionParticipantStatusUpdateView.as_view(), name='participant_update_status'), ]