feat(nakui): Fase 2 del ERP — relaciones legibles + formato

Column.ref_entity resuelve un UUID al label del record referido;
Column.format (ValueFormat Number/Currency) agrupa miles y prefija
símbolo. El campo entity_ref en formularios muestra el record elegido
por su label, no el UUID. human_label_for_record reconoce nombre/titulo
(español). El módulo CRM: las listas muestran el nombre del cliente y
monto como $12,000.

Helper format_value en meta-runtime. Tests en meta-schema, meta-runtime
y nakui-ui verdes; clippy limpio.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 19:05:04 +00:00
parent 86d06da020
commit eba629a806
10 changed files with 277 additions and 36 deletions
+7 -6
View File
@@ -40,7 +40,7 @@ Ordenadas por dependencia y por impacto visible. Cada fase toca
`meta-schema` (constructo declarativo nuevo) → `meta-runtime` (helper
puro) → `meta-form` (render) → módulos de ejemplo + tests.
### Fase 1 · Captura sin fricción — EN CURSO
### Fase 1 · Captura sin fricción — HECHA
- `FieldKind::Select` — campos enumerados como desplegable/chips, con
`options` (valor + etiqueta) declaradas.
@@ -51,12 +51,13 @@ puro) → `meta-form` (render) → módulos de ejemplo + tests.
- **Resultado**: ningún formulario pide un UUID a mano; etapa, canal y
similares son selects. El CRM se siente correcto al cargar datos.
### Fase 2 · Relaciones legibles + formato
### Fase 2 · Relaciones legibles + formato — HECHA
- Columnas/campos `entity_ref` muestran el **label** del record
referido (vía `human_label_for_record`), no el UUID.
- Formato de valores declarable: moneda (`12000``$12,000.00`),
fecha, número con separadores. `FieldSpec.format` / `Column.format`.
- Columnas con `ref_entity` muestran el **label** del record referido
(vía `human_label_for_record`), no el UUID. El campo `entity_ref` en
formularios muestra el record elegido, no el UUID crudo.
- Formato declarable por columna: `ValueFormat::{Number, Currency}`
separador de miles + símbolo (`12000``$12,000`).
- **Resultado**: las listas se leen como un ERP, no como un volcado.
### Fase 3 · Ficha de detalle