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

26 lines
1.4 KiB
Markdown

# 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.