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

from apps.master.views import (
    master_views,
    csv_master_views,
    insurance_views,
    dashboard_views,
)

router = routers.DefaultRouter(trailing_slash=False)

router.register(
    r"amenities",
    master_views.AmenitiesModelViewSet,
    basename="amenities",
)
router.register(
    r"connectors",
    master_views.ConnectorModelViewSet,
    basename="connectors",
)
router.register(
    r"locations",
    master_views.LocationModelViewSet,
    basename="locations",
)
router.register(
    r"networks",
    master_views.NetworkOperatorModelViewSet,
    basename="networks",
)
router.register(
    r"rating/asset-labels",
    master_views.RatingLabelsAssetModelViewSet,
    basename="rating_asset_labels",
)
router.register(
    r"rating/labels",
    master_views.RatingLabelsModelViewSet,
    basename="rating_labels",
)
router.register(
    r"privacy-policy",
    master_views.PrivacyPolicyModelViewSet,
    basename="privacy-policy",
)
router.register(
    r"terms-of-use",
    master_views.TermsOfUseModelViewSet,
    basename="terms-of-use",
)
router.register(
    r"insurance/company/type",
    insurance_views.InsuranceTypeModelViewSet,
    basename="insurance-company/type",
)
router.register(
    r"insurance/company",
    insurance_views.InsuranceCompanyModelViewSet,
    basename="insurance-company",
)

router.register(
    r"faq",
    master_views.FaqModelViewSet,
    basename="faq",
)
router.register(
    r"contact-us/request-types",
    master_views.ContactUsRequestTypeModelViewSet,
    basename="contact-us-request-types",
)

urlpatterns = [
    path("", include(router.urls)),
    path(
        "upload/amenities/csv",
        csv_master_views.AmenitiesCSVUploadView.as_view(),
        name="upload_amenities_csv",
    ),
    path(
        "upload/connectors/csv",
        csv_master_views.ConnectorCSVUploadView.as_view(),
        name="upload_connectors_csv",
    ),
    path(
        "upload/locations/csv",
        csv_master_views.LocationCSVUploadView.as_view(),
        name="upload_locations_csv",
    ),
    path(
        "upload/network/csv",
        csv_master_views.NetworkOperatorCSVUploadView.as_view(),
        name="upload_network_csv",
    ),
    path(
        "dashboard/count",
        dashboard_views.DashboardCountAPIView.as_view(),
        name="dashboard-count",
    ),
]
