tawasuyu

tawasuyu/brahman

Rust 582TOML 222Markdown 83JSON 198635 Sutichaykuna

⎇ main examples/nakui-modules/customers/module.json JSON · 59 siq'ikuna · 2.2 KB Ñawpa willay ch'uya

feat(nakui): metainterfaz declarativa + 6 modulos ERP estandar 06c4fb913 · Sergio ·

1{
2  "id": "customers",
3  "label": "Clientes",
4  "description": "Gestión de clientes (alta, listado, búsqueda).",
5  "entities": [
6    {
7      "name": "customer",
8      "label": "Cliente",
9      "fields": [
10        { "name": "name", "label": "Nombre", "kind": "text", "required": true },
11        { "name": "email", "label": "Email", "kind": "text", "required": false, "help": "Opcional, formato libre por ahora" },
12        { "name": "phone", "label": "Teléfono", "kind": "text", "required": false },
13        { "name": "active", "label": "Activo", "kind": "boolean", "default": "true" },
14        { "name": "credit_limit", "label": "Límite de crédito", "kind": "number", "default": "0" },
15        { "name": "notes", "label": "Notas", "kind": "multiline", "required": false }
16      ]
17    }
18  ],
19  "menu": [
20    { "label": "Listar", "view": "list", "icon": "📋" },
21    { "label": "Nuevo", "view": "form", "icon": "✚" }
22  ],
23  "views": {
24    "list": {
25      "kind": "list",
26      "title": "Clientes",
27      "entity": "customer",
28      "columns": [
29        { "field": "name", "label": "Nombre", "weight": 2.0 },
30        { "field": "email", "label": "Email", "weight": 3.0 },
31        { "field": "phone", "label": "Teléfono", "weight": 1.5 },
32        { "field": "active", "label": "Activo", "weight": 0.7 },
33        { "field": "credit_limit", "label": "Límite", "weight": 1.0 }
34      ],
35      "actions": [
36        { "kind": "open_view", "view": "form", "label": "✚ Nuevo" }
37      ],
38      "search_in": ["name", "email", "phone"]
39    },
40    "form": {
41      "kind": "form",
42      "title": "Nuevo cliente",
43      "entity": "customer",
44      "fields": [
45        { "name": "name", "label": "Nombre", "kind": "text", "required": true },
46        { "name": "email", "label": "Email", "kind": "text", "required": false },
47        { "name": "phone", "label": "Teléfono", "kind": "text", "required": false },
48        { "name": "active", "label": "Activo", "kind": "boolean", "default": "true" },
49        { "name": "credit_limit", "label": "Límite de crédito", "kind": "number", "default": "0" },
50        { "name": "notes", "label": "Notas", "kind": "multiline" }
51      ],
52      "on_submit": {
53        "kind": "seed_entity",
54        "entity": "customer",
55        "next_view": "list"
56      }
57    }
58  }
59}