from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.views.defaults import page_not_found, server_error
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),
    path('accounts/logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('', include('attendance.urls')),
    path('feedback/', include('feedback.urls')),
    path('apparel/', include('apparel.urls')),
    path('registration/', include('registration.urls')),
    path('icict/', include('icict_attendance.urls')),
]

# Add static and media URL patterns if in debug mode
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

# Error handlers - using our custom templates
def custom_404(request, exception):
    return page_not_found(request, exception, template_name='404.html')

def custom_500(request):
    return server_error(request, template_name='500.html')

handler404 = 'ictaz_smart_register.urls.custom_404'
handler500 = 'ictaz_smart_register.urls.custom_500'