Files
mercadodevida/work/artifacts/F-116/implementer.md
2026-08-21 14:23:17 +02:00

1.4 KiB

F-116 — Traducir categorías legacy a Español (Title Case)

Cambios

  • src/modules/categories/legacy/legacy-catalog.ts:
    • CATEGORY_TRANSLATIONS: tabla de traducción para las 39 categorías reales (incluye las que ya estaban en español como alias).
    • translateCategoryName(name): devuelve el nombre en español o el original si no hay mapping.
    • buildRenamePlan(existingCategoryNames): lista de renombres en sitio (ocId, oldName, newName).
    • buildImportPlan: ahora ignora entradas cuyo nombre en inglés ya está en el catálogo (las maneja el rename plan).
  • src/modules/categories/tests/legacy-catalog.test.ts: 3 nuevos tests (Title Case, cobertura, renombre).
  • scripts/seed-legacy-categories.mjs:
    • buildRenamePlan se calcula al inicio.
    • Tras los inserts, ejecuta UPDATE categories_categories SET name = $1 WHERE name = $2 por cada rename.
    • Idempotente: re-ejecuciones no renombran nada.

Aplicación

  • 30 categorías renombradas en su lugar (slugs conservados).
  • 0 inserts nuevos (todas las categorías ya existían desde F-114).
  • 0 renames en segunda ejecución (idempotente).

Evidencia

  • npm run typecheck OK.
  • npm test: 172 passed / 0 failed (3 nuevos).
  • npm run build OK.
  • DB: nuts-and-seeds → "Frutos Secos y Semillas", wine → "Vino", tea-and-infusions → "Té e Infusiones", home → "Hogar".
  • URLs (/categoria/<slug>) intactas: los slugs no cambian.