# webapp/api/urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView, SpectacularRedocView

from webapp.api.fileman.views import ContentViewSet
from webapp.api.surat.views import SuratViewSet
from webapp.api.disp.views import DisposisiViewSet
from webapp.api.auth.views import LoginView, RefreshView, LogoutView
from webapp.api.users.views import UserViewSet
from webapp.api.seting.views import PublicSettingViewSet, AuditLogViewSet
from webapp.api.categories.views import CategoryViewSet
from webapp.api.skpd.views import SkpdListAPIView


# Router default → tidak override permission
router = DefaultRouter()
router.register(r'berkas', ContentViewSet, basename='berkas')
router.register(r'surat', SuratViewSet, basename='surat')
router.register(r'disposisi', DisposisiViewSet, basename='disposisi')
router.register(r'users', UserViewSet, basename='users')
router.register(r'settings', PublicSettingViewSet, basename='settings')
router.register(r'auditlogs', AuditLogViewSet, basename='auditlogs')
router.register(r'categories', CategoryViewSet, basename='categories') 

urlpatterns = [
    path('', include(router.urls)),
    path('skpd/', SkpdListAPIView.as_view({'get': 'list'}), name='skpd-list'),

    # Auth
    path('auth/login/', LoginView.as_view(), name='token_obtain_pair'),
    path('auth/refresh/', RefreshView.as_view(), name='token_refresh'),
    path('auth/logout/', LogoutView.as_view(), name='auth_logout'),

    # Swagger / Redoc
    path('schema/', SpectacularAPIView.as_view(), name='schema'),
    path('swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
    path('redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'),
]
