from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import (
    AgencyViewSet,
    ClientViewSet,
    EmployeeViewSet,
    AgreementViewSet,
    ScopeNodeViewSet,
    ResponsibilityNodeViewSet,
    TimelinePhaseViewSet,
    PaymentSectionViewSet,
    PaymentMilestoneViewSet,
    AnnexureViewSet,
    TermsViewSet,
    AgreementTermsViewSet,
    CustomSectionViewSet,
    AgreementAttachmentViewSet,
    SignatureViewSet,
    AgreementHistoryViewSet,
    AgreementTemplateViewSet,
    TemplateSectionViewSet,
    AgreementPageTemplateViewSet,
    AgreementPageViewSet,

    # NEW client‑facing APIs
    ClientAgreementLoginAPIView,
    ClientAgreementAPIView,
    ClientSignAgreementAPIView,
    ClientDownloadAgreementAPIView,
    SendAgreementEmailAPIView
)

router = DefaultRouter()
router.register(r'agencies', AgencyViewSet)
router.register(r'clients', ClientViewSet)
router.register(r'employees', EmployeeViewSet)
router.register(r'agreements', AgreementViewSet)
router.register(r'scope-nodes', ScopeNodeViewSet)
router.register(r'responsibility-nodes', ResponsibilityNodeViewSet)
router.register(r'timeline-phases', TimelinePhaseViewSet)
router.register(r'payment-sections', PaymentSectionViewSet)
router.register(r'payment-milestones', PaymentMilestoneViewSet)
router.register(r'annexures', AnnexureViewSet)
router.register(r'terms', TermsViewSet)
router.register(r'agreement-terms', AgreementTermsViewSet)
router.register(r'custom-sections', CustomSectionViewSet)
router.register(r'agreement-attachments', AgreementAttachmentViewSet)
router.register(r'signatures', SignatureViewSet)
router.register(r'agreement-history', AgreementHistoryViewSet)
router.register(r'agreement-templates', AgreementTemplateViewSet)
router.register(r'template-sections', TemplateSectionViewSet)
router.register(r'agreement-page-templates', AgreementPageTemplateViewSet)
router.register(r'agreement-pages', AgreementPageViewSet)
urlpatterns = [
    # --------------------
    # Admin APIs
    # --------------------
    path("", include(router.urls)),

    # --------------------
    # Client Signing APIs
    # --------------------
    path(
        "client/login/",
        ClientAgreementLoginAPIView.as_view(),
        name="client-login",
    ),
    path(
        "client/agreement/<str:token>/",
        ClientAgreementAPIView.as_view(),
        name="client-agreement",
    ),
    path(
        "client/sign/<str:token>/",
        ClientSignAgreementAPIView.as_view(),
        name="client-sign",
    ),
    path(
        "client/download/<str:token>/",
        ClientDownloadAgreementAPIView.as_view(),
        name="client-download",
    ),
    path(
        "agreements/<str:agreement_no>/send-email/",
        SendAgreementEmailAPIView.as_view(),
        name="send-agreement-email",
    ),
]