from django.urls import path, include
from rest_framework.routers import DefaultRouter

from apps.calls.views import (
    CallViewSet,
    BDCCallsViewSet,
    CurrentUserCallViewSet,
    CallReadViewSet,
    CallPlayViewSet,
    SalesCallViewSet,
    DailyCallsViewSet,
    AdvisorCallViewSet,
    TonyCallViewSet,
    MessageListView,
    MessageDetailView,
    MarkMessageReadView,
    NotificationListView,
    NotificationDetailView,
    MarkNotificationReadView,
)
from apps.calls.views import CatchPhraseReportAPIView
from apps.calls.tests import TestBookingIntentAPIView

router = DefaultRouter()
router.register(r'sales', SalesCallViewSet, basename='sales-calls')
router.register(r'current-user', CurrentUserCallViewSet, basename='current-user')
router.register(r'bdc-calls', BDCCallsViewSet, basename='bdc-calls')
router.register(r'daily-calls', DailyCallsViewSet, basename='daily-calls')
router.register(r'advisor', AdvisorCallViewSet, basename='advisor-calls')
router.register(r'tony-calls', TonyCallViewSet, basename="tonycall")
router.register('', CallViewSet, basename='service-calls')

app_name = 'calls'

urlpatterns = [
    path('', include(router.urls)),
    path('calls/<int:pk>/read/', CallReadViewSet.as_view(), name='mark-call-read'),
    path('<int:pk>/played/', CallPlayViewSet.as_view(), name='mark-call-played'),
    
    path("messages", MessageListView.as_view(), name="message-list"),
    path("message/<int:pk>/", MessageDetailView.as_view(), name="message-detail"),
    path("message/<int:pk>/read/", MarkMessageReadView.as_view(), name="message-mark-read"),
    path("notifications", NotificationListView.as_view(), name="notification-list"),
    path(
        "notification/<int:pk>/",
        NotificationDetailView.as_view(),
        name="notification-detail"
    ),
    path(
        "notification/<int:pk>/read/",
        MarkNotificationReadView.as_view(),
        name="notification-mark-read"
    ),

    path(
        "catch-phrase-report",
        CatchPhraseReportAPIView.as_view(),
        name="catchphrase-report"
    ),

    path(
        "test/process-booking-call-intent",
        TestBookingIntentAPIView.as_view(),
        name="test-process-booking-call-intent"
    )
]
