from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import (
    ImportarCatalogoView, CuentaViewSet, AsientoViewSet, 
    ImportarExtractoBancoView, LibroDiarioView, LibroDiarioPeriodosView, 
    LibroMayorView, LibroMayorPeriodosView, DashboardMetricasView,
    DatosEmpresaView, AuditoriaLogView, BackupCrearView, BackupImportarView,
    EstadoResultadosView, EstadoSituacionView, SolicitudCuentaViewSet,
    SolicitudBackupViewSet, SolicitudCambioAsientoViewSet, DatosGraficosView,
    LibroDiarioExportarExcelView, LibroMayorExportarExcelView, PlanCuentasExportarExcelView,
    EstadoResultadosExportarExcelView, EstadoSituacionExportarExcelView,
    EstadoEvolucionPatrimonioExportarExcelView,
    CierreContablePrevisualizarView, CierreContableEjecutarView,
    CierreContablePrecierreView, CierreContableRevertirView, CierreContableHistorialView
)

router = DefaultRouter()
router.register(r'cuentas', CuentaViewSet, basename='cuenta')
router.register(r'asientos', AsientoViewSet, basename='asiento')
router.register(r'solicitudes-catalogo', SolicitudCuentaViewSet, basename='solicitud-catalogo')
router.register(r'solicitudes-backup', SolicitudBackupViewSet, basename='solicitud-backup')
router.register(r'solicitudes-asientos', SolicitudCambioAsientoViewSet, basename='solicitud-asiento')

urlpatterns = [
    path('api/cuentas/importar/', ImportarCatalogoView.as_view(), name='importar-catalogo'),
    path('api/banco/importar-extracto/', ImportarExtractoBancoView.as_view(), name='importar-extracto-banco'),
    path('api/reportes/libro-diario/periodos/', LibroDiarioPeriodosView.as_view(), name='libro-diario-periodos'),
    path('api/reportes/libro-diario/', LibroDiarioView.as_view(), name='libro-diario'),
    path('api/reportes/libro-diario/exportar-excel/', LibroDiarioExportarExcelView.as_view(), name='libro-diario-excel'),
    path('api/reportes/libro-mayor/periodos/', LibroMayorPeriodosView.as_view(), name='libro-mayor-periodos'),
    path('api/reportes/libro-mayor/', LibroMayorView.as_view(), name='libro-mayor'),
    path('api/reportes/libro-mayor/exportar-excel/', LibroMayorExportarExcelView.as_view(), name='libro-mayor-excel'),
    path('api/reportes/plan-cuentas/exportar-excel/', PlanCuentasExportarExcelView.as_view(), name='plan-cuentas-excel'),
    path('api/reportes/estado-resultados/', EstadoResultadosView.as_view(), name='estado-resultados'),
    path('api/reportes/estado-resultados/exportar-excel/', EstadoResultadosExportarExcelView.as_view(), name='estado-resultados-excel'),
    path('api/reportes/estado-situacion/', EstadoSituacionView.as_view(), name='estado-situacion'),
    path('api/reportes/estado-situacion/exportar-excel/', EstadoSituacionExportarExcelView.as_view(), name='estado-situacion-excel'),
    path('api/reportes/estado-patrimonio/exportar-excel/', EstadoEvolucionPatrimonioExportarExcelView.as_view(), name='estado-patrimonio-excel'),
    path('api/reportes/cierre-contable/previsualizar/', CierreContablePrevisualizarView.as_view(), name='cierre-c-previsualizar'),
    path('api/reportes/cierre-contable/precierre/', CierreContablePrecierreView.as_view(), name='cierre-c-precierre'),
    path('api/reportes/cierre-contable/ejecutar/', CierreContableEjecutarView.as_view(), name='cierre-c-ejecutar'),
    path('api/reportes/cierre-contable/revertir/', CierreContableRevertirView.as_view(), name='cierre-c-revertir'),
    path('api/reportes/cierre-contable/historial/', CierreContableHistorialView.as_view(), name='cierre-c-historial'),
    path('api/dashboard/metricas/', DashboardMetricasView.as_view(), name='dashboard-metricas'),
    path('api/dashboard/datos-graficos/', DatosGraficosView.as_view(), name='datos-graficos'),
    
    path('api/config/empresa/', DatosEmpresaView.as_view(), name='config-empresa'),
    path('api/config/auditoria/', AuditoriaLogView.as_view(), name='config-auditoria'),
    path('api/config/backup/crear/', BackupCrearView.as_view(), name='backup-crear'),
    path('api/config/backup/importar/', BackupImportarView.as_view(), name='backup-importar'),
    
    path('api/', include(router.urls)),
]
