from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import (
    SubmissionTypeViewSet,
    CommodityCategoryViewSet,
    CommodityTypeViewSet,
    UnitOfMeasurementViewSet,
    UnitConversionViewSet,
    SubmissionStatusViewSet,
    CollectionCategoryViewSet,
    CollectionTypeViewSet,
    MasterDataDeletionRequestViewSet,
    SubmissionViewSet,
    ImportSubmissionViewSet,
    ExportSubmissionViewSet,
    RevenueFineSubmissionViewSet,
    HealthInspectionSubmissionViewSet,
    DestructionSubmissionViewSet,
    DocumentViewSet,
    SubmissionStatusHistoryViewSet,
)
from .dashboard_views import (
    DashboardSummaryAPIView,
    DashboardMonthlyAPIView,
    DashboardQuarterlyAPIView,
    DashboardImportMonthlyAPIView,
    DashboardExportMonthlyAPIView,
    DashboardDisposalMonthlyAPIView,
    DashboardHealthMonthlyAPIView,
    DashboardMonthlyExportAPIView,
)
from .admin_report_views import (
    AdminCheckpostOverviewAPIView,
    AdminCheckpostExportAPIView,
)

router = DefaultRouter()

# Supporting Models
router.register(r"submission-types", SubmissionTypeViewSet)
router.register(r"commodity-categories", CommodityCategoryViewSet)
router.register(r"commodity-types", CommodityTypeViewSet)
router.register(r"units-of-measurement", UnitOfMeasurementViewSet)
router.register(r"unit-conversions", UnitConversionViewSet)
router.register(r"submission-status", SubmissionStatusViewSet)
router.register(r"collection-categories", CollectionCategoryViewSet)
router.register(r"collection-types", CollectionTypeViewSet)
router.register(
    r"deletion-requests",
    MasterDataDeletionRequestViewSet,
    basename="deletion-request",
)

# Documents and History
router.register(r"documents", DocumentViewSet)
router.register(r"status-history", SubmissionStatusHistoryViewSet)
router.register(r"submissions", SubmissionViewSet, basename="submissions")

# Primary Submissions
router.register(r"import-submissions", ImportSubmissionViewSet)
router.register(r"export-submissions", ExportSubmissionViewSet)
router.register(r"revenue-fine-submissions", RevenueFineSubmissionViewSet)
router.register(r"health-inspection-submissions", HealthInspectionSubmissionViewSet)
router.register(r"destruction-submissions", DestructionSubmissionViewSet)

urlpatterns = [
    path("dashboard/summary/", DashboardSummaryAPIView.as_view(), name="dashboard-summary"),
    path("dashboard/monthly/", DashboardMonthlyAPIView.as_view(), name="dashboard-monthly"),
    path("dashboard/quarterly/", DashboardQuarterlyAPIView.as_view(), name="dashboard-quarterly"),
    path("dashboard/import-monthly/", DashboardImportMonthlyAPIView.as_view(), name="dashboard-import-monthly"),
    path("dashboard/export-monthly/", DashboardExportMonthlyAPIView.as_view(), name="dashboard-export-monthly"),
    path("dashboard/disposal-monthly/", DashboardDisposalMonthlyAPIView.as_view(), name="dashboard-disposal-monthly"),
    path("dashboard/health-monthly/", DashboardHealthMonthlyAPIView.as_view(), name="dashboard-health-monthly"),
    path("dashboard/monthly-export/", DashboardMonthlyExportAPIView.as_view(), name="dashboard-monthly-export"),
    path(
        "admin-reports/checkpost/overview/",
        AdminCheckpostOverviewAPIView.as_view(),
        name="admin-checkpost-overview",
    ),
    path(
        "admin-reports/checkpost/export/",
        AdminCheckpostExportAPIView.as_view(),
        name="admin-checkpost-export",
    ),
    path("", include(router.urls)),
]
