# Datos de demostración ICAT Veracruz

La base local `icat` se reemplazó con registros ficticios para demostración. Los catálogos de módulos, estados, municipios, meses, sectores y tipos de curso, junto con el historial de migraciones, se conservaron. Las tablas operativas se limpiaron; las tablas MyISAM se eliminaron al final porque no admiten rollback.

Las 18 unidades educativas corresponden a la oferta publicada por ICATVER. Dirección General y la unidad móvil son registros de demostración. Las personas, CURP, RFC, cursos, contratos, certificaciones asociadas a PSC, facturas y montos son ficticios. Los PDF y XML generados incluyen la marca `DEMO / SIN VALIDEZ`; los XML no están timbrados.

## Usuarios

Los ocho usuarios usan la contraseña común `DemoICAT2026!`:

| Perfil | Usuario |
| --- | --- |
| Administrador | `demo.admin` |
| Planeación | `demo.planeacion` |
| Técnico Académico | `demo.tecnico` |
| Planes y programas | `demo.planes` |
| Servicios Docentes | `demo.docentes` |
| Vinculación | `demo.vinculacion` |
| Financieros | `demo.financieros` |
| Unidad | `demo.unidad` |

## Reponer la demostración

Desde la raíz del proyecto, ejecutar:

```sh
php artisan db:seed --class='Database\Seeders\DemoIcatSeeder' --force
php artisan storage:link
```

El seeder elimina nuevamente todas las filas operativas antes de cargar los datos demo. Conserva las tablas estáticas mencionadas al inicio. Antes del primer reemplazo se guardó un respaldo completo en `/private/tmp/icat-before-demo-refresh-20261108.sql`.

Los documentos están en `storage/app/public` y el enlace `public/storage` permite servirlos localmente. En MAMP queda configurada la URL local `http://localhost:8888/ICAT/icat/public`; inicia MAMP/Apache para acceder a las rutas de descarga.
