@carthooks/arcubase-cli 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/bundle/arcubase-admin.mjs +907 -10
  2. package/bundle/arcubase.mjs +907 -10
  3. package/dist/runtime/command_registry.d.ts +8 -0
  4. package/dist/runtime/command_registry.d.ts.map +1 -1
  5. package/dist/runtime/command_registry.js +35 -0
  6. package/dist/runtime/entity_save_schema.d.ts +15 -0
  7. package/dist/runtime/entity_save_schema.d.ts.map +1 -0
  8. package/dist/runtime/entity_save_schema.js +641 -0
  9. package/dist/runtime/errors.d.ts +10 -0
  10. package/dist/runtime/errors.d.ts.map +1 -1
  11. package/dist/runtime/execute.d.ts.map +1 -1
  12. package/dist/runtime/execute.js +89 -10
  13. package/dist/runtime/zod_registry.d.ts +6 -0
  14. package/dist/runtime/zod_registry.d.ts.map +1 -1
  15. package/dist/runtime/zod_registry.js +133 -0
  16. package/dist/tests/command_registry.test.js +5 -0
  17. package/dist/tests/entity_save_schema.test.d.ts +2 -0
  18. package/dist/tests/entity_save_schema.test.d.ts.map +1 -0
  19. package/dist/tests/entity_save_schema.test.js +221 -0
  20. package/dist/tests/execute_validation.test.js +450 -0
  21. package/dist/tests/help.test.js +33 -0
  22. package/package.json +1 -1
  23. package/sdk-dist/docs/runtime-reference/README.md +177 -0
  24. package/sdk-dist/docs/runtime-reference/entity-schema/README.md +120 -0
  25. package/sdk-dist/docs/runtime-reference/entity-schema/address.md +34 -0
  26. package/sdk-dist/docs/runtime-reference/entity-schema/boolean.md +37 -0
  27. package/sdk-dist/docs/runtime-reference/entity-schema/button.md +47 -0
  28. package/sdk-dist/docs/runtime-reference/entity-schema/checkbox.md +61 -0
  29. package/sdk-dist/docs/runtime-reference/entity-schema/datasets.md +35 -0
  30. package/sdk-dist/docs/runtime-reference/entity-schema/datetime.md +40 -0
  31. package/sdk-dist/docs/runtime-reference/entity-schema/department.md +33 -0
  32. package/sdk-dist/docs/runtime-reference/entity-schema/departments.md +34 -0
  33. package/sdk-dist/docs/runtime-reference/entity-schema/divider.md +39 -0
  34. package/sdk-dist/docs/runtime-reference/entity-schema/file.md +44 -0
  35. package/sdk-dist/docs/runtime-reference/entity-schema/formula.md +44 -0
  36. package/sdk-dist/docs/runtime-reference/entity-schema/image.md +43 -0
  37. package/sdk-dist/docs/runtime-reference/entity-schema/linkto.md +67 -0
  38. package/sdk-dist/docs/runtime-reference/entity-schema/location.md +32 -0
  39. package/sdk-dist/docs/runtime-reference/entity-schema/lookup.md +41 -0
  40. package/sdk-dist/docs/runtime-reference/entity-schema/member.md +37 -0
  41. package/sdk-dist/docs/runtime-reference/entity-schema/members.md +31 -0
  42. package/sdk-dist/docs/runtime-reference/entity-schema/number.md +70 -0
  43. package/sdk-dist/docs/runtime-reference/entity-schema/query.md +50 -0
  44. package/sdk-dist/docs/runtime-reference/entity-schema/radio.md +53 -0
  45. package/sdk-dist/docs/runtime-reference/entity-schema/relation.md +55 -0
  46. package/sdk-dist/docs/runtime-reference/entity-schema/relationfield.md +38 -0
  47. package/sdk-dist/docs/runtime-reference/entity-schema/rollup.md +54 -0
  48. package/sdk-dist/docs/runtime-reference/entity-schema/select.md +63 -0
  49. package/sdk-dist/docs/runtime-reference/entity-schema/selects.md +51 -0
  50. package/sdk-dist/docs/runtime-reference/entity-schema/serialnumber.md +48 -0
  51. package/sdk-dist/docs/runtime-reference/entity-schema/signature.md +31 -0
  52. package/sdk-dist/docs/runtime-reference/entity-schema/status.md +70 -0
  53. package/sdk-dist/docs/runtime-reference/entity-schema/subform.md +74 -0
  54. package/sdk-dist/docs/runtime-reference/entity-schema/tags.md +19 -0
  55. package/sdk-dist/docs/runtime-reference/entity-schema/text.md +76 -0
  56. package/sdk-dist/docs/runtime-reference/entity-schema/textarea.md +47 -0
  57. package/sdk-dist/docs/runtime-reference/entity-schema/workflow_status.md +17 -0
  58. package/sdk-dist/docs/runtime-reference/entity-schema.md +197 -0
  59. package/sdk-dist/docs/runtime-reference/examples/README.md +51 -0
  60. package/sdk-dist/docs/runtime-reference/examples/crm-01/README.md +20 -0
  61. package/sdk-dist/docs/runtime-reference/examples/mes-01/README.md +21 -0
  62. package/sdk-dist/docs/runtime-reference/examples/oms-01/README.md +164 -0
  63. package/sdk-dist/docs/runtime-reference/examples/oms-01/app-overview.md +79 -0
  64. package/sdk-dist/docs/runtime-reference/examples/oms-01/create-app.json +3 -0
  65. package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.create-entity.json +3 -0
  66. package/sdk-dist/docs/runtime-reference/examples/oms-01/goods-receipt.schema.json +159 -0
  67. package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.create-entity.json +3 -0
  68. package/sdk-dist/docs/runtime-reference/examples/oms-01/item-master.schema.json +179 -0
  69. package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.create-entity.json +3 -0
  70. package/sdk-dist/docs/runtime-reference/examples/oms-01/picking-list.schema.json +168 -0
  71. package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.create-entity.json +3 -0
  72. package/sdk-dist/docs/runtime-reference/examples/oms-01/purchase-order.schema.json +417 -0
  73. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.bulk-update.json +22 -0
  74. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.create-entity.json +3 -0
  75. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.query.json +10 -0
  76. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.row.insert.json +28 -0
  77. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.schema.json +398 -0
  78. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.condition.json +13 -0
  79. package/sdk-dist/docs/runtime-reference/examples/oms-01/sales-order.selection.ids.json +7 -0
  80. package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.create-entity.json +3 -0
  81. package/sdk-dist/docs/runtime-reference/examples/oms-01/stock-issue.schema.json +137 -0
  82. package/sdk-dist/docs/runtime-reference/examples/wms-01/README.md +21 -0
  83. package/sdk-dist/docs/runtime-reference/row-crud.md +186 -0
  84. package/sdk-dist/docs/runtime-reference/search-and-bulk-actions.md +494 -0
  85. package/sdk-dist/docs/runtime-reference/table-lifecycle.md +123 -0
  86. package/sdk-dist/docs/runtime-reference/workflow/README.md +19 -0
  87. package/src/runtime/command_registry.ts +47 -0
  88. package/src/runtime/entity_save_schema.ts +708 -0
  89. package/src/runtime/errors.ts +11 -0
  90. package/src/runtime/execute.ts +123 -10
  91. package/src/runtime/zod_registry.ts +154 -0
  92. package/src/tests/command_registry.test.ts +6 -0
  93. package/src/tests/entity_save_schema.test.ts +236 -0
  94. package/src/tests/execute_validation.test.ts +598 -0
  95. package/src/tests/help.test.ts +39 -0
@@ -0,0 +1,21 @@
1
+ # MES Example 01
2
+
3
+ This directory is reserved for a generic manufacturing execution example set.
4
+
5
+ Planned tables:
6
+
7
+ - `Work Order`
8
+ - `Bill Of Material`
9
+ - `Routing Template`
10
+ - `Production Checkpoint`
11
+
12
+ Planned field patterns:
13
+
14
+ - `subform`
15
+ - `relation`
16
+ - `relationfield`
17
+ - `datasets`
18
+ - `member`
19
+ - `status`
20
+
21
+ All names will remain generic and English-only.
@@ -0,0 +1,164 @@
1
+ # OMS Example 01
2
+
3
+ This example set models a compact order-management workflow.
4
+
5
+ It is intentionally generic:
6
+
7
+ - no tenant name
8
+ - no company name
9
+ - no country-specific codes
10
+ - no region-specific channel names
11
+
12
+ ## Scope
13
+
14
+ This set includes:
15
+
16
+ - `Item Master`
17
+ - `Goods Receipt`
18
+ - `Stock Issue`
19
+ - `Picking List`
20
+ - `Sales Order`
21
+ - `Purchase Order`
22
+
23
+ ## Why these tables
24
+
25
+ This combination is enough to cover:
26
+
27
+ - item master records
28
+ - inbound stock
29
+ - outbound stock
30
+ - picking operations
31
+ - sales orders with line items
32
+ - purchase orders with planned and actual receipt subforms
33
+
34
+ ## Important genericization choices
35
+
36
+ The production references contained market-specific naming such as:
37
+
38
+ - local barcode naming
39
+ - local purchase wording
40
+ - local shipping wording
41
+ - language-specific labels
42
+
43
+ This example rewrites them into generic names such as:
44
+
45
+ - `sku_code`
46
+ - `source_channel`
47
+ - `recipient_name`
48
+ - `goods_receipt`
49
+ - `stock_issue`
50
+
51
+ ## Files
52
+
53
+ - `app-overview.md`
54
+ - `create-app.json`
55
+ - `sales-order.create-entity.json`
56
+ - `item-master.create-entity.json`
57
+ - `item-master.schema.json`
58
+ - `goods-receipt.schema.json`
59
+ - `stock-issue.schema.json`
60
+ - `picking-list.schema.json`
61
+ - `sales-order.schema.json`
62
+ - `purchase-order.schema.json`
63
+ - `goods-receipt.create-entity.json`
64
+ - `stock-issue.create-entity.json`
65
+ - `picking-list.create-entity.json`
66
+ - `purchase-order.create-entity.json`
67
+ - `sales-order.row.insert.json`
68
+ - `sales-order.query.json`
69
+ - `sales-order.selection.ids.json`
70
+ - `sales-order.selection.condition.json`
71
+ - `sales-order.bulk-update.json`
72
+
73
+ ## Save workflow
74
+
75
+ For every `*.schema.json` file:
76
+
77
+ 1. create the entity shell
78
+ 2. fetch the shell with `admin-get-entity-info`
79
+ 3. replace:
80
+ - `__APP_ID__`
81
+ - `__ENTITY_ID__`
82
+ - `__SCHEMA_VERSION__`
83
+ 4. save the schema with `admin-save-entity`
84
+ 5. probe rows with `query-entity`
85
+
86
+ These schema files are templates, not live shell exports.
87
+
88
+ ## Minimal command path
89
+
90
+ Create the app:
91
+
92
+ ```bash
93
+ arcubase-admin app create-app-by-tenants --body-file create-app.json
94
+ ```
95
+
96
+ Create the shell:
97
+
98
+ ```bash
99
+ arcubase-admin app create-entity --id <app_id> --body-file sales-order.create-entity.json
100
+ arcubase-admin app create-entity --id <app_id> --body-file item-master.create-entity.json
101
+ arcubase-admin app create-entity --id <app_id> --body-file goods-receipt.create-entity.json
102
+ arcubase-admin app create-entity --id <app_id> --body-file stock-issue.create-entity.json
103
+ arcubase-admin app create-entity --id <app_id> --body-file picking-list.create-entity.json
104
+ arcubase-admin app create-entity --id <app_id> --body-file purchase-order.create-entity.json
105
+ ```
106
+
107
+ Fetch the shell:
108
+
109
+ ```bash
110
+ arcubase-admin entity admin-get-entity-info --app-id <app_id> --entity-id <entity_id>
111
+ ```
112
+
113
+ Save the schema:
114
+
115
+ ```bash
116
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file sales-order.schema.json
117
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file item-master.schema.json
118
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file goods-receipt.schema.json
119
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file stock-issue.schema.json
120
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file picking-list.schema.json
121
+ arcubase-admin entity admin-save-entity --app-id <app_id> --entity-id <entity_id> --body-file purchase-order.schema.json
122
+ ```
123
+
124
+ Insert one row:
125
+
126
+ ```bash
127
+ arcubase workflow insert-entity --app-id <app_id> --entity-id <entity_id> --body-file sales-order.row.insert.json
128
+ ```
129
+
130
+ Query rows:
131
+
132
+ ```bash
133
+ arcubase workflow query-entity --app-id <app_id> --entity-id <entity_id> --body-file sales-order.query.json
134
+ ```
135
+
136
+ ## Placeholder rules
137
+
138
+ The schema files use placeholders for:
139
+
140
+ - `__APP_ID__`
141
+ - `__ENTITY_ID__`
142
+ - `__SCHEMA_VERSION__`
143
+
144
+ The relation-based templates also use:
145
+
146
+ - `__ITEM_MASTER_ENTITY_ID__`
147
+
148
+ When you replace them, keep these fields as JSON numbers:
149
+
150
+ - `app_id`
151
+ - `id`
152
+ - `schema_version`
153
+ - relation `app_id`
154
+ - relation `entity_id`
155
+
156
+ Do not leave the replaced values as JSON strings.
157
+
158
+ ## Dependency order
159
+
160
+ `Goods Receipt` and `Stock Issue` both depend on an existing `Item Master` entity.
161
+
162
+ Create and save `Item Master` first, then replace `__ITEM_MASTER_ENTITY_ID__`
163
+ with the numeric entity id of that local `Item Master` shell before you save the
164
+ dependent schemas.
@@ -0,0 +1,79 @@
1
+ # OMS Example 01 Overview
2
+
3
+ ## Table set
4
+
5
+ ### 1. Item Master
6
+
7
+ Purpose:
8
+
9
+ - hold the canonical item record
10
+ - provide `sku_code`
11
+ - provide item naming and pricing
12
+
13
+ ### 2. Goods Receipt
14
+
15
+ Purpose:
16
+
17
+ - record inbound quantities
18
+ - link a receipt row to one item
19
+
20
+ ### 3. Stock Issue
21
+
22
+ Purpose:
23
+
24
+ - record outbound quantities
25
+ - link an issue row to one item
26
+
27
+ ### 4. Picking List
28
+
29
+ Purpose:
30
+
31
+ - group picked items for fulfillment
32
+ - use a subform for item lines
33
+
34
+ ### 5. Sales Order
35
+
36
+ Purpose:
37
+
38
+ - capture recipient information
39
+ - capture one order with multiple line items
40
+ - support search, selection, and bulk update examples
41
+
42
+ ### 6. Purchase Order
43
+
44
+ Purpose:
45
+
46
+ - capture ordered quantities
47
+ - track planned receipt slots
48
+ - track actual receipt slots
49
+ - show one `status` field example and two `subform` examples
50
+
51
+ ## Relationship model
52
+
53
+ - `Goods Receipt` links to `Item Master`
54
+ - `Stock Issue` links to `Item Master`
55
+ - `Sales Order` has `line_items` as a subform
56
+ - `Picking List` has `items` as a subform
57
+ - `Purchase Order` has:
58
+ - `planned_receipts`
59
+ - `actual_receipts`
60
+
61
+ ## Field patterns covered
62
+
63
+ - `text`
64
+ - `textarea`
65
+ - `number`
66
+ - `datetime`
67
+ - `select`
68
+ - `radio`
69
+ - `status`
70
+ - `image`
71
+ - `relation`
72
+ - `subform`
73
+
74
+ ## What was intentionally removed
75
+
76
+ - country-specific code naming
77
+ - tenant-specific internal labels
78
+ - region-specific channel names
79
+ - company-specific workflow terms
@@ -0,0 +1,3 @@
1
+ {
2
+ "name": "OMS Example 01"
3
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "id": "__ENTITY_ID__",
3
+ "app_id": "__APP_ID__",
4
+ "name": "Goods Receipt",
5
+ "workflow_enabled": false,
6
+ "fields": [
7
+ {
8
+ "id": 1001,
9
+ "label": "Linked Item",
10
+ "type": "relation",
11
+ "required": false,
12
+ "unique": false,
13
+ "editable": true,
14
+ "visible": true,
15
+ "show_label": true,
16
+ "scannable": false,
17
+ "default_value_mode": 0,
18
+ "description": "",
19
+ "value": null,
20
+ "number_decimal": 0,
21
+ "depends": [],
22
+ "key": "linked_item",
23
+ "code_index": false,
24
+ "options": {
25
+ "relation": {
26
+ "app_id": "__APP_ID__",
27
+ "entity_id": "__ITEM_MASTER_ENTITY_ID__",
28
+ "type": "entity",
29
+ "show_fields": [],
30
+ "queryFields": [],
31
+ "condition": {},
32
+ "sorts": [
33
+ { "column": "updated_at", "order": "desc" }
34
+ ]
35
+ }
36
+ },
37
+ "transfers": null,
38
+ "children": null
39
+ },
40
+ {
41
+ "id": 1002,
42
+ "label": "SKU Code",
43
+ "type": "text",
44
+ "required": false,
45
+ "unique": false,
46
+ "editable": true,
47
+ "visible": true,
48
+ "show_label": true,
49
+ "scannable": false,
50
+ "default_value_mode": 0,
51
+ "description": "",
52
+ "value": null,
53
+ "number_decimal": 0,
54
+ "depends": [],
55
+ "key": "sku_code",
56
+ "code_index": false,
57
+ "options": {},
58
+ "transfers": null,
59
+ "children": null
60
+ },
61
+ {
62
+ "id": 1003,
63
+ "label": "Item Name",
64
+ "type": "text",
65
+ "required": false,
66
+ "unique": false,
67
+ "editable": true,
68
+ "visible": true,
69
+ "show_label": true,
70
+ "scannable": false,
71
+ "default_value_mode": 0,
72
+ "description": "",
73
+ "value": null,
74
+ "number_decimal": 0,
75
+ "depends": [],
76
+ "key": "item_name",
77
+ "code_index": false,
78
+ "options": {},
79
+ "transfers": null,
80
+ "children": null
81
+ },
82
+ {
83
+ "id": 1004,
84
+ "label": "Supplier Name",
85
+ "type": "text",
86
+ "required": false,
87
+ "unique": false,
88
+ "editable": true,
89
+ "visible": true,
90
+ "show_label": true,
91
+ "scannable": false,
92
+ "default_value_mode": 0,
93
+ "description": "",
94
+ "value": null,
95
+ "number_decimal": 0,
96
+ "depends": [],
97
+ "key": "supplier_name",
98
+ "code_index": false,
99
+ "options": {},
100
+ "transfers": null,
101
+ "children": null
102
+ },
103
+ {
104
+ "id": 1005,
105
+ "label": "Received Quantity",
106
+ "type": "number",
107
+ "required": false,
108
+ "unique": false,
109
+ "editable": true,
110
+ "visible": true,
111
+ "show_label": true,
112
+ "scannable": false,
113
+ "default_value_mode": 0,
114
+ "description": "",
115
+ "value": null,
116
+ "number_decimal": 0,
117
+ "depends": [],
118
+ "key": "received_quantity",
119
+ "code_index": false,
120
+ "options": {
121
+ "mode": "number"
122
+ },
123
+ "transfers": null,
124
+ "children": null
125
+ },
126
+ {
127
+ "id": 1006,
128
+ "label": "Received At",
129
+ "type": "datetime",
130
+ "required": false,
131
+ "unique": false,
132
+ "editable": true,
133
+ "visible": true,
134
+ "show_label": true,
135
+ "scannable": false,
136
+ "default_value_mode": 0,
137
+ "description": "",
138
+ "value": null,
139
+ "number_decimal": 0,
140
+ "depends": [],
141
+ "key": "received_at",
142
+ "code_index": false,
143
+ "options": {
144
+ "type": "date"
145
+ },
146
+ "transfers": null,
147
+ "children": null
148
+ }
149
+ ],
150
+ "layout": [
151
+ [1001],
152
+ [1002, 1003],
153
+ [1004],
154
+ [1005, 1006]
155
+ ],
156
+ "options": {},
157
+ "schema_version": "__SCHEMA_VERSION__",
158
+ "field_id_seq": 1007
159
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "id": "__ENTITY_ID__",
3
+ "app_id": "__APP_ID__",
4
+ "name": "Item Master",
5
+ "workflow_enabled": false,
6
+ "fields": [
7
+ {
8
+ "id": 1001,
9
+ "label": "Item Name",
10
+ "type": "text",
11
+ "required": true,
12
+ "unique": false,
13
+ "editable": true,
14
+ "visible": true,
15
+ "show_label": true,
16
+ "scannable": false,
17
+ "default_value_mode": 0,
18
+ "description": "",
19
+ "value": null,
20
+ "number_decimal": 0,
21
+ "depends": [],
22
+ "key": "item_name",
23
+ "code_index": false,
24
+ "options": {},
25
+ "transfers": null,
26
+ "children": null
27
+ },
28
+ {
29
+ "id": 1002,
30
+ "label": "SKU Code",
31
+ "type": "text",
32
+ "required": true,
33
+ "unique": false,
34
+ "editable": true,
35
+ "visible": true,
36
+ "show_label": true,
37
+ "scannable": false,
38
+ "default_value_mode": 0,
39
+ "description": "",
40
+ "value": null,
41
+ "number_decimal": 0,
42
+ "depends": [],
43
+ "key": "sku_code",
44
+ "code_index": false,
45
+ "options": {},
46
+ "transfers": null,
47
+ "children": null
48
+ },
49
+ {
50
+ "id": 1003,
51
+ "label": "External Item ID",
52
+ "type": "text",
53
+ "required": false,
54
+ "unique": false,
55
+ "editable": true,
56
+ "visible": true,
57
+ "show_label": true,
58
+ "scannable": false,
59
+ "default_value_mode": 0,
60
+ "description": "",
61
+ "value": null,
62
+ "number_decimal": 0,
63
+ "depends": [],
64
+ "key": "external_item_id",
65
+ "code_index": false,
66
+ "options": {},
67
+ "transfers": null,
68
+ "children": null
69
+ },
70
+ {
71
+ "id": 1004,
72
+ "label": "Category",
73
+ "type": "select",
74
+ "required": false,
75
+ "unique": false,
76
+ "editable": true,
77
+ "visible": true,
78
+ "show_label": true,
79
+ "scannable": false,
80
+ "default_value_mode": 0,
81
+ "description": "",
82
+ "value": null,
83
+ "number_decimal": 0,
84
+ "depends": [],
85
+ "key": "category",
86
+ "code_index": false,
87
+ "options": {
88
+ "horizontal": false,
89
+ "options": {
90
+ "mode": "custom",
91
+ "colorful": false,
92
+ "items": [
93
+ { "key": 1, "value": "Standard" },
94
+ { "key": 2, "value": "Bundle" },
95
+ { "key": 3, "value": "Consumable" }
96
+ ]
97
+ }
98
+ },
99
+ "transfers": null,
100
+ "children": null
101
+ },
102
+ {
103
+ "id": 1005,
104
+ "label": "Unit Price",
105
+ "type": "number",
106
+ "required": false,
107
+ "unique": false,
108
+ "editable": true,
109
+ "visible": true,
110
+ "show_label": true,
111
+ "scannable": false,
112
+ "default_value_mode": 0,
113
+ "description": "",
114
+ "value": null,
115
+ "number_decimal": 2,
116
+ "depends": [],
117
+ "key": "unit_price",
118
+ "code_index": false,
119
+ "options": {
120
+ "mode": "number"
121
+ },
122
+ "transfers": null,
123
+ "children": null
124
+ },
125
+ {
126
+ "id": 1006,
127
+ "label": "Wholesale Price",
128
+ "type": "number",
129
+ "required": false,
130
+ "unique": false,
131
+ "editable": true,
132
+ "visible": true,
133
+ "show_label": true,
134
+ "scannable": false,
135
+ "default_value_mode": 0,
136
+ "description": "",
137
+ "value": null,
138
+ "number_decimal": 2,
139
+ "depends": [],
140
+ "key": "wholesale_price",
141
+ "code_index": false,
142
+ "options": {
143
+ "mode": "number"
144
+ },
145
+ "transfers": null,
146
+ "children": null
147
+ },
148
+ {
149
+ "id": 1007,
150
+ "label": "Image",
151
+ "type": "image",
152
+ "required": false,
153
+ "unique": false,
154
+ "editable": true,
155
+ "visible": true,
156
+ "show_label": true,
157
+ "scannable": false,
158
+ "default_value_mode": 0,
159
+ "description": "",
160
+ "value": null,
161
+ "number_decimal": 0,
162
+ "depends": [],
163
+ "key": "image",
164
+ "code_index": false,
165
+ "options": {},
166
+ "transfers": null,
167
+ "children": null
168
+ }
169
+ ],
170
+ "layout": [
171
+ [1001, 1002],
172
+ [1003, 1004],
173
+ [1005, 1006],
174
+ [1007]
175
+ ],
176
+ "options": {},
177
+ "schema_version": "__SCHEMA_VERSION__",
178
+ "field_id_seq": 1008
179
+ }