from django.urls import include, path from rest_framework.routers import SimpleRouter from utils.cache import smart_cached_view from apps.dobodbi_calendar.views import CalendarList, AdjustmentConfigView, OccasionsList from apps.dobodbi_calendar.views_admin import AdminCalendarOccasionViewSet # Helper function for caching calendar endpoints with smart invalidation and force-refresh support cached_view = smart_cached_view(60 * 60 * 6, key_prefix='calendar_api') admin_router = SimpleRouter() admin_router.register(r'occasions', AdminCalendarOccasionViewSet, basename='admin-calendar-occasions') # Hide admin viewsets from swagger for prefix, viewset, basename in admin_router.registry: viewset.swagger_schema = None urlpatterns = [ path('admin/', include(admin_router.urls)), path('sync-occasions/', cached_view(CalendarList.as_view())), path('adjustemnts/', cached_view(AdjustmentConfigView.as_view())), path('occasions/', cached_view(OccasionsList.as_view())), ]