from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from django.contrib.auth import views as auth_views
from intendencia import views
from django.views.decorators.http import require_POST



urlpatterns = [
    path('', views.principal, name='principal'),
    path('api/datos/', views.obtener_datos, name='obtener_datos'),
    
    # Autenticación
    path('login/', views.CustomLoginView.as_view(), name='login'),
    path('logout/', LogoutView.as_view(next_page=settings.LOGOUT_REDIRECT_URL), name='logout'),

    
    # Directores
    path('directores/', views.DirectoresListView.as_view(), name='listar_directores'),
    path('directores/crear/', views.DirectoresCreateView.as_view(), name='crear_director'),
    path('directores/editar/<int:pk>/', views.DirectoresUpdateView.as_view(), name='editar_director'),
    path('directores/eliminar/<int:pk>/', views.DirectoresDeleteView.as_view(), name='eliminar_director'),

    # Subjefes
    path('jefes/', views.SubjefesListView.as_view(), name='listar_subjefes'),
    path('jefes/crear/', views.SubjefesCreateView.as_view(), name='crear_subjefe'),
    path('jefes/editar/<int:pk>/', views.SubjefesUpdateView.as_view(), name='editar_subjefe'),
    path('jefes/eliminar/<int:pk>/', views.SubjefesDeleteView.as_view(), name='eliminar_subjefe'),
    
    # Inventario Administrativo
    path('inventario_administrativo/', views.InventarioAdministrativoListView.as_view(), name='listar_inventario_administrativo'),
    path('inventario_administrativo/crear/', views.InventarioAdministrativoCreateView.as_view(), name='crear_inventario_administrativo'),
    path('inventario_administrativo/editar/<int:pk>/', views.InventarioAdministrativoUpdateView.as_view(), name='editar_inventario'),
    path('inventario_administrativo/eliminar/<int:pk>/', views.InventarioAdministrativoDeleteView.as_view(), name='eliminar_inventario'),

    # Inventario Táctico
    path('inventario_tactico/', views.InventarioTacticoListView.as_view(), name='listar_inventario_tactico'),
    path('inventario_tactico/crear/', views.InventarioTacticoCreateView.as_view(), name='crear_inventario_tactico'),
    path('inventario_tactico/editar/<int:pk>/', views.InventarioTacticoUpdateView.as_view(), name='editar_inventario_tactico'),
    path('inventario_tactico/eliminar/<int:pk>/', views.InventarioTacticoDeleteView.as_view(), name='eliminar_inventario_tactico'),
    
    # Unidades
    path('unidad/', views.UnidadListView.as_view(), name='unidad_list'),
    path('unidad/crear/', views.UnidadCreateView.as_view(), name='unidad_create'),
    path('unidad/detalle/<int:id>/', views.detalle_unidad, name='detalle'),
    path('unidad/editar/<int:pk>/', views.UnidadUpdateView.as_view(), name='unidad_edit'),
    path('unidad/eliminar/<int:pk>/', views.UnidadDeleteView.as_view(), name='unidad_delete'),
    
    # Asignaciones
    path('asignacion_administrativa/', views.asignacion_administrativa, name='asignacion_administrativa'),
    path('asignacion_tactica/', views.asignacion_tactica, name='asignacion_tactica'),
    path('eliminar_todo/', views.eliminar_todo, name='eliminar_todo'),
    path('eliminar_todo_tactico/', views.eliminar_todo_tactico, name='eliminar_todo_tactico'),
    path('generar_pdf/', views.generar_pdf, name='generar_pdf'),
    path('generar_pdf_tactico/', views.generar_pdf_tactico, name='generar_pdf_tactico'),
    path('pdf/administrativo/<int:unidad_id>/', views.detalle_pdf, {'tipo': 'administrativo'}, name='pdf_admin'),
    path('pdf/tactico/<int:unidad_id>/', views.detalle_pdf, {'tipo': 'tactico'}, name='pdf_tactico'),
    
    
    path('eliminar_asignacion_admin/<int:pk>/', views.eliminar_asignacion_admin, name='eliminar_asignacion_admin'),
    path('eliminar_asignacion_tactica/<int:pk>/', views.eliminar_asignacion_tactica, name='eliminar_asignacion_tactica'),
    
    path('expired/', views.expired_page, name='expired'),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)