feat(nakui): metainterfaz declarativa + 6 modulos ERP estandar
1{
2 "id": "products",
3 "label": "Productos",
4 "description": "Catálogo de productos y precios.",
5 "entities": [
6 {
7 "name": "product",
8 "label": "Producto",
9 "fields": [
10 { "name": "sku", "label": "SKU", "kind": "text", "required": true, "help": "Código único" },
11 { "name": "name", "label": "Nombre", "kind": "text", "required": true },
12 { "name": "category", "label": "Categoría", "kind": "text", "required": false },
13 { "name": "price", "label": "Precio unitario", "kind": "number", "required": true, "default": "0" },
14 { "name": "stock", "label": "Stock disponible", "kind": "number", "default": "0" },
15 { "name": "active", "label": "En venta", "kind": "boolean", "default": "true" }
16 ]
17 }
18 ],
19 "menu": [
20 { "label": "Catálogo", "view": "list", "icon": "📦" },
21 { "label": "Nuevo producto", "view": "form", "icon": "✚" }
22 ],
23 "views": {
24 "list": {
25 "kind": "list",
26 "title": "Catálogo de productos",
27 "entity": "product",
28 "columns": [
29 { "field": "sku", "label": "SKU", "weight": 1.0 },
30 { "field": "name", "label": "Nombre", "weight": 2.5 },
31 { "field": "category", "label": "Categoría", "weight": 1.5 },
32 { "field": "price", "label": "Precio", "weight": 1.0 },
33 { "field": "stock", "label": "Stock", "weight": 0.8 },
34 { "field": "active", "label": "Activo", "weight": 0.6 }
35 ],
36 "actions": [
37 { "kind": "open_view", "view": "form", "label": "✚ Nuevo" }
38 ],
39 "search_in": ["sku", "name", "category"]
40 },
41 "form": {
42 "kind": "form",
43 "title": "Nuevo producto",
44 "entity": "product",
45 "fields": [
46 { "name": "sku", "label": "SKU", "kind": "text", "required": true },
47 { "name": "name", "label": "Nombre", "kind": "text", "required": true },
48 { "name": "category", "label": "Categoría", "kind": "text" },
49 { "name": "price", "label": "Precio", "kind": "number", "required": true, "default": "0" },
50 { "name": "stock", "label": "Stock inicial", "kind": "number", "default": "0" },
51 { "name": "active", "label": "En venta", "kind": "boolean", "default": "true" }
52 ],
53 "on_submit": {
54 "kind": "seed_entity",
55 "entity": "product",
56 "next_view": "list"
57 }
58 }
59 }
60}