Skip to content

Fase 2.2: Progress Tracking

← Anterior: 2.1 SSE Endpoint | Fase 3 Production →


Agregar columna progress a background_jobs

Archivo: */backend/background-jobs-system.md

Rama: feature/background-jobs-progress

Fase: 2.2: Progress Tracking

Estimación: 2 horas

Dependencias: Todas tareas Fase 2.1

Deliverables

  • [ ] Crear migración: ALTER TABLE background_jobs ADD COLUMN progress DECIMAL(5,2) DEFAULT 0
  • [ ] Índice en progress
  • [ ] DTO actualizada
  • [ ] Model updater setProgress(jobId, percentage)
  • [ ] Ejecutar y validar migración

Modificar JobRunner para actualizar progress

Archivo: */backend/background-jobs-system.md

Rama: feature/background-jobs-progress

Fase: 2.2: Progress Tracking

Estimación: 3 horas

Dependencias: Agregar columna progress

Deliverables

  • [ ] Modificar server/src/services/BackgroundJobs/JobRunner.php
    • [ ] Método setProgress(percentage)
    • [ ] Emite NOTIFY con progress update
    • [ ] BatchInvoicingJobHandler: actualiza progress por factura (100/totalFacturas)
  • [ ] Tests verificando progress updates
  • [ ] Tests NOTIFY con progress

Frontend: Progress bar component

Archivo: */frontend/background-jobs-system.md

Rama: feature/background-jobs-progress-ui

Fase: 2.2: Progress Tracking

Estimación: 3 horas

Dependencias: Modificar JobRunner para actualizar progress

Deliverables

  • [ ] Crear componente public/src/backgroundJobs/components/JobProgressBar.tsx
    • [ ] Muestra progress 0-100%
    • [ ] Updates en tiempo real vía useJobStream
    • [ ] Estados: pending (gris), processing (azul), completed (verde), failed (rojo)
    • [ ] Animaciones CSS
  • [ ] Integrar en job status view
  • [ ] Tests (snapshot, interactions)
  • [ ] Accessibility (aria-valuenow)

← Anterior: 2.1 SSE Endpoint | Fase 3 Production →