from django.contrib import admin from django.urls import path, include, re_path from django.views.generic import TemplateView from rest_framework.routers import DefaultRouter from meetings.views import MeetingViewSet, ParticipantViewSet from users.views import LoginView, RegisterView, LinkedAgentsView, ScanLocalAgentsView from instances.views import InstanceRegisterView, MeetingJoinView, InstanceListView, WebhookNotifyView from meetings.minutes_api import MeetingRecordsView, MinutesUploadView, MeetingEndNotifyView router = DefaultRouter() router.register(r'meetings', MeetingViewSet, basename='meeting') router.register(r'meetings/(?P[^/.]+)/participants', ParticipantViewSet, basename='meeting-participant') urlpatterns = [ path("admin/", admin.site.urls), path("", TemplateView.as_view(template_name="meeting_room.html"), name="home"), path("api/v1/auth/login/", LoginView.as_view()), path("api/v1/auth/register/", RegisterView.as_view()), # 用户龙虾管理 path("api/v1/user/linked-agents/", LinkedAgentsView.as_view()), path("api/v1/user/linked-agents//", LinkedAgentsView.as_view()), path("api/v1/user/scan-local-agents/", ScanLocalAgentsView.as_view()), # 实例管理 path("api/v1/instances/register/", InstanceRegisterView.as_view()), path("api/v1/instances/join-meeting/", MeetingJoinView.as_view()), path("api/v1/instances/", InstanceListView.as_view()), path("api/v1/instances/webhook-test/", WebhookNotifyView.as_view()), # 会议纪要 API(主持龙虾专用) path("api/v1/meetings//records/", MeetingRecordsView.as_view()), path("api/v1/meetings//minutes/upload/", MinutesUploadView.as_view()), path("api/v1/meetings//end-notify/", MeetingEndNotifyView.as_view()), re_path(r'^api/v1/meetings/(?P[^/.]+)/generate-minutes/$', MeetingViewSet.as_view({'get': 'minutes'}), name='meeting-minutes'), path("api/v1/", include(router.urls)), ]