from django.urls import include, path
from rest_framework.routers import DefaultRouter

from apps.agents.api import BotViewSet
from apps.calls.api import CallViewSet
from apps.knowledge_base.api import ChunkViewSet, DocumentViewSet, KnowledgeBaseViewSet
from config.mcube_data_views import mcube_data

router = DefaultRouter()

# Bots (AgentConfig)
router.register(r"bots", BotViewSet, basename="bots")

# Knowledge base
router.register(r"knowledge-bases", KnowledgeBaseViewSet, basename="knowledge-bases")
router.register(r"kb-documents", DocumentViewSet, basename="kb-documents")
router.register(r"kb-chunks", ChunkViewSet, basename="kb-chunks")
router.register(r"calls", CallViewSet, basename="calls")

urlpatterns = [
    # MCube -> cluster DB insert (dummy or payload)
    # Support both with and without trailing slash (nginx/app clients vary).
    path("mcube-data", mcube_data, name="mcube_data"),
    path("mcube-data/", mcube_data),
    # Explicit no-trailing-slash endpoint used by the frontend click-to-call.
    # (DRF router actions are usually `.../initiate-call/`; this keeps `/initiate-call` working too.)
    path(
        "bots/<int:pk>/initiate-call",
        BotViewSet.as_view({"post": "initiate_call"}),
        name="bot_initiate_call",
    ),
    path("", include(router.urls)),
]

