- 1.1 Fix
driver-skills-context.tsx- ELIMINADO componente completodriver-skills/(duplicado deuser-skills/) - 1.2 Fix DELETE workflow transitions - Creado
[transitionId]/route.tscon auth y soft-delete - 1.3 Fix
fleets-context.tsxroles inválidos - Corregido a ADMIN_FLOTA/PLANIFICADOR/ADMIN_SISTEMA/MONITOR - 1.4 Fix
order-form-context.tsx- Agregado mapeo de customFields al editar - 1.5 Fix
users.company_idnullable - CORRECTO: ya es nullable en schema (ADMIN_SISTEMA necesita null)
- 2.1 Eliminar
/api/debug-vroom- ELIMINADO endpoint debug - 2.2 Proteger
/api/optimization/engines- Agregado setupAuthContext + unauthorizedResponse - 2.3 Proteger hard delete de órdenes - Agregado auth + RBAC (solo ADMIN_SISTEMA puede hard delete)
- 2.4 Mobile routes auth - FALSO POSITIVO: los 3 endpoints ya verifican JWT via
getAuthenticatedUser()
- 3.1 Generar migration para tablas faltantes - Consolidado en migración única 0000 (40 tablas, schema limpio)
- 3.2 Eliminar
audit_logs.tenant_idredundante - Eliminado de schema + tenant-aware.ts + audit.ts - 3.3 Fix
vehicle_skills.codeunique global → UNIQUE(company_id, code) - Cambiado a uniqueIndex compuesto - 3.4 Agregar unique constraints en junction tables - 5 uniqueIndex agregados
- 3.5 Agregar FK constraint a
users.primary_fleet_id→ fleets.id (onDelete: set null) - 3.6 Fix timestamps nullable en workflow/field tables → .notNull().defaultNow()
- 3.7 Agregar indexes en orders, routeStops, driverLocations, workflow/field tables
- 3.8 Estandarizar ON DELETE: csvTemplates y driverLocations → RESTRICT
- 3.9 Migrar 15+ columnas text → jsonb + safeParseJson + eliminar JSON.stringify en writes
- 4.1 Eliminar exports dead en
use-api.ts- Removidos useApiList, useApiMutation, useApiPolling, useApiImmutable, createCompanyFetcher - 4.2 Eliminar ruta duplicada
/api/optimization/presets- ELIMINADO - 4.3 Extraer
extractTenantContexta@/lib/routing/route-helpers- 76 archivos migrados - 4.4 Fix
companyId ?? ""→ null guard explícito - 21 instancias corregidas en 7 archivos - 4.5 Fix
driver-skills-context.tsx- ELIMINADO con todo el componente - 4.6 Eliminar componente
driver-skills/- ELIMINADO completo (duplicado de user-skills) - 4.7 Sistema dual de roles - INVESTIGADO: Backend usa
users.role(JWT), frontend usauser_roles(RBAC dinámico). Ya están sincronizados via/api/users/[id]/roles. Es diseño intencional (legacy + RBAC coexisten).
- 5.1 Fix
/auth/logouty/auth/refresh- Removido soporte GET (CSRF risk) - 5.2 Fix
updatedAt- Solo 1 instancia faltante (optimization-runner.ts RUNNING status), corregida - 5.3 Estandarizar formato de error responses - 27 instancias corregidas en 5 archivos:
{error}como estándar
- DB fue dropeada y re-migrada con esquema limpio (migración única 0000)
- Scripts de migración one-time eliminados (migrate-extract-tenant.ts, migrate-json-parse.ts)
safeParseJsonutility creado ensrc/lib/utils/safe-json.tspara compatibilidad text↔jsonb- Build pasa limpio (solo pre-existing
/_global-errorbug de Next.js)