feat(nakui): Fase 1 del ERP — FieldKind Select + AutoId, seed inyecta id

Primera fase del plan maestro. La metainterfaz gana dos tipos de campo:
Select (chips de un conjunto cerrado, con options validadas) y AutoId
(UUID autogenerado read-only). NakuiBackend::seed inyecta el id de la
entity = clave del store. El módulo CRM los adopta: etapa/canal son
selects, los ids de idempotencia se autogeneran, el form de cliente ya
no pide id. Ningún formulario pide un UUID a mano.

Tests en meta-schema, meta-runtime y nakui-ui verdes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 18:55:13 +00:00
parent 0d1e378e42
commit 86d06da020
12 changed files with 442 additions and 210 deletions
+5
View File
@@ -282,6 +282,11 @@ impl MetaBackend for NakuiBackend {
data: serde_json::Map<String, Value>,
) -> Result<WriteOutcome, String> {
let id = Uuid::new_v4();
// El `id` de la entity = la clave del store. Inyectarlo en el
// record hace que `data.id` y la clave coincidan — los schemas
// Nickel suelen declarar `id | String` y los morfismos lo leen.
let mut data = data;
data.insert("id".to_string(), Value::String(id.to_string()));
let value = Value::Object(data);
// WAL: log primero, store después.
if self.event_log.is_some() {