# Instalar el parche de reportes MailTemp en TAKS

Esta versión v2 sustituye al ZIP anterior de esta integración: instala v2, no ambos. Si el anterior solo fue subido y no aplicado, no requiere reversión.

Este ZIP contiene solo el receptor de reportes, la corrección de creación de tokens con días enviados como texto, su ruta, una migración, la pantalla de configuración API y documentación. Requiere la instalación TAKS existente; no es una instalación completa. No incluye `.env`, tokens, bases de datos, archivos de clientes ni `vendor`. No cambia dependencias Composer.

## Instalación en el servidor

1. Guarda una copia de la base de datos y de los archivos que reemplaza este parche. Comprueba el SHA-256 del ZIP recibido antes de usarlo.
2. Extrae el ZIP en una carpeta temporal. Dentro de `taks-mailtemp-reports-2026-09-18-v2/` están las rutas relativas a la raíz Laravel (la carpeta que contiene `artisan`). Copia esas rutas sobre la instalación existente. **No reemplaces ni borres `.env`, `storage`, `public`, `vendor` ni la instalación completa**. Conserva sus permisos y credenciales actuales.
3. Como usuario propietario de TAKS y desde esa raíz, usando la versión PHP del sitio, ejecuta:

```sh
php artisan migrate --force
php artisan optimize:clear
```

La migración nueva crea `agent_report_requests`; no elimina ni migra las tarjetas existentes. No ejecutes `migrate:fresh` ni importes SQL. No hace falta modificar `vendor`.

4. Comprueba la ruta:

```sh
php artisan route:list --path=api/v1/boards
```

Debe aparecer `POST api/v1/boards/{id}/reports`. Una llamada sin token debe devolver 401.

5. En Configuración → API, crea o utiliza un token de escritura limitado al tablero **MailTemp.co**. Verifica el ID visible (actualmente 1) antes de configurar al emisor. La creación con 365 días ya convierte el valor validado a entero. El token aparece una sola vez; guárdalo en el entorno del servidor emisor, nunca en código, URL o capturas.
6. Configura la integración de MailTemp con el origen HTTPS de TAKS, el tablero correcto y el token. Envía un reporte de prueba autorizado: debe aparecer en **Reportes de clientes**. Si esa lista no existe, se crea; Pendiente y Anotado permanecen intactas. Repetir el mismo UUID y contenido devuelve la misma tarjeta. Si adjuntas captura, debe estar configurado el almacenamiento privado R2 ya usado por TAKS. No se activa ni configura R2 con este parche.

## Validación local

26 pruebas / 184 aserciones correctas en SQLite `:memory:` y almacenamiento simulado: API existente, adjuntos, receptor de reportes y creación de tokens. Incluye idempotencia, alcance, permisos, lista existente, límites de captura y limpieza después de fallo. No se aplicó la migración a producción. El 500 al crear token se reprodujo localmente y desapareció al convertir los días a entero; sin logs de producción no se certifica que sea su única causa.

Consulta `docs/API-AGENTES.md` para el contrato completo. Si necesitas revertir código, restaura la copia de archivos; conserva la tabla nueva y sus registros hasta revisar las recepciones, en vez de ejecutar un rollback que los eliminaría.
