Implementación de exportables en segundo plano
Sección Frontend
Crear vista copia de importables para exportables
Desarrollar nueva vista/component basada en la vista de importables, adaptada para mostrar y gestionar los exportables.
Deberá listar los registros de exportaciones realizadas, con información relevante (
uuid, tipo, estado, fecha, botones de acción, etc.).
Integrar nueva vista con endpoints de exportables
Conectar la vista de exportables con los endpoints REST nuevos:
Obtener listado de exportaciones (
GET /exportables)Consultar estado específico (
GET /exportables/{uuid}/status)Acceder a descarga del archivo (
GET /exportables/{uuid}/download)
Modificar vista de reporte para añadir opción de exportar en segundo plano
Añadir botón/acción en la pantalla de reportes para solicitar exportación en background con los filtros seleccionados.
Al activar, llamar al endpoint correspondiente (
POST /exportables/sales) e informar al usuario que la exportación se está procesando.Sugerir acceso a la nueva sección de “exportables” para hacer seguimiento.
Diagrama de flujo
Backend
Copia de la tabla massive_imports para massive_exports
Crear una nueva tabla massive_exports con los fields detallados:
uuid, number, total, checksum, type, latest_status_id, latest_status, latest_reason, author_uuid, store_uuid, created_at, updated_at, deleted_at
Cola dedicada (larga duración) para exportables
Configurar la cola de trabajos de exportables para procesamiento en segundo plano.
Prueba de concepto usando copia del reporte de ventas
Implementar y probar el flujo completo utilizando el reporte de ventas como caso de prueba inicial.
Nuevos endpoints para exportables
Implementar endpoints para:
Solicitar exportación (export de ventas)
Consultar estado de exportable
Descargar archivo exportable cuando esté listo
Job para recopilar información y actualizar massive_exports
Crear un job específico que:
Extrae los datos requeridos desde la base de datos (enfrentando el cuello de botella de gran volumen)
Procesa los datos y construye el archivo exportable
Actualiza el estado y progreso (latest_status/latest_reason/total) en massive_exports en cada etapa
Maneja errores y finalización de exportación