Files
mercadodevida/work/artifacts/F-112/architect.md
2026-08-21 13:31:28 +02:00

19 lines
1.2 KiB
Markdown

# F-112 — Arquitectura: disclaimer de contenido asistido por IA en la ficha de producto
## Decisiones
1. **Flag único `ai_assisted`**: una columna `boolean NOT NULL DEFAULT false` en `catalog_products`.
- Más simple que flags por campo y suficiente para el aviso legal.
2. **Migración 040**: `ALTER TABLE catalog_products ADD COLUMN IF NOT EXISTS ai_assisted boolean NOT NULL DEFAULT false;`
3. **Dominio/serialización**: `Product.aiAssisted` propagado en rutas, repositorio y `serializeProduct`.
4. **Set del flag**: cuando se ejecuta `POST /products/:id/generate-seo` y el flujo completa al menos una generación, el flag se activa en true. El admin también puede alternarlo manualmente en el editor (futuro; no se requiere para este ticket).
5. **Frontend** (`apps/frontend/src/app/products/[slug]/page.tsx`): cuando `product.aiAssisted === true`, renderizar un bloque destacado en la ficha con los dos avisos.
## Tests
- `serializeProduct` debe incluir `aiAssisted` (registrable en tests de product-use-cases).
- `productsAiAssisted.test.ts` (puerta frontend): no es trivial sin jsdom; lo dejamos para smoke.
## Fuera de alcance
- Sin cambios en el flujo admin de IA.
- Sin nuevos endpoints.
- Sin traducciones.