feat(nakui): metainterfaz declarativa + 6 modulos ERP estandar
1{
2 "id": "sales_orders",
3 "label": "Ventas",
4 "description": "Órdenes de venta y sus líneas.",
5 "entities": [
6 {
7 "name": "sales_order",
8 "label": "Orden de venta",
9 "fields": [
10 { "name": "order_number", "label": "Número", "kind": "text", "required": true },
11 { "name": "customer_name", "label": "Cliente", "kind": "text", "required": true },
12 { "name": "issued_at", "label": "Fecha de emisión", "kind": "date", "required": true },
13 { "name": "due_at", "label": "Fecha de vencimiento", "kind": "date" },
14 { "name": "status", "label": "Estado", "kind": "text", "required": true, "default": "draft", "help": "draft / confirmed / shipped / closed / cancelled" },
15 { "name": "subtotal", "label": "Subtotal", "kind": "number", "default": "0" },
16 { "name": "tax", "label": "Impuestos", "kind": "number", "default": "0" },
17 { "name": "total", "label": "Total", "kind": "number", "default": "0" },
18 { "name": "notes", "label": "Notas", "kind": "multiline" }
19 ]
20 }
21 ],
22 "menu": [
23 { "label": "Órdenes", "view": "list", "icon": "🧾" },
24 { "label": "Nueva orden", "view": "form", "icon": "✚" }
25 ],
26 "views": {
27 "list": {
28 "kind": "list",
29 "title": "Órdenes de venta",
30 "entity": "sales_order",
31 "columns": [
32 { "field": "order_number", "label": "N°", "weight": 0.8 },
33 { "field": "customer_name", "label": "Cliente", "weight": 2.0 },
34 { "field": "issued_at", "label": "Emitida", "weight": 1.0 },
35 { "field": "status", "label": "Estado", "weight": 0.8 },
36 { "field": "total", "label": "Total", "weight": 1.0 }
37 ],
38 "actions": [
39 { "kind": "open_view", "view": "form", "label": "✚ Nueva orden" }
40 ],
41 "search_in": ["order_number", "customer_name"]
42 },
43 "form": {
44 "kind": "form",
45 "title": "Nueva orden de venta",
46 "entity": "sales_order",
47 "fields": [
48 { "name": "order_number", "label": "Número de orden", "kind": "text", "required": true },
49 { "name": "customer_name", "label": "Cliente", "kind": "text", "required": true },
50 { "name": "issued_at", "label": "Fecha de emisión", "kind": "date", "required": true },
51 { "name": "due_at", "label": "Fecha de vencimiento", "kind": "date" },
52 { "name": "status", "label": "Estado", "kind": "text", "required": true, "default": "draft" },
53 { "name": "subtotal", "label": "Subtotal", "kind": "number", "default": "0" },
54 { "name": "tax", "label": "Impuestos", "kind": "number", "default": "0" },
55 { "name": "total", "label": "Total", "kind": "number", "default": "0" },
56 { "name": "notes", "label": "Notas", "kind": "multiline" }
57 ],
58 "on_submit": {
59 "kind": "seed_entity",
60 "entity": "sales_order",
61 "next_view": "list"
62 }
63 }
64 }
65}