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

1.2 KiB

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.