from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.sitemaps.views import sitemap
from django.urls import include, path

from travel.admin_panel import (
    AdminLoginView,
    AdminLogoutView,
    DashboardView,
    EnquiryExportView,
    EnquiryManagementView,
    GoogleSettingsView,
    HomePageSettingsView,
    LikeManagementView,
    ReviewManagementView,
    SEOSettingsView,
    WebsiteSettingsView,
)
from travel.seo_views import robots_txt
from travel.sitemaps import CabServiceSitemap, DestinationSitemap, PackageSitemap, ReviewsSitemap, StaticPageSitemap


sitemaps = {
    "static": StaticPageSitemap,
    "packages": PackageSitemap,
    "destinations": DestinationSitemap,
    "cabs": CabServiceSitemap,
    "reviews": ReviewsSitemap,
}


urlpatterns = [
    path("admin/", admin.site.urls),
    path("robots.txt", robots_txt, name="robots_txt"),
    path("sitemap.xml", sitemap, {"sitemaps": sitemaps}, name="django.contrib.sitemaps.views.sitemap"),
    path("admin-login/", AdminLoginView.as_view(), name="admin_login"),
    path("admin-logout/", AdminLogoutView.as_view(), name="admin_logout"),
    path("dashboard/", DashboardView.as_view(), name="dashboard"),
    path("dashboard/enquiries/", EnquiryManagementView.as_view(), name="dashboard_enquiries"),
    path("dashboard/reviews/", ReviewManagementView.as_view(), name="dashboard_reviews"),
    path("dashboard/likes/", LikeManagementView.as_view(), name="dashboard_likes"),
    path("dashboard/enquiries/export/", EnquiryExportView.as_view(), name="dashboard_enquiries_export"),
    path("dashboard/website-settings/", WebsiteSettingsView.as_view(), name="dashboard_website_settings"),
    path("dashboard/seo-settings/", SEOSettingsView.as_view(), name="dashboard_seo_settings"),
    path("dashboard/google-settings/", GoogleSettingsView.as_view(), name="dashboard_google_settings"),
    path("dashboard/home-settings/", HomePageSettingsView.as_view(), name="dashboard_home_settings"),
    path("", include("travel.urls")),
]

handler400 = "travel.error_views.bad_request"
handler403 = "travel.error_views.permission_denied"
handler404 = "travel.error_views.page_not_found"
handler500 = "travel.error_views.server_error"
handler503 = "travel.error_views.service_unavailable"

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0])
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
