1.2 KiB
1.2 KiB
F-112 — Arquitectura: disclaimer de contenido asistido por IA en la ficha de producto
Decisiones
- Flag único
ai_assisted: una columnaboolean NOT NULL DEFAULT falseencatalog_products.- Más simple que flags por campo y suficiente para el aviso legal.
- Migración 040:
ALTER TABLE catalog_products ADD COLUMN IF NOT EXISTS ai_assisted boolean NOT NULL DEFAULT false; - Dominio/serialización:
Product.aiAssistedpropagado en rutas, repositorio yserializeProduct. - Set del flag: cuando se ejecuta
POST /products/:id/generate-seoy 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). - Frontend (
apps/frontend/src/app/products/[slug]/page.tsx): cuandoproduct.aiAssisted === true, renderizar un bloque destacado en la ficha con los dos avisos.
Tests
serializeProductdebe incluiraiAssisted(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.