feat(F-112): completed feature
This commit is contained in:
18
work/artifacts/F-112/architect.md
Normal file
18
work/artifacts/F-112/architect.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user