Skip to content

[EPIC] Catalogo maestro de insumos unificado (Supply master-data + sinonimos + i18n) #228

Description

@vgpastor

Objetivo

Unificar los nombres de productos, categorias y su organizacion para que dejen de ser texto libre y se usen de forma consistente en todas las list items (necesidades, ofertas, inventario, containers). Hoy SupplyLine.name es texto libre: el mismo insumo se escribe de N formas y no se puede agregar, casar oferta<->necesidad ni prever por centro.

Se introduce el catalogo maestro de insumos que el contexto supplies ya preveia (SupplyLine disenado para referenciar un Supply por id):

  • Supply (master-data global): codigo INS-NNNN, nombre canonico, categoria, unidad por defecto, attributes (jsonb) y variantes estructuradas (variantOfId + atributos: agua por tamano, panales por talla...).
  • Sinonimos (SupplyAlias): los 454 terminos del BUSCADOR UCAB (genericos, comerciales venezolanos, erratas) -> insumo canonico. Es el corazon de "unificar nombres".
  • Categorias y subcategorias globales, ya sembradas y editables por admin (etiquetas, orden, jerarquia, idiomas). Los ~12 slugs nucleo del enum quedan protegidos (no se borran/renombran porque el codigo los cablea).
  • i18n de categorias y nombres de insumo: nombre base (es) + tablas de traduccion (*_translations) con fallback, extensible a N idiomas sin migracion.
  • Gobernanza admins-only (catalogue:manage): catalogo cerrado; en campo se usa el escape "Otro" y un admin lo promueve/aliasa. Enlace soft SupplyLine.supplyId (opcional) para no romper datos legacy ni la captura.
  • Semilla real: la Hoja Maestra UCAB (215 insumos + 454 alias) arranca el catalogo con datos reales.

Decisiones tomadas

  • Catalogo global (sin emergency_id, como categories).
  • Enlace soft: SupplyLine mantiene name y gana supplyId opcional.
  • Variantes/atributos estructurados.
  • Categorias globales, sembradas y admin-editables; slugs nucleo protegidos.
  • Admins-only; campo limitado al catalogo con escape "Otro".
  • i18n con base + traducciones + fallback; locales iniciales es (base) + en.

Issues hijas

Fase 1 - Modelo + datos (backend)

Fase 2 - API

Fase 3 - Web + datos legacy

Fase 4 - Cierre

Definicion de Done

  • Existe el catalogo Supply global con codigo, categoria, unidad, atributos y variantes.
  • Los alias resuelven nombre/sinonimo -> insumo canonico (semilla UCAB cargada: 215 insumos + 454 alias).
  • Categorias y subcategorias globales, sembradas, editables por admin con i18n y slugs nucleo protegidos.
  • SupplyLine.supplyId (soft link) propagado a needs/offers/inventario/containers y datos legacy enlazados best-effort.
  • Selector de insumo (autocomplete + "Otro") en captura y panel admin del catalogo operativos.
  • API publica /supplies locale-aware en el api-client tipado y documentada en /docs + AGENTS.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1area:dataIngesta, taxonomia y datos de recursosepic

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions