- app/Livewire: 34 componentes agrupados en Issues/, Projects/, Phases/,
Companies/, Users/, Admin/, Inspections/, Layers/, Media/, Common/
(Client/, Reports/, Forms/, Actions/ ya estaban). Namespaces actualizados.
- resources/views/livewire: vistas sueltas movidas a subcarpetas espejo
(companies/, users/, phases/, roles/, inspections/, media/, common/);
render() actualizado.
- Referencias actualizadas sin romper nada: rutas (FQN, nombres de ruta intactos),
tags <livewire:...>/@livewire() a alias con punto, y use de los tests.
- No tocado: Volt de Breeze (auth/profile/navigation), y el portal cliente
(user-nav/client-projects) que ya tenía referencias inconsistentes.
Verificado: 69 rutas OK, vistas compilan, suite 69 passing (solo 2 pre-existentes
sqlite). autoload regenerado con --ignore-platform-reqs (PHP 8.2).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- PhaseList pasa a contenedor: botón "Agregar fase" + modal crear/editar con todos
los parámetros (nombre, descripción, orden, color, progreso, fechas previstas y
reales) y validación. Antes "Agregar fase" creaba directamente 'Nueva fase'.
- PhaseTable (Rappasoft): orden, nombre+descripción, barra de progreso, fechas,
color y acciones (editar abre el modal vía evento, actualizar progreso, eliminar);
búsqueda y ordenación. Gateado por 'manage phases' + acceso al proyecto.
Tests: PhaseManagementTest (4). Suite 65 passing (solo 2 pre-existentes sqlite).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>