alternative-backend-service/meetings/urls.py

64 lines
3.0 KiB
Python
Raw Normal View History

from django.urls import path
from .views import (
AdminAvailabilityView,
AdminAvailabilityConfigView,
AppointmentRequestListView,
AppointmentRequestCreateView,
AppointmentRequestDetailView,
ScheduleAppointmentView,
RejectAppointmentView,
AvailableDatesView,
CheckDateAvailabilityView,
WeeklyAvailabilityView,
UserAppointmentsView,
AppointmentStatsView,
UserAppointmentStatsView,
MatchingAvailabilityView,
JoinMeetingView,
MeetingAnalyticsView,
availability_overview,
EndMeetingView,
StartMeetingView,
CancelMeetingView,
RescheduleAppointmentView
)
urlpatterns = [
# Admin Availability URLs
path('admin/availability/', AdminAvailabilityView.as_view(), name='admin-availability'),
path('availability/config/', AdminAvailabilityConfigView.as_view(), name='availability-config'),
path('availability/check/', CheckDateAvailabilityView.as_view(), name='check-availability'),
path('availability/weekly/', WeeklyAvailabilityView.as_view(), name='weekly-availability'),
path('availability/overview/', availability_overview, name='availability-overview'),
path('appointments/available-dates/', AvailableDatesView.as_view(), name='available-dates'),
# Appointment Request URLs
path('appointments/', AppointmentRequestListView.as_view(), name='appointment-list'),
path('appointments/create/', AppointmentRequestCreateView.as_view(), name='appointment-create'),
path('appointments/<uuid:pk>/reschedule/', RescheduleAppointmentView.as_view(), name='reschedule-appointment'),
path('appointments/<uuid:pk>/', AppointmentRequestDetailView.as_view(), name='appointment-detail'),
path('appointments/<uuid:pk>/matching-availability/', MatchingAvailabilityView.as_view(), name='matching-availability'),
# Appointment Management URLs
path('appointments/<uuid:pk>/schedule/', ScheduleAppointmentView.as_view(), name='appointment-schedule'),
path('appointments/<uuid:pk>/reject/', RejectAppointmentView.as_view(), name='appointment-reject'),
# User-specific URLs
path('user/appointments/', UserAppointmentsView.as_view(), name='user-appointments'),
path('user/appointments/stats/', UserAppointmentStatsView.as_view(), name='user-appointment-stats'),
# Stats URLs
path('appointments/stats/', AppointmentStatsView.as_view(), name='appointment-stats'),
# Meeting Analytics
path('appointments/<uuid:pk>/meeting-analytics/', MeetingAnalyticsView.as_view(), name='meeting-analytics'),
path('meetings/analytics/summary/', MeetingAnalyticsView.as_view(), {'summary': True}, name='meeting-analytics-summary'),
# Meeting Status & Info
path('meetings/<uuid:pk>/info/', JoinMeetingView.as_view(), {'info_only': True}, name='meeting-info'),
path('meetings/<uuid:pk>/end/', EndMeetingView.as_view(), name='end-meeting-simple'),
path('meetings/<uuid:pk>/start/', StartMeetingView.as_view(), name='start-meeting-simple'),
path('meetings/<uuid:pk>/cancel/', CancelMeetingView.as_view(), name='cancel-meeting'),
]