@zudello/modelcontextprotocol 1.0.0
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.
- package/README.md +667 -0
- package/dist/constants/zudello.d.ts +627 -0
- package/dist/constants/zudello.d.ts.map +1 -0
- package/dist/constants/zudello.js +1467 -0
- package/dist/constants/zudello.js.map +1 -0
- package/dist/context/auth.d.ts +22 -0
- package/dist/context/auth.d.ts.map +1 -0
- package/dist/context/auth.js +62 -0
- package/dist/context/auth.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/zudello-system.d.ts +6 -0
- package/dist/prompts/zudello-system.d.ts.map +1 -0
- package/dist/prompts/zudello-system.js +1821 -0
- package/dist/prompts/zudello-system.js.map +1 -0
- package/dist/services/zudello/admin.d.ts +93 -0
- package/dist/services/zudello/admin.d.ts.map +1 -0
- package/dist/services/zudello/admin.js +264 -0
- package/dist/services/zudello/admin.js.map +1 -0
- package/dist/services/zudello/automation.d.ts +92 -0
- package/dist/services/zudello/automation.d.ts.map +1 -0
- package/dist/services/zudello/automation.js +365 -0
- package/dist/services/zudello/automation.js.map +1 -0
- package/dist/services/zudello/connections.d.ts +111 -0
- package/dist/services/zudello/connections.d.ts.map +1 -0
- package/dist/services/zudello/connections.js +289 -0
- package/dist/services/zudello/connections.js.map +1 -0
- package/dist/services/zudello/core.d.ts +26 -0
- package/dist/services/zudello/core.d.ts.map +1 -0
- package/dist/services/zudello/core.js +51 -0
- package/dist/services/zudello/core.js.map +1 -0
- package/dist/services/zudello/document-context.d.ts +5 -0
- package/dist/services/zudello/document-context.d.ts.map +1 -0
- package/dist/services/zudello/document-context.js +33 -0
- package/dist/services/zudello/document-context.js.map +1 -0
- package/dist/services/zudello/documents.d.ts +110 -0
- package/dist/services/zudello/documents.d.ts.map +1 -0
- package/dist/services/zudello/documents.js +865 -0
- package/dist/services/zudello/documents.js.map +1 -0
- package/dist/services/zudello/inboxes.d.ts +13 -0
- package/dist/services/zudello/inboxes.d.ts.map +1 -0
- package/dist/services/zudello/inboxes.js +115 -0
- package/dist/services/zudello/inboxes.js.map +1 -0
- package/dist/services/zudello/index.d.ts +21 -0
- package/dist/services/zudello/index.d.ts.map +1 -0
- package/dist/services/zudello/index.js +55 -0
- package/dist/services/zudello/index.js.map +1 -0
- package/dist/services/zudello/language.d.ts +18 -0
- package/dist/services/zudello/language.d.ts.map +1 -0
- package/dist/services/zudello/language.js +83 -0
- package/dist/services/zudello/language.js.map +1 -0
- package/dist/services/zudello/notifications.d.ts +20 -0
- package/dist/services/zudello/notifications.d.ts.map +1 -0
- package/dist/services/zudello/notifications.js +106 -0
- package/dist/services/zudello/notifications.js.map +1 -0
- package/dist/services/zudello/organization.d.ts +125 -0
- package/dist/services/zudello/organization.d.ts.map +1 -0
- package/dist/services/zudello/organization.js +686 -0
- package/dist/services/zudello/organization.js.map +1 -0
- package/dist/services/zudello/resources.d.ts +83 -0
- package/dist/services/zudello/resources.d.ts.map +1 -0
- package/dist/services/zudello/resources.js +554 -0
- package/dist/services/zudello/resources.js.map +1 -0
- package/dist/services/zudello/sentences.d.ts +79 -0
- package/dist/services/zudello/sentences.d.ts.map +1 -0
- package/dist/services/zudello/sentences.js +357 -0
- package/dist/services/zudello/sentences.js.map +1 -0
- package/dist/services/zudello/types.d.ts +1126 -0
- package/dist/services/zudello/types.d.ts.map +1 -0
- package/dist/services/zudello/types.js +8 -0
- package/dist/services/zudello/types.js.map +1 -0
- package/dist/services/zudello/users.d.ts +66 -0
- package/dist/services/zudello/users.d.ts.map +1 -0
- package/dist/services/zudello/users.js +187 -0
- package/dist/services/zudello/users.js.map +1 -0
- package/dist/tools/admin/datasets/create-dataset.d.ts +44 -0
- package/dist/tools/admin/datasets/create-dataset.d.ts.map +1 -0
- package/dist/tools/admin/datasets/create-dataset.js +58 -0
- package/dist/tools/admin/datasets/create-dataset.js.map +1 -0
- package/dist/tools/admin/datasets/get-dataset.d.ts +27 -0
- package/dist/tools/admin/datasets/get-dataset.d.ts.map +1 -0
- package/dist/tools/admin/datasets/get-dataset.js +39 -0
- package/dist/tools/admin/datasets/get-dataset.js.map +1 -0
- package/dist/tools/admin/datasets/index.d.ts +5 -0
- package/dist/tools/admin/datasets/index.d.ts.map +1 -0
- package/dist/tools/admin/datasets/index.js +5 -0
- package/dist/tools/admin/datasets/index.js.map +1 -0
- package/dist/tools/admin/datasets/list-datasets.d.ts +35 -0
- package/dist/tools/admin/datasets/list-datasets.d.ts.map +1 -0
- package/dist/tools/admin/datasets/list-datasets.js +49 -0
- package/dist/tools/admin/datasets/list-datasets.js.map +1 -0
- package/dist/tools/admin/datasets/update-dataset.d.ts +44 -0
- package/dist/tools/admin/datasets/update-dataset.d.ts.map +1 -0
- package/dist/tools/admin/datasets/update-dataset.js +57 -0
- package/dist/tools/admin/datasets/update-dataset.js.map +1 -0
- package/dist/tools/admin/fields/create-field.d.ts +54 -0
- package/dist/tools/admin/fields/create-field.d.ts.map +1 -0
- package/dist/tools/admin/fields/create-field.js +68 -0
- package/dist/tools/admin/fields/create-field.js.map +1 -0
- package/dist/tools/admin/fields/get-field.d.ts +27 -0
- package/dist/tools/admin/fields/get-field.d.ts.map +1 -0
- package/dist/tools/admin/fields/get-field.js +39 -0
- package/dist/tools/admin/fields/get-field.js.map +1 -0
- package/dist/tools/admin/fields/index.d.ts +5 -0
- package/dist/tools/admin/fields/index.d.ts.map +1 -0
- package/dist/tools/admin/fields/index.js +5 -0
- package/dist/tools/admin/fields/index.js.map +1 -0
- package/dist/tools/admin/fields/list-fields.d.ts +36 -0
- package/dist/tools/admin/fields/list-fields.d.ts.map +1 -0
- package/dist/tools/admin/fields/list-fields.js +50 -0
- package/dist/tools/admin/fields/list-fields.js.map +1 -0
- package/dist/tools/admin/fields/update-field.d.ts +44 -0
- package/dist/tools/admin/fields/update-field.d.ts.map +1 -0
- package/dist/tools/admin/fields/update-field.js +57 -0
- package/dist/tools/admin/fields/update-field.js.map +1 -0
- package/dist/tools/admin/index.d.ts +4 -0
- package/dist/tools/admin/index.d.ts.map +1 -0
- package/dist/tools/admin/index.js +7 -0
- package/dist/tools/admin/index.js.map +1 -0
- package/dist/tools/admin/quick-actions/create-quick-action.d.ts +49 -0
- package/dist/tools/admin/quick-actions/create-quick-action.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/create-quick-action.js +63 -0
- package/dist/tools/admin/quick-actions/create-quick-action.js.map +1 -0
- package/dist/tools/admin/quick-actions/get-quick-action.d.ts +27 -0
- package/dist/tools/admin/quick-actions/get-quick-action.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/get-quick-action.js +39 -0
- package/dist/tools/admin/quick-actions/get-quick-action.js.map +1 -0
- package/dist/tools/admin/quick-actions/index.d.ts +6 -0
- package/dist/tools/admin/quick-actions/index.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/index.js +6 -0
- package/dist/tools/admin/quick-actions/index.js.map +1 -0
- package/dist/tools/admin/quick-actions/list-quick-actions.d.ts +35 -0
- package/dist/tools/admin/quick-actions/list-quick-actions.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/list-quick-actions.js +49 -0
- package/dist/tools/admin/quick-actions/list-quick-actions.js.map +1 -0
- package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts +41 -0
- package/dist/tools/admin/quick-actions/trigger-quick-action.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/trigger-quick-action.js +53 -0
- package/dist/tools/admin/quick-actions/trigger-quick-action.js.map +1 -0
- package/dist/tools/admin/quick-actions/update-quick-action.d.ts +49 -0
- package/dist/tools/admin/quick-actions/update-quick-action.d.ts.map +1 -0
- package/dist/tools/admin/quick-actions/update-quick-action.js +62 -0
- package/dist/tools/admin/quick-actions/update-quick-action.js.map +1 -0
- package/dist/tools/approvals/get-approval-flows.d.ts +27 -0
- package/dist/tools/approvals/get-approval-flows.d.ts.map +1 -0
- package/dist/tools/approvals/get-approval-flows.js +35 -0
- package/dist/tools/approvals/get-approval-flows.js.map +1 -0
- package/dist/tools/approvals/index.d.ts +2 -0
- package/dist/tools/approvals/index.d.ts.map +1 -0
- package/dist/tools/approvals/index.js +2 -0
- package/dist/tools/approvals/index.js.map +1 -0
- package/dist/tools/automation/get-automation-logs.d.ts +59 -0
- package/dist/tools/automation/get-automation-logs.d.ts.map +1 -0
- package/dist/tools/automation/get-automation-logs.js +75 -0
- package/dist/tools/automation/get-automation-logs.js.map +1 -0
- package/dist/tools/automation/get-run-logs-content.d.ts +42 -0
- package/dist/tools/automation/get-run-logs-content.d.ts.map +1 -0
- package/dist/tools/automation/get-run-logs-content.js +27 -0
- package/dist/tools/automation/get-run-logs-content.js.map +1 -0
- package/dist/tools/automation/get-run-logs.d.ts +37 -0
- package/dist/tools/automation/get-run-logs.d.ts.map +1 -0
- package/dist/tools/automation/get-run-logs.js +27 -0
- package/dist/tools/automation/get-run-logs.js.map +1 -0
- package/dist/tools/automation/get-script.d.ts +33 -0
- package/dist/tools/automation/get-script.d.ts.map +1 -0
- package/dist/tools/automation/get-script.js +24 -0
- package/dist/tools/automation/get-script.js.map +1 -0
- package/dist/tools/automation/get-trigger.d.ts +27 -0
- package/dist/tools/automation/get-trigger.d.ts.map +1 -0
- package/dist/tools/automation/get-trigger.js +24 -0
- package/dist/tools/automation/get-trigger.js.map +1 -0
- package/dist/tools/automation/index.d.ts +16 -0
- package/dist/tools/automation/index.d.ts.map +1 -0
- package/dist/tools/automation/index.js +16 -0
- package/dist/tools/automation/index.js.map +1 -0
- package/dist/tools/automation/list-global-integrations.d.ts +23 -0
- package/dist/tools/automation/list-global-integrations.d.ts.map +1 -0
- package/dist/tools/automation/list-global-integrations.js +41 -0
- package/dist/tools/automation/list-global-integrations.js.map +1 -0
- package/dist/tools/automation/list-global-scripts-for-integration.d.ts +38 -0
- package/dist/tools/automation/list-global-scripts-for-integration.d.ts.map +1 -0
- package/dist/tools/automation/list-global-scripts-for-integration.js +50 -0
- package/dist/tools/automation/list-global-scripts-for-integration.js.map +1 -0
- package/dist/tools/automation/list-scripts.d.ts +26 -0
- package/dist/tools/automation/list-scripts.d.ts.map +1 -0
- package/dist/tools/automation/list-scripts.js +23 -0
- package/dist/tools/automation/list-scripts.js.map +1 -0
- package/dist/tools/automation/list-triggers.d.ts +23 -0
- package/dist/tools/automation/list-triggers.d.ts.map +1 -0
- package/dist/tools/automation/list-triggers.js +38 -0
- package/dist/tools/automation/list-triggers.js.map +1 -0
- package/dist/tools/automation/search-runs.d.ts +43 -0
- package/dist/tools/automation/search-runs.d.ts.map +1 -0
- package/dist/tools/automation/search-runs.js +32 -0
- package/dist/tools/automation/search-runs.js.map +1 -0
- package/dist/tools/bulk/approve-milestones.d.ts +59 -0
- package/dist/tools/bulk/approve-milestones.d.ts.map +1 -0
- package/dist/tools/bulk/approve-milestones.js +47 -0
- package/dist/tools/bulk/approve-milestones.js.map +1 -0
- package/dist/tools/bulk/index.d.ts +3 -0
- package/dist/tools/bulk/index.d.ts.map +1 -0
- package/dist/tools/bulk/index.js +3 -0
- package/dist/tools/bulk/index.js.map +1 -0
- package/dist/tools/bulk/send-reminders.d.ts +32 -0
- package/dist/tools/bulk/send-reminders.d.ts.map +1 -0
- package/dist/tools/bulk/send-reminders.js +37 -0
- package/dist/tools/bulk/send-reminders.js.map +1 -0
- package/dist/tools/config/create-config.d.ts +43 -0
- package/dist/tools/config/create-config.d.ts.map +1 -0
- package/dist/tools/config/create-config.js +61 -0
- package/dist/tools/config/create-config.js.map +1 -0
- package/dist/tools/config/get-config.d.ts +40 -0
- package/dist/tools/config/get-config.d.ts.map +1 -0
- package/dist/tools/config/get-config.js +52 -0
- package/dist/tools/config/get-config.js.map +1 -0
- package/dist/tools/config/index.d.ts +11 -0
- package/dist/tools/config/index.d.ts.map +1 -0
- package/dist/tools/config/index.js +11 -0
- package/dist/tools/config/index.js.map +1 -0
- package/dist/tools/config/list-configs.d.ts +48 -0
- package/dist/tools/config/list-configs.d.ts.map +1 -0
- package/dist/tools/config/list-configs.js +74 -0
- package/dist/tools/config/list-configs.js.map +1 -0
- package/dist/tools/config/update-config.d.ts +48 -0
- package/dist/tools/config/update-config.d.ts.map +1 -0
- package/dist/tools/config/update-config.js +64 -0
- package/dist/tools/config/update-config.js.map +1 -0
- package/dist/tools/config/update-configs-order.d.ts +39 -0
- package/dist/tools/config/update-configs-order.d.ts.map +1 -0
- package/dist/tools/config/update-configs-order.js +58 -0
- package/dist/tools/config/update-configs-order.js.map +1 -0
- package/dist/tools/connections/check-connection-status.d.ts +60 -0
- package/dist/tools/connections/check-connection-status.d.ts.map +1 -0
- package/dist/tools/connections/check-connection-status.js +94 -0
- package/dist/tools/connections/check-connection-status.js.map +1 -0
- package/dist/tools/connections/get-connection-template.d.ts +44 -0
- package/dist/tools/connections/get-connection-template.d.ts.map +1 -0
- package/dist/tools/connections/get-connection-template.js +55 -0
- package/dist/tools/connections/get-connection-template.js.map +1 -0
- package/dist/tools/connections/index.d.ts +11 -0
- package/dist/tools/connections/index.d.ts.map +1 -0
- package/dist/tools/connections/index.js +11 -0
- package/dist/tools/connections/index.js.map +1 -0
- package/dist/tools/connections/list-available-integrations.d.ts +29 -0
- package/dist/tools/connections/list-available-integrations.d.ts.map +1 -0
- package/dist/tools/connections/list-available-integrations.js +46 -0
- package/dist/tools/connections/list-available-integrations.js.map +1 -0
- package/dist/tools/connections/list-connections.d.ts +29 -0
- package/dist/tools/connections/list-connections.d.ts.map +1 -0
- package/dist/tools/connections/list-connections.js +48 -0
- package/dist/tools/connections/list-connections.js.map +1 -0
- package/dist/tools/connections/reconnect.d.ts +40 -0
- package/dist/tools/connections/reconnect.d.ts.map +1 -0
- package/dist/tools/connections/reconnect.js +67 -0
- package/dist/tools/connections/reconnect.js.map +1 -0
- package/dist/tools/control/index.d.ts +7 -0
- package/dist/tools/control/index.d.ts.map +1 -0
- package/dist/tools/control/index.js +7 -0
- package/dist/tools/control/index.js.map +1 -0
- package/dist/tools/control/initiate-sync.d.ts +38 -0
- package/dist/tools/control/initiate-sync.d.ts.map +1 -0
- package/dist/tools/control/initiate-sync.js +47 -0
- package/dist/tools/control/initiate-sync.js.map +1 -0
- package/dist/tools/control/set-trigger-enabled.d.ts +36 -0
- package/dist/tools/control/set-trigger-enabled.d.ts.map +1 -0
- package/dist/tools/control/set-trigger-enabled.js +46 -0
- package/dist/tools/control/set-trigger-enabled.js.map +1 -0
- package/dist/tools/core/fetch.d.ts +8 -0
- package/dist/tools/core/fetch.d.ts.map +1 -0
- package/dist/tools/core/fetch.js +48 -0
- package/dist/tools/core/fetch.js.map +1 -0
- package/dist/tools/core/index.d.ts +4 -0
- package/dist/tools/core/index.d.ts.map +1 -0
- package/dist/tools/core/index.js +4 -0
- package/dist/tools/core/index.js.map +1 -0
- package/dist/tools/core/push-message.d.ts +85 -0
- package/dist/tools/core/push-message.d.ts.map +1 -0
- package/dist/tools/core/push-message.js +116 -0
- package/dist/tools/core/push-message.js.map +1 -0
- package/dist/tools/core/search.d.ts +8 -0
- package/dist/tools/core/search.d.ts.map +1 -0
- package/dist/tools/core/search.js +38 -0
- package/dist/tools/core/search.js.map +1 -0
- package/dist/tools/document-context/check-contract-pricing.d.ts +30 -0
- package/dist/tools/document-context/check-contract-pricing.d.ts.map +1 -0
- package/dist/tools/document-context/check-contract-pricing.js +18 -0
- package/dist/tools/document-context/check-contract-pricing.js.map +1 -0
- package/dist/tools/document-context/check-document-budgets.d.ts +36 -0
- package/dist/tools/document-context/check-document-budgets.d.ts.map +1 -0
- package/dist/tools/document-context/check-document-budgets.js +18 -0
- package/dist/tools/document-context/check-document-budgets.js.map +1 -0
- package/dist/tools/document-context/index.d.ts +3 -0
- package/dist/tools/document-context/index.d.ts.map +1 -0
- package/dist/tools/document-context/index.js +3 -0
- package/dist/tools/document-context/index.js.map +1 -0
- package/dist/tools/documents/document-types/create-document-type.d.ts +19 -0
- package/dist/tools/documents/document-types/create-document-type.d.ts.map +1 -0
- package/dist/tools/documents/document-types/create-document-type.js +18 -0
- package/dist/tools/documents/document-types/create-document-type.js.map +1 -0
- package/dist/tools/documents/document-types/get-document-type.d.ts +24 -0
- package/dist/tools/documents/document-types/get-document-type.d.ts.map +1 -0
- package/dist/tools/documents/document-types/get-document-type.js +18 -0
- package/dist/tools/documents/document-types/get-document-type.js.map +1 -0
- package/dist/tools/documents/document-types/get-merged-form-metadata.d.ts +24 -0
- package/dist/tools/documents/document-types/get-merged-form-metadata.d.ts.map +1 -0
- package/dist/tools/documents/document-types/get-merged-form-metadata.js +18 -0
- package/dist/tools/documents/document-types/get-merged-form-metadata.js.map +1 -0
- package/dist/tools/documents/document-types/index.d.ts +6 -0
- package/dist/tools/documents/document-types/index.d.ts.map +1 -0
- package/dist/tools/documents/document-types/index.js +6 -0
- package/dist/tools/documents/document-types/index.js.map +1 -0
- package/dist/tools/documents/document-types/list-document-types.d.ts +21 -0
- package/dist/tools/documents/document-types/list-document-types.d.ts.map +1 -0
- package/dist/tools/documents/document-types/list-document-types.js +18 -0
- package/dist/tools/documents/document-types/list-document-types.js.map +1 -0
- package/dist/tools/documents/document-types/update-document-type.d.ts +24 -0
- package/dist/tools/documents/document-types/update-document-type.d.ts.map +1 -0
- package/dist/tools/documents/document-types/update-document-type.js +18 -0
- package/dist/tools/documents/document-types/update-document-type.js.map +1 -0
- package/dist/tools/documents/export-templates/create-export-template.d.ts +19 -0
- package/dist/tools/documents/export-templates/create-export-template.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/create-export-template.js +18 -0
- package/dist/tools/documents/export-templates/create-export-template.js.map +1 -0
- package/dist/tools/documents/export-templates/get-export-download-url.d.ts +26 -0
- package/dist/tools/documents/export-templates/get-export-download-url.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/get-export-download-url.js +18 -0
- package/dist/tools/documents/export-templates/get-export-download-url.js.map +1 -0
- package/dist/tools/documents/export-templates/get-export-template.d.ts +27 -0
- package/dist/tools/documents/export-templates/get-export-template.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/get-export-template.js +33 -0
- package/dist/tools/documents/export-templates/get-export-template.js.map +1 -0
- package/dist/tools/documents/export-templates/index.d.ts +8 -0
- package/dist/tools/documents/export-templates/index.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/index.js +8 -0
- package/dist/tools/documents/export-templates/index.js.map +1 -0
- package/dist/tools/documents/export-templates/list-export-templates.d.ts +21 -0
- package/dist/tools/documents/export-templates/list-export-templates.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/list-export-templates.js +31 -0
- package/dist/tools/documents/export-templates/list-export-templates.js.map +1 -0
- package/dist/tools/documents/export-templates/list-exports.d.ts +21 -0
- package/dist/tools/documents/export-templates/list-exports.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/list-exports.js +18 -0
- package/dist/tools/documents/export-templates/list-exports.js.map +1 -0
- package/dist/tools/documents/export-templates/run-export.d.ts +26 -0
- package/dist/tools/documents/export-templates/run-export.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/run-export.js +18 -0
- package/dist/tools/documents/export-templates/run-export.js.map +1 -0
- package/dist/tools/documents/export-templates/update-export-template.d.ts +24 -0
- package/dist/tools/documents/export-templates/update-export-template.d.ts.map +1 -0
- package/dist/tools/documents/export-templates/update-export-template.js +18 -0
- package/dist/tools/documents/export-templates/update-export-template.js.map +1 -0
- package/dist/tools/documents/index.d.ts +3 -0
- package/dist/tools/documents/index.d.ts.map +1 -0
- package/dist/tools/documents/index.js +3 -0
- package/dist/tools/documents/index.js.map +1 -0
- package/dist/tools/exceptions/budget/create-budget-exception-reason.d.ts +42 -0
- package/dist/tools/exceptions/budget/create-budget-exception-reason.d.ts.map +1 -0
- package/dist/tools/exceptions/budget/create-budget-exception-reason.js +82 -0
- package/dist/tools/exceptions/budget/create-budget-exception-reason.js.map +1 -0
- package/dist/tools/exceptions/budget/index.d.ts +4 -0
- package/dist/tools/exceptions/budget/index.d.ts.map +1 -0
- package/dist/tools/exceptions/budget/index.js +4 -0
- package/dist/tools/exceptions/budget/index.js.map +1 -0
- package/dist/tools/exceptions/budget/list-budget-exception-reasons.d.ts +29 -0
- package/dist/tools/exceptions/budget/list-budget-exception-reasons.d.ts.map +1 -0
- package/dist/tools/exceptions/budget/list-budget-exception-reasons.js +60 -0
- package/dist/tools/exceptions/budget/list-budget-exception-reasons.js.map +1 -0
- package/dist/tools/exceptions/budget/update-budget-exception-reason.d.ts +47 -0
- package/dist/tools/exceptions/budget/update-budget-exception-reason.d.ts.map +1 -0
- package/dist/tools/exceptions/budget/update-budget-exception-reason.js +77 -0
- package/dist/tools/exceptions/budget/update-budget-exception-reason.js.map +1 -0
- package/dist/tools/exceptions/contract/create-contract-exception-reason.d.ts +42 -0
- package/dist/tools/exceptions/contract/create-contract-exception-reason.d.ts.map +1 -0
- package/dist/tools/exceptions/contract/create-contract-exception-reason.js +82 -0
- package/dist/tools/exceptions/contract/create-contract-exception-reason.js.map +1 -0
- package/dist/tools/exceptions/contract/index.d.ts +4 -0
- package/dist/tools/exceptions/contract/index.d.ts.map +1 -0
- package/dist/tools/exceptions/contract/index.js +4 -0
- package/dist/tools/exceptions/contract/index.js.map +1 -0
- package/dist/tools/exceptions/contract/list-contract-exception-reasons.d.ts +29 -0
- package/dist/tools/exceptions/contract/list-contract-exception-reasons.d.ts.map +1 -0
- package/dist/tools/exceptions/contract/list-contract-exception-reasons.js +60 -0
- package/dist/tools/exceptions/contract/list-contract-exception-reasons.js.map +1 -0
- package/dist/tools/exceptions/contract/update-contract-exception-reason.d.ts +47 -0
- package/dist/tools/exceptions/contract/update-contract-exception-reason.d.ts.map +1 -0
- package/dist/tools/exceptions/contract/update-contract-exception-reason.js +77 -0
- package/dist/tools/exceptions/contract/update-contract-exception-reason.js.map +1 -0
- package/dist/tools/exceptions/index.d.ts +3 -0
- package/dist/tools/exceptions/index.d.ts.map +1 -0
- package/dist/tools/exceptions/index.js +3 -0
- package/dist/tools/exceptions/index.js.map +1 -0
- package/dist/tools/history/get-history.d.ts +34 -0
- package/dist/tools/history/get-history.d.ts.map +1 -0
- package/dist/tools/history/get-history.js +29 -0
- package/dist/tools/history/get-history.js.map +1 -0
- package/dist/tools/history/index.d.ts +7 -0
- package/dist/tools/history/index.d.ts.map +1 -0
- package/dist/tools/history/index.js +7 -0
- package/dist/tools/history/index.js.map +1 -0
- package/dist/tools/inboxes/create-inbox-template.d.ts +23 -0
- package/dist/tools/inboxes/create-inbox-template.d.ts.map +1 -0
- package/dist/tools/inboxes/create-inbox-template.js +26 -0
- package/dist/tools/inboxes/create-inbox-template.js.map +1 -0
- package/dist/tools/inboxes/create-inbox.d.ts +26 -0
- package/dist/tools/inboxes/create-inbox.d.ts.map +1 -0
- package/dist/tools/inboxes/create-inbox.js +26 -0
- package/dist/tools/inboxes/create-inbox.js.map +1 -0
- package/dist/tools/inboxes/fetch-inbox.d.ts +24 -0
- package/dist/tools/inboxes/fetch-inbox.d.ts.map +1 -0
- package/dist/tools/inboxes/fetch-inbox.js +26 -0
- package/dist/tools/inboxes/fetch-inbox.js.map +1 -0
- package/dist/tools/inboxes/get-inbound-domain.d.ts +21 -0
- package/dist/tools/inboxes/get-inbound-domain.d.ts.map +1 -0
- package/dist/tools/inboxes/get-inbound-domain.js +26 -0
- package/dist/tools/inboxes/get-inbound-domain.js.map +1 -0
- package/dist/tools/inboxes/index.d.ts +9 -0
- package/dist/tools/inboxes/index.d.ts.map +1 -0
- package/dist/tools/inboxes/index.js +9 -0
- package/dist/tools/inboxes/index.js.map +1 -0
- package/dist/tools/inboxes/list-inbox-templates.d.ts +21 -0
- package/dist/tools/inboxes/list-inbox-templates.d.ts.map +1 -0
- package/dist/tools/inboxes/list-inbox-templates.js +26 -0
- package/dist/tools/inboxes/list-inbox-templates.js.map +1 -0
- package/dist/tools/inboxes/list-inboxes.d.ts +21 -0
- package/dist/tools/inboxes/list-inboxes.d.ts.map +1 -0
- package/dist/tools/inboxes/list-inboxes.js +26 -0
- package/dist/tools/inboxes/list-inboxes.js.map +1 -0
- package/dist/tools/inboxes/update-inbox-template.d.ts +23 -0
- package/dist/tools/inboxes/update-inbox-template.d.ts.map +1 -0
- package/dist/tools/inboxes/update-inbox-template.js +26 -0
- package/dist/tools/inboxes/update-inbox-template.js.map +1 -0
- package/dist/tools/inboxes/update-inbox.d.ts +23 -0
- package/dist/tools/inboxes/update-inbox.d.ts.map +1 -0
- package/dist/tools/inboxes/update-inbox.js +26 -0
- package/dist/tools/inboxes/update-inbox.js.map +1 -0
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +171 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/language/get-language-placeholders.d.ts +27 -0
- package/dist/tools/language/get-language-placeholders.d.ts.map +1 -0
- package/dist/tools/language/get-language-placeholders.js +40 -0
- package/dist/tools/language/get-language-placeholders.js.map +1 -0
- package/dist/tools/language/index.d.ts +3 -0
- package/dist/tools/language/index.d.ts.map +1 -0
- package/dist/tools/language/index.js +3 -0
- package/dist/tools/language/index.js.map +1 -0
- package/dist/tools/language/update-language-placeholders.d.ts +39 -0
- package/dist/tools/language/update-language-placeholders.d.ts.map +1 -0
- package/dist/tools/language/update-language-placeholders.js +56 -0
- package/dist/tools/language/update-language-placeholders.js.map +1 -0
- package/dist/tools/models/get-field-metadata.d.ts +49 -0
- package/dist/tools/models/get-field-metadata.d.ts.map +1 -0
- package/dist/tools/models/get-field-metadata.js +77 -0
- package/dist/tools/models/get-field-metadata.js.map +1 -0
- package/dist/tools/models/get-model-metadata.d.ts +32 -0
- package/dist/tools/models/get-model-metadata.d.ts.map +1 -0
- package/dist/tools/models/get-model-metadata.js +46 -0
- package/dist/tools/models/get-model-metadata.js.map +1 -0
- package/dist/tools/models/get-model-relations.d.ts +32 -0
- package/dist/tools/models/get-model-relations.d.ts.map +1 -0
- package/dist/tools/models/get-model-relations.js +47 -0
- package/dist/tools/models/get-model-relations.js.map +1 -0
- package/dist/tools/models/get-model-schema.d.ts +32 -0
- package/dist/tools/models/get-model-schema.d.ts.map +1 -0
- package/dist/tools/models/get-model-schema.js +46 -0
- package/dist/tools/models/get-model-schema.js.map +1 -0
- package/dist/tools/models/index.d.ts +11 -0
- package/dist/tools/models/index.d.ts.map +1 -0
- package/dist/tools/models/index.js +11 -0
- package/dist/tools/models/index.js.map +1 -0
- package/dist/tools/models/list-models.d.ts +24 -0
- package/dist/tools/models/list-models.d.ts.map +1 -0
- package/dist/tools/models/list-models.js +45 -0
- package/dist/tools/models/list-models.js.map +1 -0
- package/dist/tools/notifications/get-notification-preferences.d.ts +41 -0
- package/dist/tools/notifications/get-notification-preferences.d.ts.map +1 -0
- package/dist/tools/notifications/get-notification-preferences.js +72 -0
- package/dist/tools/notifications/get-notification-preferences.js.map +1 -0
- package/dist/tools/notifications/index.d.ts +4 -0
- package/dist/tools/notifications/index.d.ts.map +1 -0
- package/dist/tools/notifications/index.js +4 -0
- package/dist/tools/notifications/index.js.map +1 -0
- package/dist/tools/notifications/list-notification-types.d.ts +23 -0
- package/dist/tools/notifications/list-notification-types.d.ts.map +1 -0
- package/dist/tools/notifications/list-notification-types.js +56 -0
- package/dist/tools/notifications/list-notification-types.js.map +1 -0
- package/dist/tools/notifications/update-notification-preferences.d.ts +65 -0
- package/dist/tools/notifications/update-notification-preferences.d.ts.map +1 -0
- package/dist/tools/notifications/update-notification-preferences.js +84 -0
- package/dist/tools/notifications/update-notification-preferences.js.map +1 -0
- package/dist/tools/org-admin/index.d.ts +3 -0
- package/dist/tools/org-admin/index.d.ts.map +1 -0
- package/dist/tools/org-admin/index.js +3 -0
- package/dist/tools/org-admin/index.js.map +1 -0
- package/dist/tools/org-admin/teams/fetch-org-team.d.ts +24 -0
- package/dist/tools/org-admin/teams/fetch-org-team.d.ts.map +1 -0
- package/dist/tools/org-admin/teams/fetch-org-team.js +18 -0
- package/dist/tools/org-admin/teams/fetch-org-team.js.map +1 -0
- package/dist/tools/org-admin/teams/index.d.ts +4 -0
- package/dist/tools/org-admin/teams/index.d.ts.map +1 -0
- package/dist/tools/org-admin/teams/index.js +4 -0
- package/dist/tools/org-admin/teams/index.js.map +1 -0
- package/dist/tools/org-admin/teams/list-org-teams.d.ts +21 -0
- package/dist/tools/org-admin/teams/list-org-teams.d.ts.map +1 -0
- package/dist/tools/org-admin/teams/list-org-teams.js +18 -0
- package/dist/tools/org-admin/teams/list-org-teams.js.map +1 -0
- package/dist/tools/org-admin/teams/update-org-team.d.ts +24 -0
- package/dist/tools/org-admin/teams/update-org-team.d.ts.map +1 -0
- package/dist/tools/org-admin/teams/update-org-team.js +18 -0
- package/dist/tools/org-admin/teams/update-org-team.js.map +1 -0
- package/dist/tools/org-admin/users/assign-user-to-team.d.ts +27 -0
- package/dist/tools/org-admin/users/assign-user-to-team.d.ts.map +1 -0
- package/dist/tools/org-admin/users/assign-user-to-team.js +22 -0
- package/dist/tools/org-admin/users/assign-user-to-team.js.map +1 -0
- package/dist/tools/org-admin/users/create-org-user.d.ts +19 -0
- package/dist/tools/org-admin/users/create-org-user.d.ts.map +1 -0
- package/dist/tools/org-admin/users/create-org-user.js +18 -0
- package/dist/tools/org-admin/users/create-org-user.js.map +1 -0
- package/dist/tools/org-admin/users/fetch-org-user.d.ts +24 -0
- package/dist/tools/org-admin/users/fetch-org-user.d.ts.map +1 -0
- package/dist/tools/org-admin/users/fetch-org-user.js +18 -0
- package/dist/tools/org-admin/users/fetch-org-user.js.map +1 -0
- package/dist/tools/org-admin/users/index.d.ts +7 -0
- package/dist/tools/org-admin/users/index.d.ts.map +1 -0
- package/dist/tools/org-admin/users/index.js +7 -0
- package/dist/tools/org-admin/users/index.js.map +1 -0
- package/dist/tools/org-admin/users/list-org-user-groups.d.ts +21 -0
- package/dist/tools/org-admin/users/list-org-user-groups.d.ts.map +1 -0
- package/dist/tools/org-admin/users/list-org-user-groups.js +18 -0
- package/dist/tools/org-admin/users/list-org-user-groups.js.map +1 -0
- package/dist/tools/org-admin/users/list-org-users.d.ts +21 -0
- package/dist/tools/org-admin/users/list-org-users.d.ts.map +1 -0
- package/dist/tools/org-admin/users/list-org-users.js +18 -0
- package/dist/tools/org-admin/users/list-org-users.js.map +1 -0
- package/dist/tools/org-admin/users/update-org-user.d.ts +24 -0
- package/dist/tools/org-admin/users/update-org-user.d.ts.map +1 -0
- package/dist/tools/org-admin/users/update-org-user.js +18 -0
- package/dist/tools/org-admin/users/update-org-user.js.map +1 -0
- package/dist/tools/resources/get-resources.d.ts +46 -0
- package/dist/tools/resources/get-resources.d.ts.map +1 -0
- package/dist/tools/resources/get-resources.js +56 -0
- package/dist/tools/resources/get-resources.js.map +1 -0
- package/dist/tools/resources/index.d.ts +8 -0
- package/dist/tools/resources/index.d.ts.map +1 -0
- package/dist/tools/resources/index.js +8 -0
- package/dist/tools/resources/index.js.map +1 -0
- package/dist/tools/resources/update-or-create-resources.d.ts +48 -0
- package/dist/tools/resources/update-or-create-resources.d.ts.map +1 -0
- package/dist/tools/resources/update-or-create-resources.js +64 -0
- package/dist/tools/resources/update-or-create-resources.js.map +1 -0
- package/dist/tools/sentences/create-sentence.d.ts +39 -0
- package/dist/tools/sentences/create-sentence.d.ts.map +1 -0
- package/dist/tools/sentences/create-sentence.js +33 -0
- package/dist/tools/sentences/create-sentence.js.map +1 -0
- package/dist/tools/sentences/get-sentence-template.d.ts +32 -0
- package/dist/tools/sentences/get-sentence-template.d.ts.map +1 -0
- package/dist/tools/sentences/get-sentence-template.js +27 -0
- package/dist/tools/sentences/get-sentence-template.js.map +1 -0
- package/dist/tools/sentences/get-sentence.d.ts +32 -0
- package/dist/tools/sentences/get-sentence.d.ts.map +1 -0
- package/dist/tools/sentences/get-sentence.js +27 -0
- package/dist/tools/sentences/get-sentence.js.map +1 -0
- package/dist/tools/sentences/index.d.ts +14 -0
- package/dist/tools/sentences/index.d.ts.map +1 -0
- package/dist/tools/sentences/index.js +14 -0
- package/dist/tools/sentences/index.js.map +1 -0
- package/dist/tools/sentences/list-sentence-resources.d.ts +46 -0
- package/dist/tools/sentences/list-sentence-resources.d.ts.map +1 -0
- package/dist/tools/sentences/list-sentence-resources.js +31 -0
- package/dist/tools/sentences/list-sentence-resources.js.map +1 -0
- package/dist/tools/sentences/list-sentence-templates.d.ts +34 -0
- package/dist/tools/sentences/list-sentence-templates.d.ts.map +1 -0
- package/dist/tools/sentences/list-sentence-templates.js +27 -0
- package/dist/tools/sentences/list-sentence-templates.js.map +1 -0
- package/dist/tools/sentences/list-sentences.d.ts +43 -0
- package/dist/tools/sentences/list-sentences.d.ts.map +1 -0
- package/dist/tools/sentences/list-sentences.js +35 -0
- package/dist/tools/sentences/list-sentences.js.map +1 -0
- package/dist/tools/sentences/update-sentence.d.ts +34 -0
- package/dist/tools/sentences/update-sentence.d.ts.map +1 -0
- package/dist/tools/sentences/update-sentence.js +31 -0
- package/dist/tools/sentences/update-sentence.js.map +1 -0
- package/dist/tools/sentences/update-sentences-order.d.ts +33 -0
- package/dist/tools/sentences/update-sentences-order.d.ts.map +1 -0
- package/dist/tools/sentences/update-sentences-order.js +33 -0
- package/dist/tools/sentences/update-sentences-order.js.map +1 -0
- package/dist/tools/statuses/create-status.d.ts +75 -0
- package/dist/tools/statuses/create-status.d.ts.map +1 -0
- package/dist/tools/statuses/create-status.js +115 -0
- package/dist/tools/statuses/create-status.js.map +1 -0
- package/dist/tools/statuses/get-status.d.ts +27 -0
- package/dist/tools/statuses/get-status.d.ts.map +1 -0
- package/dist/tools/statuses/get-status.js +37 -0
- package/dist/tools/statuses/get-status.js.map +1 -0
- package/dist/tools/statuses/index.d.ts +6 -0
- package/dist/tools/statuses/index.d.ts.map +1 -0
- package/dist/tools/statuses/index.js +6 -0
- package/dist/tools/statuses/index.js.map +1 -0
- package/dist/tools/statuses/list-statuses.d.ts +41 -0
- package/dist/tools/statuses/list-statuses.d.ts.map +1 -0
- package/dist/tools/statuses/list-statuses.js +58 -0
- package/dist/tools/statuses/list-statuses.js.map +1 -0
- package/dist/tools/statuses/reorder-statuses.d.ts +44 -0
- package/dist/tools/statuses/reorder-statuses.d.ts.map +1 -0
- package/dist/tools/statuses/reorder-statuses.js +55 -0
- package/dist/tools/statuses/reorder-statuses.js.map +1 -0
- package/dist/tools/statuses/update-status.d.ts +80 -0
- package/dist/tools/statuses/update-status.d.ts.map +1 -0
- package/dist/tools/statuses/update-status.js +79 -0
- package/dist/tools/statuses/update-status.js.map +1 -0
- package/dist/tools/users/get-user-groups.d.ts +38 -0
- package/dist/tools/users/get-user-groups.d.ts.map +1 -0
- package/dist/tools/users/get-user-groups.js +33 -0
- package/dist/tools/users/get-user-groups.js.map +1 -0
- package/dist/tools/users/get-users.d.ts +66 -0
- package/dist/tools/users/get-users.d.ts.map +1 -0
- package/dist/tools/users/get-users.js +46 -0
- package/dist/tools/users/get-users.js.map +1 -0
- package/dist/tools/users/index.d.ts +3 -0
- package/dist/tools/users/index.d.ts.map +1 -0
- package/dist/tools/users/index.js +3 -0
- package/dist/tools/users/index.js.map +1 -0
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +46 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,1467 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Comprehensive Zudello model, module, and submodule definitions.
|
|
4
|
+
* This module provides shared knowledge of valid combinations across all Zudello tools.
|
|
5
|
+
*
|
|
6
|
+
* Data structure based on the official Zudello API specification.
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Core Types and Constants
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Valid Zudello models
|
|
13
|
+
*/
|
|
14
|
+
export const ZUDELLO_MODELS = [
|
|
15
|
+
// Budgets
|
|
16
|
+
"Budget",
|
|
17
|
+
// Contracts
|
|
18
|
+
"Contract",
|
|
19
|
+
// Dimensional data
|
|
20
|
+
"Account",
|
|
21
|
+
"AccountCategory",
|
|
22
|
+
"AccountGroup",
|
|
23
|
+
"AccountingPeriod",
|
|
24
|
+
"AmortizationSchedule",
|
|
25
|
+
"Batch",
|
|
26
|
+
"Bin",
|
|
27
|
+
"ContractCategory",
|
|
28
|
+
"ContractGroup",
|
|
29
|
+
"CostCentre",
|
|
30
|
+
"CostType",
|
|
31
|
+
"Currency",
|
|
32
|
+
"CustomerCategory",
|
|
33
|
+
"CustomerGroup",
|
|
34
|
+
"Department",
|
|
35
|
+
"ExpenseCategory",
|
|
36
|
+
"FixedAsset",
|
|
37
|
+
"ItemCategory",
|
|
38
|
+
"ItemGroup",
|
|
39
|
+
"Location",
|
|
40
|
+
"MileageRate",
|
|
41
|
+
"PaymentMethod",
|
|
42
|
+
"PaymentTerm",
|
|
43
|
+
"Project",
|
|
44
|
+
"ProjectGroup",
|
|
45
|
+
"ProjectTask",
|
|
46
|
+
"ProjectType",
|
|
47
|
+
"Subsidiary",
|
|
48
|
+
"SupplierCategory",
|
|
49
|
+
"SupplierGroup",
|
|
50
|
+
"TaxRate",
|
|
51
|
+
"TaxSolution",
|
|
52
|
+
"TeamAddress",
|
|
53
|
+
"UnitOfMeasure",
|
|
54
|
+
"Warehouse",
|
|
55
|
+
"Zone",
|
|
56
|
+
// Transactions (multi-module)
|
|
57
|
+
"Transaction",
|
|
58
|
+
// Items
|
|
59
|
+
"Item",
|
|
60
|
+
// Relationships
|
|
61
|
+
"Customer",
|
|
62
|
+
"Employee",
|
|
63
|
+
"Supplier",
|
|
64
|
+
];
|
|
65
|
+
/**
|
|
66
|
+
* Valid Zudello modules
|
|
67
|
+
*/
|
|
68
|
+
export const ZUDELLO_MODULES = [
|
|
69
|
+
"BUDGETS",
|
|
70
|
+
"CONTRACTS",
|
|
71
|
+
"DIMENSIONS",
|
|
72
|
+
"EXPENSES",
|
|
73
|
+
"INVENTORY",
|
|
74
|
+
"PURCHASING",
|
|
75
|
+
"RELATIONSHIPS",
|
|
76
|
+
"SALES",
|
|
77
|
+
];
|
|
78
|
+
/**
|
|
79
|
+
* Valid Zudello submodules
|
|
80
|
+
*/
|
|
81
|
+
export const ZUDELLO_SUBMODULES = [
|
|
82
|
+
// Budget submodules
|
|
83
|
+
"BUDGET",
|
|
84
|
+
// Contract submodules
|
|
85
|
+
"CONTRACT",
|
|
86
|
+
// Dimension submodules
|
|
87
|
+
"ACCOUNT",
|
|
88
|
+
"ACCOUNT_CATEGORY",
|
|
89
|
+
"ACCOUNT_GROUP",
|
|
90
|
+
"ACCOUNTING_PERIOD",
|
|
91
|
+
"AMORTIZATION_SCHEDULE",
|
|
92
|
+
"BATCH",
|
|
93
|
+
"BIN",
|
|
94
|
+
"CONTRACT_CATEGORY",
|
|
95
|
+
"CONTRACT_GROUP",
|
|
96
|
+
"COST_CENTRE",
|
|
97
|
+
"COST_TYPE",
|
|
98
|
+
"CURRENCY",
|
|
99
|
+
"CUSTOMER_CATEGORY",
|
|
100
|
+
"CUSTOMER_GROUP",
|
|
101
|
+
"DEPARTMENT",
|
|
102
|
+
"EXPENSE_CATEGORY",
|
|
103
|
+
"FIXED_ASSET",
|
|
104
|
+
"ITEM_CATEGORY",
|
|
105
|
+
"ITEM_GROUP",
|
|
106
|
+
"LOCATION",
|
|
107
|
+
"MILEAGE_RATE",
|
|
108
|
+
"PAYMENT_METHOD",
|
|
109
|
+
"PAYMENT_TERM",
|
|
110
|
+
"PROJECT",
|
|
111
|
+
"PROJECT_GROUP",
|
|
112
|
+
"PROJECT_TASK",
|
|
113
|
+
"PROJECT_TYPE",
|
|
114
|
+
"SUBSIDIARY",
|
|
115
|
+
"SUPPLIER_CATEGORY",
|
|
116
|
+
"SUPPLIER_GROUP",
|
|
117
|
+
"TAX_RATE",
|
|
118
|
+
"TAX_SOLUTION",
|
|
119
|
+
"TEAM_ADDRESS",
|
|
120
|
+
"UNIT_OF_MEASURE",
|
|
121
|
+
"WAREHOUSE",
|
|
122
|
+
"ZONE",
|
|
123
|
+
// Expense submodules
|
|
124
|
+
"CLAIM",
|
|
125
|
+
"EXPENSE",
|
|
126
|
+
"MILEAGE",
|
|
127
|
+
"PAYMENT",
|
|
128
|
+
"REFUND",
|
|
129
|
+
// Inventory submodules
|
|
130
|
+
"CATALOGUE",
|
|
131
|
+
"RECEIPT",
|
|
132
|
+
// Purchasing submodules
|
|
133
|
+
"CREDIT",
|
|
134
|
+
"INVOICE",
|
|
135
|
+
"ORDER",
|
|
136
|
+
"QUOTE",
|
|
137
|
+
"REQUISITION",
|
|
138
|
+
"RETURN",
|
|
139
|
+
"STATEMENT",
|
|
140
|
+
// Relationship submodules
|
|
141
|
+
"CUSTOMER",
|
|
142
|
+
"EMPLOYEE",
|
|
143
|
+
"SUPPLIER",
|
|
144
|
+
// Sales submodules
|
|
145
|
+
"REMITTANCE",
|
|
146
|
+
// Note: CREDIT, INVOICE, ORDER, QUOTE are reused from purchasing
|
|
147
|
+
];
|
|
148
|
+
// ============================================================================
|
|
149
|
+
// Model/Module/Submodule Relationships
|
|
150
|
+
// ============================================================================
|
|
151
|
+
/**
|
|
152
|
+
* Valid combinations of model, module, and submodule.
|
|
153
|
+
* Based on the official Zudello API specification.
|
|
154
|
+
*/
|
|
155
|
+
export const ZUDELLO_MODEL_COMBINATIONS = [
|
|
156
|
+
// Budgets
|
|
157
|
+
{ model: "Budget", module: "BUDGETS", submodule: "BUDGET" },
|
|
158
|
+
// Contracts
|
|
159
|
+
{ model: "Contract", module: "CONTRACTS", submodule: "CONTRACT" },
|
|
160
|
+
// Dimensions
|
|
161
|
+
{ model: "Account", module: "DIMENSIONS", submodule: "ACCOUNT" },
|
|
162
|
+
{ model: "AccountCategory", module: "DIMENSIONS", submodule: "ACCOUNT_CATEGORY" },
|
|
163
|
+
{ model: "AccountGroup", module: "DIMENSIONS", submodule: "ACCOUNT_GROUP" },
|
|
164
|
+
{ model: "AccountingPeriod", module: "DIMENSIONS", submodule: "ACCOUNTING_PERIOD" },
|
|
165
|
+
{ model: "AmortizationSchedule", module: "DIMENSIONS", submodule: "AMORTIZATION_SCHEDULE" },
|
|
166
|
+
{ model: "Batch", module: "DIMENSIONS", submodule: "BATCH" },
|
|
167
|
+
{ model: "Bin", module: "DIMENSIONS", submodule: "BIN" },
|
|
168
|
+
{ model: "ContractCategory", module: "DIMENSIONS", submodule: "CONTRACT_CATEGORY" },
|
|
169
|
+
{ model: "ContractGroup", module: "DIMENSIONS", submodule: "CONTRACT_GROUP" },
|
|
170
|
+
{ model: "CostCentre", module: "DIMENSIONS", submodule: "COST_CENTRE" },
|
|
171
|
+
{ model: "CostType", module: "DIMENSIONS", submodule: "COST_TYPE" },
|
|
172
|
+
{ model: "Currency", module: "DIMENSIONS", submodule: "CURRENCY" },
|
|
173
|
+
{ model: "CustomerCategory", module: "DIMENSIONS", submodule: "CUSTOMER_CATEGORY" },
|
|
174
|
+
{ model: "CustomerGroup", module: "DIMENSIONS", submodule: "CUSTOMER_GROUP" },
|
|
175
|
+
{ model: "Department", module: "DIMENSIONS", submodule: "DEPARTMENT" },
|
|
176
|
+
{ model: "ExpenseCategory", module: "DIMENSIONS", submodule: "EXPENSE_CATEGORY" },
|
|
177
|
+
{ model: "FixedAsset", module: "DIMENSIONS", submodule: "FIXED_ASSET" },
|
|
178
|
+
{ model: "ItemCategory", module: "DIMENSIONS", submodule: "ITEM_CATEGORY" },
|
|
179
|
+
{ model: "ItemGroup", module: "DIMENSIONS", submodule: "ITEM_GROUP" },
|
|
180
|
+
{ model: "Location", module: "DIMENSIONS", submodule: "LOCATION" },
|
|
181
|
+
{ model: "MileageRate", module: "DIMENSIONS", submodule: "MILEAGE_RATE" },
|
|
182
|
+
{ model: "PaymentMethod", module: "DIMENSIONS", submodule: "PAYMENT_METHOD" },
|
|
183
|
+
{ model: "PaymentTerm", module: "DIMENSIONS", submodule: "PAYMENT_TERM" },
|
|
184
|
+
{ model: "Project", module: "DIMENSIONS", submodule: "PROJECT" },
|
|
185
|
+
{ model: "ProjectGroup", module: "DIMENSIONS", submodule: "PROJECT_GROUP" },
|
|
186
|
+
{ model: "ProjectTask", module: "DIMENSIONS", submodule: "PROJECT_TASK" },
|
|
187
|
+
{ model: "ProjectType", module: "DIMENSIONS", submodule: "PROJECT_TYPE" },
|
|
188
|
+
{ model: "Subsidiary", module: "DIMENSIONS", submodule: "SUBSIDIARY" },
|
|
189
|
+
{ model: "SupplierCategory", module: "DIMENSIONS", submodule: "SUPPLIER_CATEGORY" },
|
|
190
|
+
{ model: "SupplierGroup", module: "DIMENSIONS", submodule: "SUPPLIER_GROUP" },
|
|
191
|
+
{ model: "TaxRate", module: "DIMENSIONS", submodule: "TAX_RATE" },
|
|
192
|
+
{ model: "TaxSolution", module: "DIMENSIONS", submodule: "TAX_SOLUTION" },
|
|
193
|
+
{ model: "TeamAddress", module: "DIMENSIONS", submodule: "TEAM_ADDRESS" },
|
|
194
|
+
{ model: "UnitOfMeasure", module: "DIMENSIONS", submodule: "UNIT_OF_MEASURE" },
|
|
195
|
+
{ model: "Warehouse", module: "DIMENSIONS", submodule: "WAREHOUSE" },
|
|
196
|
+
{ model: "Zone", module: "DIMENSIONS", submodule: "ZONE" },
|
|
197
|
+
// Expenses - Transaction model with multiple submodules
|
|
198
|
+
{ model: "Transaction", module: "EXPENSES", submodule: "CLAIM" },
|
|
199
|
+
{ model: "Transaction", module: "EXPENSES", submodule: "EXPENSE" },
|
|
200
|
+
{ model: "Transaction", module: "EXPENSES", submodule: "MILEAGE" },
|
|
201
|
+
{ model: "Transaction", module: "EXPENSES", submodule: "PAYMENT" },
|
|
202
|
+
{ model: "Transaction", module: "EXPENSES", submodule: "REFUND" },
|
|
203
|
+
// Inventory
|
|
204
|
+
{ model: "Item", module: "INVENTORY", submodule: "CATALOGUE" },
|
|
205
|
+
{ model: "Transaction", module: "INVENTORY", submodule: "RECEIPT" },
|
|
206
|
+
// Purchasing - Transaction model with multiple submodules
|
|
207
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "CREDIT" },
|
|
208
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "INVOICE" },
|
|
209
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "ORDER" },
|
|
210
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "QUOTE" },
|
|
211
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "REQUISITION" },
|
|
212
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "RETURN" },
|
|
213
|
+
{ model: "Transaction", module: "PURCHASING", submodule: "STATEMENT" },
|
|
214
|
+
// Relationships
|
|
215
|
+
{ model: "Customer", module: "RELATIONSHIPS", submodule: "CUSTOMER" },
|
|
216
|
+
{ model: "Employee", module: "RELATIONSHIPS", submodule: "EMPLOYEE" },
|
|
217
|
+
{ model: "Supplier", module: "RELATIONSHIPS", submodule: "SUPPLIER" },
|
|
218
|
+
// Sales - Transaction model with multiple submodules
|
|
219
|
+
{ model: "Transaction", module: "SALES", submodule: "CREDIT" },
|
|
220
|
+
{ model: "Transaction", module: "SALES", submodule: "INVOICE" },
|
|
221
|
+
{ model: "Transaction", module: "SALES", submodule: "ORDER" },
|
|
222
|
+
{ model: "Transaction", module: "SALES", submodule: "QUOTE" },
|
|
223
|
+
{ model: "Transaction", module: "SALES", submodule: "REMITTANCE" },
|
|
224
|
+
];
|
|
225
|
+
// ============================================================================
|
|
226
|
+
// Status Keys and Configurations
|
|
227
|
+
// ============================================================================
|
|
228
|
+
/**
|
|
229
|
+
* All unique status keys used across Zudello modules.
|
|
230
|
+
* IMPORTANT: Statuses are user-configurable per organization.
|
|
231
|
+
* Use zudelloListConfigs with configType 'document_status' to get actual configured statuses.
|
|
232
|
+
*/
|
|
233
|
+
export const ZUDELLO_STATUS_KEYS = [
|
|
234
|
+
// Common statuses
|
|
235
|
+
"DRAFT",
|
|
236
|
+
"ACTIVE",
|
|
237
|
+
"INACTIVE",
|
|
238
|
+
"DELETED",
|
|
239
|
+
"ARCHIVED",
|
|
240
|
+
"PROCESSING",
|
|
241
|
+
// Approval workflow statuses
|
|
242
|
+
"APPROVAL",
|
|
243
|
+
"REJECT",
|
|
244
|
+
"REJECTED",
|
|
245
|
+
"UNABLE",
|
|
246
|
+
// Document workflow statuses
|
|
247
|
+
"SCANNING",
|
|
248
|
+
"REVIEW",
|
|
249
|
+
"READY",
|
|
250
|
+
"COMPLETE",
|
|
251
|
+
"CLOSED",
|
|
252
|
+
"DUPLICATE",
|
|
253
|
+
// Purchasing-specific statuses
|
|
254
|
+
"NEW_VENDOR",
|
|
255
|
+
"PO_MISSING",
|
|
256
|
+
"PO_VARIANCE",
|
|
257
|
+
"GR_PENDING",
|
|
258
|
+
"PENDING",
|
|
259
|
+
"PLACED",
|
|
260
|
+
"PARTIALLY_RECEIVED",
|
|
261
|
+
"RECEIVED",
|
|
262
|
+
"PARTIALLY_INVOICED",
|
|
263
|
+
"INVOICED_NOT_RECEIVED",
|
|
264
|
+
// Statement-specific statuses
|
|
265
|
+
"READY_TO_RECONCILE",
|
|
266
|
+
"RECONCILE",
|
|
267
|
+
"REQUESTED",
|
|
268
|
+
// Sales-specific statuses
|
|
269
|
+
"CUSTOMER_CHECK",
|
|
270
|
+
"ITEM_CHECK",
|
|
271
|
+
"PRICE_CHECK",
|
|
272
|
+
"STOCK_CHECK",
|
|
273
|
+
"UNSUPPORTED",
|
|
274
|
+
];
|
|
275
|
+
/**
|
|
276
|
+
* Default status configurations by module/submodule.
|
|
277
|
+
* IMPORTANT: These are default statuses. Organizations can configure custom statuses.
|
|
278
|
+
* Use zudelloListConfigs(configType: 'document_status', module, submodule) for actual configs.
|
|
279
|
+
*/
|
|
280
|
+
export const ZUDELLO_STATUS_CONFIGURATIONS = [
|
|
281
|
+
// BUDGETS / BUDGET
|
|
282
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Draft", statusKey: "DRAFT" },
|
|
283
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Approval", statusKey: "APPROVAL" },
|
|
284
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Reject Review", statusKey: "REJECT" },
|
|
285
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
286
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Active", statusKey: "ACTIVE" },
|
|
287
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Inactive", statusKey: "INACTIVE" },
|
|
288
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Processing", statusKey: "PROCESSING" },
|
|
289
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
290
|
+
{ module: "BUDGETS", submodule: "BUDGET", statusName: "Deleted", statusKey: "DELETED" },
|
|
291
|
+
// CONTRACTS / CONTRACT
|
|
292
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Scanning", statusKey: "SCANNING" },
|
|
293
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Draft", statusKey: "DRAFT" },
|
|
294
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "User Review", statusKey: "REVIEW" },
|
|
295
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Ready", statusKey: "READY" },
|
|
296
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Reject Review", statusKey: "REJECT" },
|
|
297
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
298
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Approval", statusKey: "APPROVAL" },
|
|
299
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Active", statusKey: "ACTIVE" },
|
|
300
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Rejected", statusKey: "REJECTED" },
|
|
301
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Inactive", statusKey: "INACTIVE" },
|
|
302
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Processing", statusKey: "PROCESSING" },
|
|
303
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
304
|
+
{ module: "CONTRACTS", submodule: "CONTRACT", statusName: "Deleted", statusKey: "DELETED" },
|
|
305
|
+
// DIMENSIONS - Simple statuses (Draft, Active, Inactive)
|
|
306
|
+
...[
|
|
307
|
+
"ACCOUNT", "ACCOUNT_CATEGORY", "ACCOUNT_GROUP", "ACCOUNTING_PERIOD",
|
|
308
|
+
"AMORTIZATION_SCHEDULE", "BATCH", "BIN", "CONTRACT_CATEGORY", "CONTRACT_GROUP",
|
|
309
|
+
"COST_CENTRE", "COST_TYPE", "CURRENCY", "CUSTOMER_CATEGORY", "CUSTOMER_GROUP",
|
|
310
|
+
"DEPARTMENT", "EXPENSE_CATEGORY", "FIXED_ASSET", "ITEM_CATEGORY", "ITEM_GROUP",
|
|
311
|
+
"LOCATION", "MILEAGE_RATE", "PAYMENT_TERM", "PROJECT", "PROJECT_GROUP",
|
|
312
|
+
"PROJECT_TASK", "PROJECT_TYPE", "SUBSIDIARY", "SUPPLIER_CATEGORY", "SUPPLIER_GROUP",
|
|
313
|
+
"TAX_RATE", "TAX_SOLUTION", "TEAM_ADDRESS", "UNIT_OF_MEASURE", "WAREHOUSE", "ZONE"
|
|
314
|
+
].flatMap(submodule => [
|
|
315
|
+
{ module: "DIMENSIONS", submodule, statusName: "Draft", statusKey: "DRAFT" },
|
|
316
|
+
{ module: "DIMENSIONS", submodule, statusName: "Active", statusKey: "ACTIVE" },
|
|
317
|
+
{ module: "DIMENSIONS", submodule, statusName: "Inactive", statusKey: "INACTIVE" },
|
|
318
|
+
]),
|
|
319
|
+
// DIMENSIONS / PAYMENT_METHOD (extended statuses)
|
|
320
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Approval", statusKey: "APPROVAL" },
|
|
321
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Reject Review", statusKey: "REJECT" },
|
|
322
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
323
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Rejected", statusKey: "REJECTED" },
|
|
324
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Processing", statusKey: "PROCESSING" },
|
|
325
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
326
|
+
{ module: "DIMENSIONS", submodule: "PAYMENT_METHOD", statusName: "Deleted", statusKey: "DELETED" },
|
|
327
|
+
// EXPENSES / CLAIM
|
|
328
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Draft", statusKey: "DRAFT" },
|
|
329
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "User Review", statusKey: "REVIEW" },
|
|
330
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Approval", statusKey: "APPROVAL" },
|
|
331
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Reject Review", statusKey: "REJECT" },
|
|
332
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
333
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Completed", statusKey: "COMPLETE" },
|
|
334
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Rejected", statusKey: "REJECTED" },
|
|
335
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Processing", statusKey: "PROCESSING" },
|
|
336
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
337
|
+
{ module: "EXPENSES", submodule: "CLAIM", statusName: "Deleted", statusKey: "DELETED" },
|
|
338
|
+
// EXPENSES / EXPENSE
|
|
339
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Scanning", statusKey: "SCANNING" },
|
|
340
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "User Review", statusKey: "REVIEW" },
|
|
341
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Ready", statusKey: "READY" },
|
|
342
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Approval", statusKey: "APPROVAL" },
|
|
343
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Reject Review", statusKey: "REJECT" },
|
|
344
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
345
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Completed", statusKey: "COMPLETE" },
|
|
346
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Rejected", statusKey: "REJECTED" },
|
|
347
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Processing", statusKey: "PROCESSING" },
|
|
348
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
349
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
350
|
+
{ module: "EXPENSES", submodule: "EXPENSE", statusName: "Deleted", statusKey: "DELETED" },
|
|
351
|
+
// EXPENSES / MILEAGE
|
|
352
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Scanning", statusKey: "SCANNING" },
|
|
353
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "User Review", statusKey: "REVIEW" },
|
|
354
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Approval", statusKey: "APPROVAL" },
|
|
355
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Reject Review", statusKey: "REJECT" },
|
|
356
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
357
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Completed", statusKey: "COMPLETE" },
|
|
358
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Rejected", statusKey: "REJECTED" },
|
|
359
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Processing", statusKey: "PROCESSING" },
|
|
360
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
361
|
+
{ module: "EXPENSES", submodule: "MILEAGE", statusName: "Deleted", statusKey: "DELETED" },
|
|
362
|
+
// EXPENSES / PAYMENT
|
|
363
|
+
{ module: "EXPENSES", submodule: "PAYMENT", statusName: "User Review", statusKey: "REVIEW" },
|
|
364
|
+
{ module: "EXPENSES", submodule: "PAYMENT", statusName: "Closed", statusKey: "CLOSED" },
|
|
365
|
+
{ module: "EXPENSES", submodule: "PAYMENT", statusName: "Rejected", statusKey: "REJECTED" },
|
|
366
|
+
{ module: "EXPENSES", submodule: "PAYMENT", statusName: "Completed", statusKey: "COMPLETE" },
|
|
367
|
+
// EXPENSES / REFUND
|
|
368
|
+
{ module: "EXPENSES", submodule: "REFUND", statusName: "User Review", statusKey: "REVIEW" },
|
|
369
|
+
{ module: "EXPENSES", submodule: "REFUND", statusName: "Closed", statusKey: "CLOSED" },
|
|
370
|
+
{ module: "EXPENSES", submodule: "REFUND", statusName: "Rejected", statusKey: "REJECTED" },
|
|
371
|
+
// INVENTORY / CATALOGUE
|
|
372
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Draft", statusKey: "DRAFT" },
|
|
373
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Approval", statusKey: "APPROVAL" },
|
|
374
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Reject Review", statusKey: "REJECT" },
|
|
375
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
376
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Active", statusKey: "ACTIVE" },
|
|
377
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Rejected", statusKey: "REJECTED" },
|
|
378
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Inactive", statusKey: "INACTIVE" },
|
|
379
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Processing", statusKey: "PROCESSING" },
|
|
380
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
381
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
382
|
+
{ module: "INVENTORY", submodule: "CATALOGUE", statusName: "Deleted", statusKey: "DELETED" },
|
|
383
|
+
// INVENTORY / RECEIPT
|
|
384
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Scanning", statusKey: "SCANNING" },
|
|
385
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "User Review", statusKey: "REVIEW" },
|
|
386
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Ready", statusKey: "READY" },
|
|
387
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Approval", statusKey: "APPROVAL" },
|
|
388
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Reject Review", statusKey: "REJECT" },
|
|
389
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
390
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Completed", statusKey: "COMPLETE" },
|
|
391
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Rejected", statusKey: "REJECTED" },
|
|
392
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Processing", statusKey: "PROCESSING" },
|
|
393
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
394
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
395
|
+
{ module: "INVENTORY", submodule: "RECEIPT", statusName: "Deleted", statusKey: "DELETED" },
|
|
396
|
+
// PURCHASING / CREDIT
|
|
397
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Scanning", statusKey: "SCANNING" },
|
|
398
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "User Review", statusKey: "REVIEW" },
|
|
399
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "New Vendor", statusKey: "NEW_VENDOR" },
|
|
400
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Ready", statusKey: "READY" },
|
|
401
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Approval", statusKey: "APPROVAL" },
|
|
402
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Reject Review", statusKey: "REJECT" },
|
|
403
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
404
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Completed", statusKey: "COMPLETE" },
|
|
405
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Rejected", statusKey: "REJECTED" },
|
|
406
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Processing", statusKey: "PROCESSING" },
|
|
407
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
408
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
409
|
+
{ module: "PURCHASING", submodule: "CREDIT", statusName: "Deleted", statusKey: "DELETED" },
|
|
410
|
+
// PURCHASING / INVOICE
|
|
411
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Scanning", statusKey: "SCANNING" },
|
|
412
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "User Review", statusKey: "REVIEW" },
|
|
413
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "New Vendor", statusKey: "NEW_VENDOR" },
|
|
414
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "PO Missing", statusKey: "PO_MISSING" },
|
|
415
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "PO Variance", statusKey: "PO_VARIANCE" },
|
|
416
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "GR Pending", statusKey: "GR_PENDING" },
|
|
417
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Ready", statusKey: "READY" },
|
|
418
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Approval", statusKey: "APPROVAL" },
|
|
419
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Reject Review", statusKey: "REJECT" },
|
|
420
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
421
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Complete", statusKey: "COMPLETE" },
|
|
422
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Rejected", statusKey: "REJECTED" },
|
|
423
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Processing", statusKey: "PROCESSING" },
|
|
424
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
425
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
426
|
+
{ module: "PURCHASING", submodule: "INVOICE", statusName: "Deleted", statusKey: "DELETED" },
|
|
427
|
+
// PURCHASING / ORDER
|
|
428
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Scanning", statusKey: "SCANNING" },
|
|
429
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "User Review", statusKey: "REVIEW" },
|
|
430
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Ready", statusKey: "READY" },
|
|
431
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Approval", statusKey: "APPROVAL" },
|
|
432
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Pending", statusKey: "PENDING" },
|
|
433
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Placed", statusKey: "PLACED" },
|
|
434
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Partially Received", statusKey: "PARTIALLY_RECEIVED" },
|
|
435
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Received", statusKey: "RECEIVED" },
|
|
436
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Partially Invoiced", statusKey: "PARTIALLY_INVOICED" },
|
|
437
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Invoiced Not Received", statusKey: "INVOICED_NOT_RECEIVED" },
|
|
438
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Reject Review", statusKey: "REJECT" },
|
|
439
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
440
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Closed", statusKey: "CLOSED" },
|
|
441
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Complete", statusKey: "COMPLETE" },
|
|
442
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Rejected", statusKey: "REJECTED" },
|
|
443
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Processing", statusKey: "PROCESSING" },
|
|
444
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
445
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
446
|
+
{ module: "PURCHASING", submodule: "ORDER", statusName: "Deleted", statusKey: "DELETED" },
|
|
447
|
+
// PURCHASING / QUOTE, REQUISITION, RETURN (similar pattern)
|
|
448
|
+
...["QUOTE", "REQUISITION", "RETURN"].flatMap(submodule => [
|
|
449
|
+
{ module: "PURCHASING", submodule, statusName: "Scanning", statusKey: "SCANNING" },
|
|
450
|
+
{ module: "PURCHASING", submodule, statusName: "User Review", statusKey: "REVIEW" },
|
|
451
|
+
{ module: "PURCHASING", submodule, statusName: "New Vendor", statusKey: "NEW_VENDOR" },
|
|
452
|
+
{ module: "PURCHASING", submodule, statusName: "Ready", statusKey: "READY" },
|
|
453
|
+
{ module: "PURCHASING", submodule, statusName: "Approval", statusKey: "APPROVAL" },
|
|
454
|
+
{ module: "PURCHASING", submodule, statusName: "Reject Review", statusKey: "REJECT" },
|
|
455
|
+
{ module: "PURCHASING", submodule, statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
456
|
+
{ module: "PURCHASING", submodule, statusName: "Completed", statusKey: "COMPLETE" },
|
|
457
|
+
{ module: "PURCHASING", submodule, statusName: "Rejected", statusKey: "REJECTED" },
|
|
458
|
+
{ module: "PURCHASING", submodule, statusName: "Processing", statusKey: "PROCESSING" },
|
|
459
|
+
{ module: "PURCHASING", submodule, statusName: "Archived", statusKey: "ARCHIVED" },
|
|
460
|
+
{ module: "PURCHASING", submodule, statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
461
|
+
{ module: "PURCHASING", submodule, statusName: "Deleted", statusKey: "DELETED" },
|
|
462
|
+
]),
|
|
463
|
+
// PURCHASING / STATEMENT
|
|
464
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Scanning", statusKey: "SCANNING" },
|
|
465
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "User Review", statusKey: "REVIEW" },
|
|
466
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Ready", statusKey: "READY" },
|
|
467
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Ready to Reconcile", statusKey: "READY_TO_RECONCILE" },
|
|
468
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Reconcile", statusKey: "RECONCILE" },
|
|
469
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Requested", statusKey: "REQUESTED" },
|
|
470
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Completed", statusKey: "COMPLETE" },
|
|
471
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Processing", statusKey: "PROCESSING" },
|
|
472
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
473
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
474
|
+
{ module: "PURCHASING", submodule: "STATEMENT", statusName: "Deleted", statusKey: "DELETED" },
|
|
475
|
+
// RELATIONSHIPS / CUSTOMER, EMPLOYEE, SUPPLIER
|
|
476
|
+
...["CUSTOMER", "EMPLOYEE", "SUPPLIER"].flatMap(submodule => [
|
|
477
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Draft", statusKey: "DRAFT" },
|
|
478
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Approval", statusKey: "APPROVAL" },
|
|
479
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Reject Review", statusKey: "REJECT" },
|
|
480
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
481
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Active", statusKey: "ACTIVE" },
|
|
482
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Rejected", statusKey: "REJECTED" },
|
|
483
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Inactive", statusKey: "INACTIVE" },
|
|
484
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Processing", statusKey: "PROCESSING" },
|
|
485
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Archived", statusKey: "ARCHIVED" },
|
|
486
|
+
{ module: "RELATIONSHIPS", submodule, statusName: "Deleted", statusKey: "DELETED" },
|
|
487
|
+
]),
|
|
488
|
+
// SALES / CREDIT, INVOICE, REMITTANCE (similar pattern)
|
|
489
|
+
...["CREDIT", "INVOICE", "REMITTANCE"].flatMap(submodule => [
|
|
490
|
+
{ module: "SALES", submodule, statusName: "Scanning", statusKey: "SCANNING" },
|
|
491
|
+
{ module: "SALES", submodule, statusName: "User Review", statusKey: "REVIEW" },
|
|
492
|
+
{ module: "SALES", submodule, statusName: "Ready", statusKey: "READY" },
|
|
493
|
+
{ module: "SALES", submodule, statusName: "Approval", statusKey: "APPROVAL" },
|
|
494
|
+
{ module: "SALES", submodule, statusName: "Reject Review", statusKey: "REJECT" },
|
|
495
|
+
{ module: "SALES", submodule, statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
496
|
+
{ module: "SALES", submodule, statusName: "Completed", statusKey: "COMPLETE" },
|
|
497
|
+
{ module: "SALES", submodule, statusName: "Rejected", statusKey: "REJECTED" },
|
|
498
|
+
{ module: "SALES", submodule, statusName: "Processing", statusKey: "PROCESSING" },
|
|
499
|
+
{ module: "SALES", submodule, statusName: "Archived", statusKey: "ARCHIVED" },
|
|
500
|
+
{ module: "SALES", submodule, statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
501
|
+
{ module: "SALES", submodule, statusName: "Deleted", statusKey: "DELETED" },
|
|
502
|
+
]),
|
|
503
|
+
// SALES / ORDER, QUOTE (with check statuses)
|
|
504
|
+
...["ORDER", "QUOTE"].flatMap(submodule => [
|
|
505
|
+
{ module: "SALES", submodule, statusName: "Scanning", statusKey: "SCANNING" },
|
|
506
|
+
{ module: "SALES", submodule, statusName: "User Review", statusKey: "REVIEW" },
|
|
507
|
+
{ module: "SALES", submodule, statusName: "Customer Check", statusKey: "CUSTOMER_CHECK" },
|
|
508
|
+
{ module: "SALES", submodule, statusName: "Item Check", statusKey: "ITEM_CHECK" },
|
|
509
|
+
{ module: "SALES", submodule, statusName: "Price Check", statusKey: "PRICE_CHECK" },
|
|
510
|
+
{ module: "SALES", submodule, statusName: "Stock Check", statusKey: "STOCK_CHECK" },
|
|
511
|
+
{ module: "SALES", submodule, statusName: "Ready", statusKey: "READY" },
|
|
512
|
+
{ module: "SALES", submodule, statusName: "Approval", statusKey: "APPROVAL" },
|
|
513
|
+
{ module: "SALES", submodule, statusName: "Reject Review", statusKey: "REJECT" },
|
|
514
|
+
{ module: "SALES", submodule, statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
515
|
+
{ module: "SALES", submodule, statusName: "Completed", statusKey: "COMPLETE" },
|
|
516
|
+
{ module: "SALES", submodule, statusName: "Rejected", statusKey: "REJECTED" },
|
|
517
|
+
{ module: "SALES", submodule, statusName: "Processing", statusKey: "PROCESSING" },
|
|
518
|
+
{ module: "SALES", submodule, statusName: "Archived", statusKey: "ARCHIVED" },
|
|
519
|
+
{ module: "SALES", submodule, statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
520
|
+
{ module: "SALES", submodule, statusName: "Deleted", statusKey: "DELETED" },
|
|
521
|
+
]),
|
|
522
|
+
// SALES / RETURN
|
|
523
|
+
{ module: "SALES", submodule: "RETURN", statusName: "User Review", statusKey: "REVIEW" },
|
|
524
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Ready", statusKey: "READY" },
|
|
525
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Approval", statusKey: "APPROVAL" },
|
|
526
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Reject Review", statusKey: "REJECT" },
|
|
527
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Unable to Process", statusKey: "UNABLE" },
|
|
528
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Completed", statusKey: "COMPLETE" },
|
|
529
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Rejected", statusKey: "REJECTED" },
|
|
530
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Processing", statusKey: "PROCESSING" },
|
|
531
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Archived", statusKey: "ARCHIVED" },
|
|
532
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Duplicate", statusKey: "DUPLICATE" },
|
|
533
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Unsupported", statusKey: "UNSUPPORTED" },
|
|
534
|
+
{ module: "SALES", submodule: "RETURN", statusName: "Deleted", statusKey: "DELETED" },
|
|
535
|
+
];
|
|
536
|
+
// ============================================================================
|
|
537
|
+
// Validation Functions
|
|
538
|
+
// ============================================================================
|
|
539
|
+
/**
|
|
540
|
+
* Check if a model is valid
|
|
541
|
+
*/
|
|
542
|
+
export function isValidZudelloModel(model) {
|
|
543
|
+
return ZUDELLO_MODELS.includes(model);
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Check if a module is valid
|
|
547
|
+
*/
|
|
548
|
+
export function isValidZudelloModule(module) {
|
|
549
|
+
return ZUDELLO_MODULES.includes(module);
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Check if a submodule is valid
|
|
553
|
+
*/
|
|
554
|
+
export function isValidZudelloSubmodule(submodule) {
|
|
555
|
+
return ZUDELLO_SUBMODULES.includes(submodule);
|
|
556
|
+
}
|
|
557
|
+
/**
|
|
558
|
+
* Check if a model/module/submodule combination is valid
|
|
559
|
+
*/
|
|
560
|
+
export function isValidZudelloCombination(model, module, submodule) {
|
|
561
|
+
// If only model is provided, check if it's a valid model
|
|
562
|
+
if (!module && !submodule) {
|
|
563
|
+
return isValidZudelloModel(model);
|
|
564
|
+
}
|
|
565
|
+
// If module/submodule are provided, check the exact combination
|
|
566
|
+
return ZUDELLO_MODEL_COMBINATIONS.some(combo => {
|
|
567
|
+
const modelMatch = combo.model === model;
|
|
568
|
+
const moduleMatch = !module || combo.module === module;
|
|
569
|
+
const submoduleMatch = !submodule || combo.submodule === submodule;
|
|
570
|
+
return modelMatch && moduleMatch && submoduleMatch;
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Get valid modules for a given model
|
|
575
|
+
*/
|
|
576
|
+
export function getValidModulesForModel(model) {
|
|
577
|
+
return ZUDELLO_MODEL_COMBINATIONS
|
|
578
|
+
.filter(combo => combo.model === model)
|
|
579
|
+
.map(combo => combo.module);
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Get valid submodules for a given model and module
|
|
583
|
+
*/
|
|
584
|
+
export function getValidSubmodulesForModel(model, module) {
|
|
585
|
+
return ZUDELLO_MODEL_COMBINATIONS
|
|
586
|
+
.filter(combo => {
|
|
587
|
+
const modelMatch = combo.model === model;
|
|
588
|
+
const moduleMatch = !module || combo.module === module;
|
|
589
|
+
return modelMatch && moduleMatch;
|
|
590
|
+
})
|
|
591
|
+
.map(combo => combo.submodule);
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Get model combinations by functional area
|
|
595
|
+
*/
|
|
596
|
+
export function getModelsByModule(module) {
|
|
597
|
+
return ZUDELLO_MODEL_COMBINATIONS
|
|
598
|
+
.filter(combo => combo.module === module)
|
|
599
|
+
.map(combo => combo.model);
|
|
600
|
+
}
|
|
601
|
+
// ============================================================================
|
|
602
|
+
// Status Validation and Lookup Functions
|
|
603
|
+
// ============================================================================
|
|
604
|
+
/**
|
|
605
|
+
* Check if a status key is valid (exists in any context)
|
|
606
|
+
*/
|
|
607
|
+
export function isValidStatusKey(statusKey) {
|
|
608
|
+
return ZUDELLO_STATUS_KEYS.includes(statusKey);
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Check if a status key is valid for a specific module/submodule context
|
|
612
|
+
*/
|
|
613
|
+
export function isValidStatusForContext(module, submodule, statusKey) {
|
|
614
|
+
return ZUDELLO_STATUS_CONFIGURATIONS.some(config => config.module === module && config.submodule === submodule && config.statusKey === statusKey);
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* Get default statuses for a module/submodule context.
|
|
618
|
+
* IMPORTANT: These are defaults. Use zudelloListConfigs with configType 'document_status' for actual configs.
|
|
619
|
+
*/
|
|
620
|
+
export function getDefaultStatusesForContext(module, submodule) {
|
|
621
|
+
return ZUDELLO_STATUS_CONFIGURATIONS.filter(config => config.module === module && config.submodule === submodule);
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Convert a user-friendly status name to its API key for a given context.
|
|
625
|
+
* Returns undefined if not found.
|
|
626
|
+
*/
|
|
627
|
+
export function getStatusKeyByName(module, submodule, statusName) {
|
|
628
|
+
const config = ZUDELLO_STATUS_CONFIGURATIONS.find(c => c.module === module && c.submodule === submodule &&
|
|
629
|
+
c.statusName.toLowerCase() === statusName.toLowerCase());
|
|
630
|
+
return config?.statusKey;
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Convert an API status key to its user-friendly name for a given context.
|
|
634
|
+
* Returns undefined if not found.
|
|
635
|
+
*/
|
|
636
|
+
export function getStatusNameByKey(module, submodule, statusKey) {
|
|
637
|
+
const config = ZUDELLO_STATUS_CONFIGURATIONS.find(c => c.module === module && c.submodule === submodule && c.statusKey === statusKey);
|
|
638
|
+
return config?.statusName;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Get common statuses that appear in most contexts.
|
|
642
|
+
* Useful for general filtering when context is not known.
|
|
643
|
+
*/
|
|
644
|
+
export function getCommonStatuses() {
|
|
645
|
+
return [
|
|
646
|
+
{ name: "Draft", key: "DRAFT" },
|
|
647
|
+
{ name: "User Review", key: "REVIEW" },
|
|
648
|
+
{ name: "Approval", key: "APPROVAL" },
|
|
649
|
+
{ name: "Ready", key: "READY" },
|
|
650
|
+
{ name: "Complete/Completed", key: "COMPLETE" },
|
|
651
|
+
{ name: "Active", key: "ACTIVE" },
|
|
652
|
+
{ name: "Inactive", key: "INACTIVE" },
|
|
653
|
+
{ name: "Rejected", key: "REJECTED" },
|
|
654
|
+
{ name: "Processing", key: "PROCESSING" },
|
|
655
|
+
{ name: "Archived", key: "ARCHIVED" },
|
|
656
|
+
{ name: "Deleted", key: "DELETED" },
|
|
657
|
+
];
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Get a description of status usage for tool documentation.
|
|
661
|
+
*/
|
|
662
|
+
export function getStatusUsageGuide() {
|
|
663
|
+
return `Common status keys: DRAFT, REVIEW (User Review), APPROVAL, READY, COMPLETE, ACTIVE, INACTIVE, REJECTED, PROCESSING, ARCHIVED, DELETED.
|
|
664
|
+
Module-specific statuses:
|
|
665
|
+
- PURCHASING/INVOICE: NEW_VENDOR, PO_MISSING, PO_VARIANCE, GR_PENDING
|
|
666
|
+
- PURCHASING/ORDER: PENDING, PLACED, RECEIVED, PARTIALLY_RECEIVED, PARTIALLY_INVOICED, CLOSED
|
|
667
|
+
- SALES/ORDER,QUOTE: CUSTOMER_CHECK, ITEM_CHECK, PRICE_CHECK, STOCK_CHECK
|
|
668
|
+
- PURCHASING/STATEMENT: READY_TO_RECONCILE, RECONCILE, REQUESTED
|
|
669
|
+
IMPORTANT: Statuses are user-configurable. If these don't work, use zudelloListConfigs with configType 'document_status' and module/submodule filters to get actual configured statuses.`;
|
|
670
|
+
}
|
|
671
|
+
// ============================================================================
|
|
672
|
+
// Zod Validation Schemas
|
|
673
|
+
// ============================================================================
|
|
674
|
+
/**
|
|
675
|
+
* Zod schema for Zudello models
|
|
676
|
+
*/
|
|
677
|
+
export const zudelloModelSchema = z.enum(ZUDELLO_MODELS).describe("Valid Zudello model. Common models: Transaction (invoices, orders, receipts), Item (products, inventory), " +
|
|
678
|
+
"Supplier/Customer/Employee (business entities), Budget/Contract (financial documents), " +
|
|
679
|
+
"Account/Department/Location (dimensional data). Use zudelloListModels to discover all available models.");
|
|
680
|
+
/**
|
|
681
|
+
* Zod schema for Zudello modules
|
|
682
|
+
*/
|
|
683
|
+
export const zudelloModuleSchema = z.enum(ZUDELLO_MODULES).describe("Zudello module. Functional areas: BUDGETS (budget planning), CONTRACTS (contract management), " +
|
|
684
|
+
"DIMENSIONS (reference data), EXPENSES (expense tracking), INVENTORY (stock management), " +
|
|
685
|
+
"PURCHASING (procurement), RELATIONSHIPS (entities), SALES (revenue tracking).");
|
|
686
|
+
/**
|
|
687
|
+
* Zod schema for Zudello submodules
|
|
688
|
+
*/
|
|
689
|
+
export const zudelloSubmoduleSchema = z.enum(ZUDELLO_SUBMODULES).describe("Zudello submodule. Specific contexts within modules, e.g., INVOICE/ORDER/QUOTE for transactions, " +
|
|
690
|
+
"CATALOGUE for items, CUSTOMER/SUPPLIER/EMPLOYEE for relationships.");
|
|
691
|
+
/**
|
|
692
|
+
* Zod schema for Zudello status keys.
|
|
693
|
+
* IMPORTANT: Statuses are user-configurable. These are default values.
|
|
694
|
+
* Use zudelloListConfigs with configType 'document_status' for actual configs.
|
|
695
|
+
*/
|
|
696
|
+
export const zudelloStatusKeySchema = z.enum(ZUDELLO_STATUS_KEYS).describe("Status key for filtering documents. Common values: DRAFT, REVIEW, APPROVAL, READY, COMPLETE, ACTIVE, INACTIVE, REJECTED, PROCESSING, ARCHIVED, DELETED. " +
|
|
697
|
+
"Module-specific: NEW_VENDOR, PO_MISSING, GR_PENDING (PURCHASING/INVOICE), PENDING, PLACED, RECEIVED (PURCHASING/ORDER). " +
|
|
698
|
+
"IMPORTANT: Statuses are user-configurable. Use zudelloListConfigs with configType 'document_status' if defaults don't match.");
|
|
699
|
+
/**
|
|
700
|
+
* Enhanced model schema with validation for combinations
|
|
701
|
+
*/
|
|
702
|
+
export function createValidatedModelSchema(moduleParam, submoduleParam) {
|
|
703
|
+
return z.string().refine((model) => {
|
|
704
|
+
if (!isValidZudelloModel(model)) {
|
|
705
|
+
return false;
|
|
706
|
+
}
|
|
707
|
+
if (moduleParam || submoduleParam) {
|
|
708
|
+
return isValidZudelloCombination(model, moduleParam, submoduleParam);
|
|
709
|
+
}
|
|
710
|
+
return true;
|
|
711
|
+
}, {
|
|
712
|
+
message: "Invalid model or model/module/submodule combination. Use zudelloListModels to see valid options.",
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
// ============================================================================
|
|
716
|
+
// Utility Functions and Helpers
|
|
717
|
+
// ============================================================================
|
|
718
|
+
/**
|
|
719
|
+
* Get human-readable description for a model
|
|
720
|
+
*/
|
|
721
|
+
export function getModelDescription(model) {
|
|
722
|
+
const descriptions = {
|
|
723
|
+
Budget: "Financial budget planning and tracking",
|
|
724
|
+
Contract: "Contract management and agreements",
|
|
725
|
+
Account: "Chart of accounts and accounting structure",
|
|
726
|
+
AccountCategory: "Grouping categories for accounts",
|
|
727
|
+
AccountGroup: "Account group classifications",
|
|
728
|
+
AccountingPeriod: "Financial reporting periods",
|
|
729
|
+
AmortizationSchedule: "Asset depreciation schedules",
|
|
730
|
+
Batch: "Inventory batches and lots",
|
|
731
|
+
Bin: "Storage location bins",
|
|
732
|
+
ContractCategory: "Contract classification categories",
|
|
733
|
+
ContractGroup: "Contract group classifications",
|
|
734
|
+
CostCentre: "Cost center definitions",
|
|
735
|
+
CostType: "Types of costs and expenses",
|
|
736
|
+
Currency: "Currency definitions and exchange rates",
|
|
737
|
+
CustomerCategory: "Customer classification categories",
|
|
738
|
+
CustomerGroup: "Customer group classifications",
|
|
739
|
+
Department: "Organizational departments",
|
|
740
|
+
ExpenseCategory: "Expense classification categories",
|
|
741
|
+
FixedAsset: "Fixed asset management",
|
|
742
|
+
ItemCategory: "Product/item classification categories",
|
|
743
|
+
ItemGroup: "Product/item group classifications",
|
|
744
|
+
Location: "Physical locations and sites",
|
|
745
|
+
MileageRate: "Mileage reimbursement rates",
|
|
746
|
+
PaymentMethod: "Payment method definitions",
|
|
747
|
+
PaymentTerm: "Payment terms and conditions",
|
|
748
|
+
Project: "Project management and tracking",
|
|
749
|
+
ProjectGroup: "Project group classifications",
|
|
750
|
+
ProjectTask: "Individual project tasks",
|
|
751
|
+
ProjectType: "Types of projects",
|
|
752
|
+
Subsidiary: "Company subsidiaries",
|
|
753
|
+
SupplierCategory: "Supplier classification categories",
|
|
754
|
+
SupplierGroup: "Supplier group classifications",
|
|
755
|
+
TaxRate: "Tax rate definitions",
|
|
756
|
+
TaxSolution: "Tax calculation solutions",
|
|
757
|
+
TeamAddress: "Team and address information",
|
|
758
|
+
UnitOfMeasure: "Measurement units (kg, m, etc.)",
|
|
759
|
+
Warehouse: "Warehouse and storage facilities",
|
|
760
|
+
Zone: "Geographic or functional zones",
|
|
761
|
+
Transaction: "Business transactions (invoices, orders, receipts, etc.)",
|
|
762
|
+
Item: "Products and inventory items",
|
|
763
|
+
Customer: "Customer relationship management",
|
|
764
|
+
Employee: "Employee information and management",
|
|
765
|
+
Supplier: "Supplier relationship management",
|
|
766
|
+
};
|
|
767
|
+
return descriptions[model] || "Zudello business entity";
|
|
768
|
+
}
|
|
769
|
+
/**
|
|
770
|
+
* Get all valid combinations for a specific model
|
|
771
|
+
*/
|
|
772
|
+
export function getCombinationsForModel(model) {
|
|
773
|
+
return ZUDELLO_MODEL_COMBINATIONS.filter(combo => combo.model === model);
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Format model combinations as human-readable strings
|
|
777
|
+
*/
|
|
778
|
+
export function formatCombination(combination) {
|
|
779
|
+
return `${combination.model} (${combination.module}/${combination.submodule})`;
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Get examples for tool descriptions
|
|
783
|
+
*/
|
|
784
|
+
export function getModelExamples() {
|
|
785
|
+
const examples = [
|
|
786
|
+
"Transaction (invoices, orders, receipts)",
|
|
787
|
+
"Item (products, inventory)",
|
|
788
|
+
"Customer/Supplier/Employee (business entities)",
|
|
789
|
+
"Budget/Contract (financial documents)",
|
|
790
|
+
"Account/Department/Location (dimensional data)"
|
|
791
|
+
];
|
|
792
|
+
return examples.join(", ");
|
|
793
|
+
}
|
|
794
|
+
// ============================================================================
|
|
795
|
+
// Sentence Automation Constants
|
|
796
|
+
// ============================================================================
|
|
797
|
+
/**
|
|
798
|
+
* Valid trigger event types for sentence automation.
|
|
799
|
+
* These determine when a sentence rule is evaluated.
|
|
800
|
+
*/
|
|
801
|
+
export const ZUDELLO_TRIGGER_EVENTS = [
|
|
802
|
+
"submit",
|
|
803
|
+
"create",
|
|
804
|
+
"delete",
|
|
805
|
+
"update",
|
|
806
|
+
"converted",
|
|
807
|
+
"extract",
|
|
808
|
+
"approval",
|
|
809
|
+
"related_resource_updated",
|
|
810
|
+
"button",
|
|
811
|
+
];
|
|
812
|
+
/**
|
|
813
|
+
* Descriptions for trigger event types
|
|
814
|
+
*/
|
|
815
|
+
export const ZUDELLO_TRIGGER_EVENT_DESCRIPTIONS = {
|
|
816
|
+
submit: "When a document is submitted for processing",
|
|
817
|
+
create: "When a new document is created",
|
|
818
|
+
delete: "When a document is deleted",
|
|
819
|
+
update: "When a document is updated/modified",
|
|
820
|
+
converted: "When a document is converted to another type",
|
|
821
|
+
extract: "When data is extracted from a document (e.g., OCR processing)",
|
|
822
|
+
approval: "When an approval action occurs (approved/rejected)",
|
|
823
|
+
related_resource_updated: "When a related resource is updated",
|
|
824
|
+
button: "When a custom button is clicked",
|
|
825
|
+
};
|
|
826
|
+
/**
|
|
827
|
+
* Valid action codes for sentence automation.
|
|
828
|
+
* Use zudelloListSentenceResources with resourceType 'ACTION_TEMPLATE' to get full payload structure.
|
|
829
|
+
*/
|
|
830
|
+
export const ZUDELLO_ACTION_CODES = [
|
|
831
|
+
"ASSIGN",
|
|
832
|
+
"UNASSIGN",
|
|
833
|
+
"UNASSIGN_ALL",
|
|
834
|
+
"COMPLETE",
|
|
835
|
+
"SET_STATUS",
|
|
836
|
+
"SET_FIELD",
|
|
837
|
+
"GET_APPROVAL",
|
|
838
|
+
"APPROVAL_DOA",
|
|
839
|
+
"APPROVAL_MANAGER",
|
|
840
|
+
"APPROVAL_SET_LIMIT",
|
|
841
|
+
"MARK_AS_APPROVED",
|
|
842
|
+
"RESTART_FLOW",
|
|
843
|
+
"CANCEL_PROCESSING",
|
|
844
|
+
"CONSOLIDATE_LINES",
|
|
845
|
+
"REMOVE_MATCHED_LINES",
|
|
846
|
+
"RUN_INTEGRATION_API_TRIGGER",
|
|
847
|
+
"START_WORKFLOW",
|
|
848
|
+
"POST_NOTICE",
|
|
849
|
+
"CONVERT",
|
|
850
|
+
"SEND_EMAIL",
|
|
851
|
+
"GENERATE_PDF",
|
|
852
|
+
"COMPUTE_FIELD",
|
|
853
|
+
];
|
|
854
|
+
/**
|
|
855
|
+
* Descriptions for action codes
|
|
856
|
+
*/
|
|
857
|
+
export const ZUDELLO_ACTION_CODE_DESCRIPTIONS = {
|
|
858
|
+
ASSIGN: "Assign users to a document",
|
|
859
|
+
UNASSIGN: "Remove specific users from assignment",
|
|
860
|
+
UNASSIGN_ALL: "Remove all assigned users",
|
|
861
|
+
COMPLETE: "Complete document processing",
|
|
862
|
+
SET_STATUS: "Set the document status",
|
|
863
|
+
SET_FIELD: "Set a specific field value",
|
|
864
|
+
GET_APPROVAL: "Request approval from specified users",
|
|
865
|
+
APPROVAL_DOA: "Request approval based on Delegation of Authority",
|
|
866
|
+
APPROVAL_MANAGER: "Request approval from management tree",
|
|
867
|
+
APPROVAL_SET_LIMIT: "Set approval limit from dataset",
|
|
868
|
+
MARK_AS_APPROVED: "Mark document as approved",
|
|
869
|
+
RESTART_FLOW: "Restart the approval flow",
|
|
870
|
+
CANCEL_PROCESSING: "Stop/cancel document processing",
|
|
871
|
+
CONSOLIDATE_LINES: "Consolidate document line items",
|
|
872
|
+
REMOVE_MATCHED_LINES: "Remove matched line items",
|
|
873
|
+
RUN_INTEGRATION_API_TRIGGER: "Run an integration API trigger",
|
|
874
|
+
START_WORKFLOW: "Start a workflow",
|
|
875
|
+
POST_NOTICE: "Post a notice/notification",
|
|
876
|
+
CONVERT: "Convert document to another type",
|
|
877
|
+
SEND_EMAIL: "Send an email notification",
|
|
878
|
+
GENERATE_PDF: "Generate a PDF document",
|
|
879
|
+
COMPUTE_FIELD: "Compute/calculate field values",
|
|
880
|
+
};
|
|
881
|
+
/**
|
|
882
|
+
* Valid condition codes for sentence automation.
|
|
883
|
+
* Use zudelloListSentenceResources with resourceType 'CONDITION_TEMPLATE' to get full payload structure.
|
|
884
|
+
*/
|
|
885
|
+
export const ZUDELLO_CONDITION_CODES = [
|
|
886
|
+
"ALLOCATION_PO",
|
|
887
|
+
"ALLOCATION_RECEIPT",
|
|
888
|
+
"VARIANCE_AMOUNT",
|
|
889
|
+
"VARIANCE_PERC",
|
|
890
|
+
"APPROVED_TRUE",
|
|
891
|
+
"APPROVED_FALSE",
|
|
892
|
+
];
|
|
893
|
+
/**
|
|
894
|
+
* Descriptions for condition codes
|
|
895
|
+
*/
|
|
896
|
+
export const ZUDELLO_CONDITION_CODE_DESCRIPTIONS = {
|
|
897
|
+
ALLOCATION_PO: "Check allocation status against Purchase Order",
|
|
898
|
+
ALLOCATION_RECEIPT: "Check allocation status against Receipt",
|
|
899
|
+
VARIANCE_AMOUNT: "Check variance amount (e.g., PO vs Invoice)",
|
|
900
|
+
VARIANCE_PERC: "Check variance percentage",
|
|
901
|
+
APPROVED_TRUE: "Document has been approved",
|
|
902
|
+
APPROVED_FALSE: "Document has not been approved",
|
|
903
|
+
};
|
|
904
|
+
/**
|
|
905
|
+
* Sentence resource types for the listSentenceResources API
|
|
906
|
+
*/
|
|
907
|
+
export const ZUDELLO_SENTENCE_RESOURCE_TYPES = [
|
|
908
|
+
"ACTION_TEMPLATE",
|
|
909
|
+
"CONDITION_TEMPLATE",
|
|
910
|
+
];
|
|
911
|
+
// ============================================================================
|
|
912
|
+
// Sentence Validation and Helper Functions
|
|
913
|
+
// ============================================================================
|
|
914
|
+
/**
|
|
915
|
+
* Check if a trigger event is valid
|
|
916
|
+
*/
|
|
917
|
+
export function isValidTriggerEvent(event) {
|
|
918
|
+
return ZUDELLO_TRIGGER_EVENTS.includes(event);
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Check if an action code is valid
|
|
922
|
+
*/
|
|
923
|
+
export function isValidActionCode(code) {
|
|
924
|
+
return ZUDELLO_ACTION_CODES.includes(code);
|
|
925
|
+
}
|
|
926
|
+
/**
|
|
927
|
+
* Check if a condition code is valid
|
|
928
|
+
*/
|
|
929
|
+
export function isValidConditionCode(code) {
|
|
930
|
+
return ZUDELLO_CONDITION_CODES.includes(code);
|
|
931
|
+
}
|
|
932
|
+
/**
|
|
933
|
+
* Get description for a trigger event
|
|
934
|
+
*/
|
|
935
|
+
export function getTriggerEventDescription(event) {
|
|
936
|
+
return ZUDELLO_TRIGGER_EVENT_DESCRIPTIONS[event];
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Get description for an action code
|
|
940
|
+
*/
|
|
941
|
+
export function getActionCodeDescription(code) {
|
|
942
|
+
return ZUDELLO_ACTION_CODE_DESCRIPTIONS[code];
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Get description for a condition code
|
|
946
|
+
*/
|
|
947
|
+
export function getConditionCodeDescription(code) {
|
|
948
|
+
return ZUDELLO_CONDITION_CODE_DESCRIPTIONS[code];
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Get a usage guide for sentence automation.
|
|
952
|
+
* This can be referenced by tools for documentation.
|
|
953
|
+
*/
|
|
954
|
+
export function getSentenceUsageGuide() {
|
|
955
|
+
return `Sentence Automation Guide:
|
|
956
|
+
|
|
957
|
+
Sentences are automation rules evaluated top-to-bottom when triggered.
|
|
958
|
+
|
|
959
|
+
TRIGGER EVENTS (when the rule fires):
|
|
960
|
+
- submit: Document submitted for processing
|
|
961
|
+
- create: New document created
|
|
962
|
+
- update: Document modified
|
|
963
|
+
- extract: Data extracted (OCR)
|
|
964
|
+
- approval: Approval action occurred
|
|
965
|
+
- converted: Document converted
|
|
966
|
+
- button: Custom button clicked
|
|
967
|
+
- related_resource_updated: Related resource changed
|
|
968
|
+
- delete: Document deleted
|
|
969
|
+
|
|
970
|
+
COMMON ACTIONS:
|
|
971
|
+
- ASSIGN/UNASSIGN: Manage document assignees
|
|
972
|
+
- SET_STATUS: Change document status
|
|
973
|
+
- SET_FIELD: Set field values
|
|
974
|
+
- COMPLETE: Complete processing
|
|
975
|
+
- GET_APPROVAL/APPROVAL_DOA/APPROVAL_MANAGER: Request approvals
|
|
976
|
+
- SEND_EMAIL: Send notifications
|
|
977
|
+
- RUN_INTEGRATION_API_TRIGGER: Execute integrations
|
|
978
|
+
- START_WORKFLOW: Begin workflows
|
|
979
|
+
|
|
980
|
+
CONDITIONS (optional filters):
|
|
981
|
+
- VARIANCE_AMOUNT/VARIANCE_PERC: Check variances
|
|
982
|
+
- APPROVED_TRUE/APPROVED_FALSE: Check approval status
|
|
983
|
+
- ALLOCATION_PO/ALLOCATION_RECEIPT: Check allocations
|
|
984
|
+
|
|
985
|
+
IMPORTANT:
|
|
986
|
+
1. Use listSentenceResources to get full action/condition payload structures
|
|
987
|
+
2. Sentence order matters - use updateSentencesOrder after creating
|
|
988
|
+
3. Include ALL module sentences when reordering, not just submodule`;
|
|
989
|
+
}
|
|
990
|
+
// ============================================================================
|
|
991
|
+
// Sentence Zod Schemas
|
|
992
|
+
// ============================================================================
|
|
993
|
+
/**
|
|
994
|
+
* Zod schema for trigger events
|
|
995
|
+
*/
|
|
996
|
+
export const zudelloTriggerEventSchema = z.enum(ZUDELLO_TRIGGER_EVENTS).describe("Trigger event type. Common: submit (document submitted), extract (OCR complete), approval (approval action), " +
|
|
997
|
+
"update (document modified), create (new document). Others: converted, button, related_resource_updated, delete.");
|
|
998
|
+
/**
|
|
999
|
+
* Zod schema for action codes
|
|
1000
|
+
*/
|
|
1001
|
+
export const zudelloActionCodeSchema = z.enum(ZUDELLO_ACTION_CODES).describe("Action code. Common: ASSIGN (assign users), COMPLETE (finish processing), SET_STATUS, SET_FIELD, " +
|
|
1002
|
+
"GET_APPROVAL/APPROVAL_DOA/APPROVAL_MANAGER (request approvals), SEND_EMAIL, START_WORKFLOW. " +
|
|
1003
|
+
"Use listSentenceResources with resourceType 'ACTION_TEMPLATE' for full payload structure.");
|
|
1004
|
+
/**
|
|
1005
|
+
* Zod schema for condition codes
|
|
1006
|
+
*/
|
|
1007
|
+
export const zudelloConditionCodeSchema = z.enum(ZUDELLO_CONDITION_CODES).describe("Condition code. VARIANCE_AMOUNT/VARIANCE_PERC (check variances), APPROVED_TRUE/APPROVED_FALSE (approval status), " +
|
|
1008
|
+
"ALLOCATION_PO/ALLOCATION_RECEIPT (allocation status). Use listSentenceResources with resourceType 'CONDITION_TEMPLATE' for full payload.");
|
|
1009
|
+
/**
|
|
1010
|
+
* Zod schema for sentence resource types
|
|
1011
|
+
*/
|
|
1012
|
+
export const zudelloSentenceResourceTypeSchema = z.enum(ZUDELLO_SENTENCE_RESOURCE_TYPES).describe("Sentence resource type. ACTION_TEMPLATE: available actions for sentences. CONDITION_TEMPLATE: available conditions for sentences.");
|
|
1013
|
+
/**
|
|
1014
|
+
* Common action templates with complete payload structures
|
|
1015
|
+
* Extracted from sentence_actions.md
|
|
1016
|
+
*/
|
|
1017
|
+
export const ZUDELLO_ACTION_TEMPLATES = {
|
|
1018
|
+
ASSIGN: {
|
|
1019
|
+
code: "ASSIGN",
|
|
1020
|
+
name: "assign",
|
|
1021
|
+
operator: {
|
|
1022
|
+
value: "add_to_array",
|
|
1023
|
+
default: "add_to_array",
|
|
1024
|
+
use: "uuid"
|
|
1025
|
+
},
|
|
1026
|
+
field: {
|
|
1027
|
+
value: "assignees",
|
|
1028
|
+
meta: {
|
|
1029
|
+
path: "assignees",
|
|
1030
|
+
type: "Relation",
|
|
1031
|
+
label: "Assignees",
|
|
1032
|
+
sentence_path: "assignees",
|
|
1033
|
+
display_format: "{first_name} {last_name}",
|
|
1034
|
+
options: {
|
|
1035
|
+
use: "uuid",
|
|
1036
|
+
model: "AssignedUser",
|
|
1037
|
+
source: "team-data",
|
|
1038
|
+
relation_type: "One-to-Many"
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
},
|
|
1042
|
+
values: [],
|
|
1043
|
+
template: "assign {value}"
|
|
1044
|
+
},
|
|
1045
|
+
SET_STATUS: {
|
|
1046
|
+
code: "SET_STATUS",
|
|
1047
|
+
name: "set status",
|
|
1048
|
+
operator: {
|
|
1049
|
+
value: "set_value",
|
|
1050
|
+
default: "set_value",
|
|
1051
|
+
use: "key"
|
|
1052
|
+
},
|
|
1053
|
+
field: {
|
|
1054
|
+
value: "status",
|
|
1055
|
+
meta: {
|
|
1056
|
+
path: "status",
|
|
1057
|
+
type: "Relation",
|
|
1058
|
+
label: "Status",
|
|
1059
|
+
sentence_path: "status",
|
|
1060
|
+
display_format: "name",
|
|
1061
|
+
options: {
|
|
1062
|
+
use: "key",
|
|
1063
|
+
model: "Status",
|
|
1064
|
+
source: "general-store"
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
},
|
|
1068
|
+
values: [],
|
|
1069
|
+
template: "set status to {value}"
|
|
1070
|
+
},
|
|
1071
|
+
GET_APPROVAL: {
|
|
1072
|
+
code: "GET_APPROVAL",
|
|
1073
|
+
name: "get approval",
|
|
1074
|
+
operator: {
|
|
1075
|
+
value: "approve_document",
|
|
1076
|
+
default: "approve_document"
|
|
1077
|
+
},
|
|
1078
|
+
values: [],
|
|
1079
|
+
template: "get approval {value}"
|
|
1080
|
+
},
|
|
1081
|
+
APPROVAL_DOA: {
|
|
1082
|
+
code: "APPROVAL_DOA",
|
|
1083
|
+
name: "get approval (DoA)",
|
|
1084
|
+
operator: {
|
|
1085
|
+
value: "approve_document_doa",
|
|
1086
|
+
default: "approve_document_doa"
|
|
1087
|
+
},
|
|
1088
|
+
values: [],
|
|
1089
|
+
template: "get approval {value}"
|
|
1090
|
+
},
|
|
1091
|
+
APPROVAL_MANAGER: {
|
|
1092
|
+
code: "APPROVAL_MANAGER",
|
|
1093
|
+
name: "get approval (Management Tree)",
|
|
1094
|
+
operator: {
|
|
1095
|
+
value: "approve_document_manager",
|
|
1096
|
+
default: "approve_document_manager"
|
|
1097
|
+
},
|
|
1098
|
+
values: [],
|
|
1099
|
+
template: "get approval {value}"
|
|
1100
|
+
},
|
|
1101
|
+
MARK_AS_APPROVED: {
|
|
1102
|
+
code: "MARK_AS_APPROVED",
|
|
1103
|
+
name: "mark as approved",
|
|
1104
|
+
operator: {
|
|
1105
|
+
value: "set_value",
|
|
1106
|
+
default: "set_value"
|
|
1107
|
+
},
|
|
1108
|
+
field: {
|
|
1109
|
+
value: "is_approved",
|
|
1110
|
+
meta: {
|
|
1111
|
+
path: "is_approved",
|
|
1112
|
+
type: "Boolean",
|
|
1113
|
+
label: "Is Approved",
|
|
1114
|
+
sentence_path: "is_approved"
|
|
1115
|
+
}
|
|
1116
|
+
},
|
|
1117
|
+
values: [{
|
|
1118
|
+
value: true,
|
|
1119
|
+
source: "internal",
|
|
1120
|
+
default: true
|
|
1121
|
+
}],
|
|
1122
|
+
template: "mark as approved"
|
|
1123
|
+
},
|
|
1124
|
+
CANCEL_PROCESSING: {
|
|
1125
|
+
code: "CANCEL_PROCESSING",
|
|
1126
|
+
name: "stop processing",
|
|
1127
|
+
operator: {
|
|
1128
|
+
value: "cancel",
|
|
1129
|
+
default: "cancel"
|
|
1130
|
+
},
|
|
1131
|
+
values: [],
|
|
1132
|
+
template: "stop processing"
|
|
1133
|
+
},
|
|
1134
|
+
COMPLETE: {
|
|
1135
|
+
code: "COMPLETE",
|
|
1136
|
+
name: "complete processing",
|
|
1137
|
+
operator: {
|
|
1138
|
+
value: "complete_document",
|
|
1139
|
+
default: "complete_document"
|
|
1140
|
+
},
|
|
1141
|
+
values: [],
|
|
1142
|
+
template: "complete processing"
|
|
1143
|
+
},
|
|
1144
|
+
SET_FIELD: {
|
|
1145
|
+
code: "SET_FIELD",
|
|
1146
|
+
name: "set field",
|
|
1147
|
+
operator: {
|
|
1148
|
+
value: "set_value",
|
|
1149
|
+
default: "set_value"
|
|
1150
|
+
},
|
|
1151
|
+
values: [],
|
|
1152
|
+
template: "set {field} to {value}"
|
|
1153
|
+
},
|
|
1154
|
+
SEND_EMAIL: {
|
|
1155
|
+
code: "SEND_EMAIL",
|
|
1156
|
+
name: "send email",
|
|
1157
|
+
operator: {
|
|
1158
|
+
value: "send_email",
|
|
1159
|
+
default: "send_email"
|
|
1160
|
+
},
|
|
1161
|
+
values: [],
|
|
1162
|
+
template: "send email {value}"
|
|
1163
|
+
},
|
|
1164
|
+
RUN_INTEGRATION_API_TRIGGER: {
|
|
1165
|
+
code: "RUN_INTEGRATION_API_TRIGGER",
|
|
1166
|
+
name: "run trigger",
|
|
1167
|
+
operator: {
|
|
1168
|
+
value: "run_integration_api_trigger",
|
|
1169
|
+
default: "run_integration_api_trigger"
|
|
1170
|
+
},
|
|
1171
|
+
values: [],
|
|
1172
|
+
template: "run {value}"
|
|
1173
|
+
},
|
|
1174
|
+
START_WORKFLOW: {
|
|
1175
|
+
code: "START_WORKFLOW",
|
|
1176
|
+
name: "start workflow",
|
|
1177
|
+
operator: {
|
|
1178
|
+
value: "run_workflow",
|
|
1179
|
+
default: "run_workflow"
|
|
1180
|
+
},
|
|
1181
|
+
values: [],
|
|
1182
|
+
template: "start workflow {value}"
|
|
1183
|
+
}
|
|
1184
|
+
};
|
|
1185
|
+
/**
|
|
1186
|
+
* Common condition templates with complete payload structures
|
|
1187
|
+
* Extracted from sentence_conditions.md
|
|
1188
|
+
*/
|
|
1189
|
+
export const ZUDELLO_CONDITION_TEMPLATES = {
|
|
1190
|
+
APPROVED_TRUE: {
|
|
1191
|
+
code: "APPROVED_TRUE",
|
|
1192
|
+
name: "has been approved",
|
|
1193
|
+
operator: {
|
|
1194
|
+
value: "==",
|
|
1195
|
+
default: "=="
|
|
1196
|
+
},
|
|
1197
|
+
field: {
|
|
1198
|
+
value: "is_approved",
|
|
1199
|
+
meta: {
|
|
1200
|
+
path: "is_approved",
|
|
1201
|
+
type: "Boolean",
|
|
1202
|
+
label: "Is Approved",
|
|
1203
|
+
sentence_path: "is_approved"
|
|
1204
|
+
}
|
|
1205
|
+
},
|
|
1206
|
+
values: [{
|
|
1207
|
+
value: true,
|
|
1208
|
+
source: "internal",
|
|
1209
|
+
default: true
|
|
1210
|
+
}],
|
|
1211
|
+
template: "has been approved"
|
|
1212
|
+
},
|
|
1213
|
+
APPROVED_FALSE: {
|
|
1214
|
+
code: "APPROVED_FALSE",
|
|
1215
|
+
name: "has not been approved",
|
|
1216
|
+
operator: {
|
|
1217
|
+
value: "==",
|
|
1218
|
+
default: "=="
|
|
1219
|
+
},
|
|
1220
|
+
field: {
|
|
1221
|
+
value: "is_approved",
|
|
1222
|
+
meta: {
|
|
1223
|
+
path: "is_approved",
|
|
1224
|
+
type: "Boolean",
|
|
1225
|
+
label: "Is Approved",
|
|
1226
|
+
sentence_path: "is_approved"
|
|
1227
|
+
}
|
|
1228
|
+
},
|
|
1229
|
+
values: [{
|
|
1230
|
+
value: false,
|
|
1231
|
+
source: "internal",
|
|
1232
|
+
default: false
|
|
1233
|
+
}],
|
|
1234
|
+
template: "has not been approved"
|
|
1235
|
+
},
|
|
1236
|
+
VARIANCE_AMOUNT: {
|
|
1237
|
+
code: "VARIANCE_AMOUNT",
|
|
1238
|
+
name: "Variance Amount",
|
|
1239
|
+
operator: {
|
|
1240
|
+
value: ">=",
|
|
1241
|
+
default: ">="
|
|
1242
|
+
},
|
|
1243
|
+
field: {
|
|
1244
|
+
value: "variance_amount_local_json.purchasing_order",
|
|
1245
|
+
meta: {
|
|
1246
|
+
path: "variance_amount_local_json__purchasing_order",
|
|
1247
|
+
type: "Number",
|
|
1248
|
+
label: "Purchasing Order",
|
|
1249
|
+
sentence_path: "variance_amount_local_json.purchasing_order"
|
|
1250
|
+
}
|
|
1251
|
+
},
|
|
1252
|
+
values: [],
|
|
1253
|
+
template: "Variance Amount {operator} {value}"
|
|
1254
|
+
},
|
|
1255
|
+
VARIANCE_PERC: {
|
|
1256
|
+
code: "VARIANCE_PERC",
|
|
1257
|
+
name: "Variance Percentage",
|
|
1258
|
+
operator: {
|
|
1259
|
+
value: ">=",
|
|
1260
|
+
default: ">="
|
|
1261
|
+
},
|
|
1262
|
+
field: {
|
|
1263
|
+
value: "variance_percentage_json.purchasing_order",
|
|
1264
|
+
meta: {
|
|
1265
|
+
path: "variance_percentage_json__purchasing_order",
|
|
1266
|
+
type: "Number",
|
|
1267
|
+
label: "Purchasing Order",
|
|
1268
|
+
sentence_path: "variance_percentage_json.purchasing_order"
|
|
1269
|
+
}
|
|
1270
|
+
},
|
|
1271
|
+
values: [],
|
|
1272
|
+
template: "Variance Percentage {operator}{value}%"
|
|
1273
|
+
},
|
|
1274
|
+
ALLOCATION_PO: {
|
|
1275
|
+
code: "ALLOCATION_PO",
|
|
1276
|
+
name: "Allocation Status - PO",
|
|
1277
|
+
operator: {
|
|
1278
|
+
value: "==",
|
|
1279
|
+
default: "=="
|
|
1280
|
+
},
|
|
1281
|
+
field: {
|
|
1282
|
+
value: "allocation_status_json.purchasing_order",
|
|
1283
|
+
meta: {
|
|
1284
|
+
path: "allocation_status_json__purchasing_order",
|
|
1285
|
+
type: "String",
|
|
1286
|
+
label: "Purchasing Order",
|
|
1287
|
+
sentence_path: "allocation_status_json.purchasing_order"
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1290
|
+
values: [],
|
|
1291
|
+
template: "Allocation Status - Purchase Order {operator} {value}"
|
|
1292
|
+
},
|
|
1293
|
+
ALLOCATION_RECEIPT: {
|
|
1294
|
+
code: "ALLOCATION_RECEIPT",
|
|
1295
|
+
name: "Allocation Status - Receipt",
|
|
1296
|
+
operator: {
|
|
1297
|
+
value: "==",
|
|
1298
|
+
default: "=="
|
|
1299
|
+
},
|
|
1300
|
+
field: {
|
|
1301
|
+
value: "allocation_status_json.inventory_receipt",
|
|
1302
|
+
meta: {
|
|
1303
|
+
path: "allocation_status_json__inventory_receipt",
|
|
1304
|
+
type: "String",
|
|
1305
|
+
label: "Inventory Receipt",
|
|
1306
|
+
sentence_path: "allocation_status_json.inventory_receipt"
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
values: [],
|
|
1310
|
+
template: "Allocation Status - Receipt {operator} {value}"
|
|
1311
|
+
}
|
|
1312
|
+
};
|
|
1313
|
+
// ============================================================================
|
|
1314
|
+
// Template Generation Utilities
|
|
1315
|
+
// ============================================================================
|
|
1316
|
+
/**
|
|
1317
|
+
* Get an action template by code
|
|
1318
|
+
*/
|
|
1319
|
+
export function getActionTemplate(code) {
|
|
1320
|
+
return ZUDELLO_ACTION_TEMPLATES[code];
|
|
1321
|
+
}
|
|
1322
|
+
/**
|
|
1323
|
+
* Get a condition template by code
|
|
1324
|
+
*/
|
|
1325
|
+
export function getConditionTemplate(code) {
|
|
1326
|
+
return ZUDELLO_CONDITION_TEMPLATES[code];
|
|
1327
|
+
}
|
|
1328
|
+
/**
|
|
1329
|
+
* Generate a sentence action payload from template
|
|
1330
|
+
*/
|
|
1331
|
+
export function generateActionPayload(code, values, field, operator, otherwise) {
|
|
1332
|
+
const template = getActionTemplate(code);
|
|
1333
|
+
if (!template) {
|
|
1334
|
+
throw new Error(`Action template not found for code: ${code}`);
|
|
1335
|
+
}
|
|
1336
|
+
return {
|
|
1337
|
+
code: template.code,
|
|
1338
|
+
name: template.name,
|
|
1339
|
+
operator: {
|
|
1340
|
+
value: operator || template.operator.value,
|
|
1341
|
+
default: template.operator.default,
|
|
1342
|
+
...(template.operator.use && { use: template.operator.use })
|
|
1343
|
+
},
|
|
1344
|
+
...(template.field && {
|
|
1345
|
+
field: {
|
|
1346
|
+
value: field || template.field.value,
|
|
1347
|
+
meta: template.field.meta
|
|
1348
|
+
}
|
|
1349
|
+
}),
|
|
1350
|
+
values: values || template.values || [],
|
|
1351
|
+
template: template.template,
|
|
1352
|
+
...(otherwise !== undefined && { otherwise })
|
|
1353
|
+
};
|
|
1354
|
+
}
|
|
1355
|
+
/**
|
|
1356
|
+
* Generate a sentence condition payload from template
|
|
1357
|
+
*/
|
|
1358
|
+
export function generateConditionPayload(code, values, field, operator) {
|
|
1359
|
+
const template = getConditionTemplate(code);
|
|
1360
|
+
if (!template) {
|
|
1361
|
+
throw new Error(`Condition template not found for code: ${code}`);
|
|
1362
|
+
}
|
|
1363
|
+
return {
|
|
1364
|
+
code: template.code,
|
|
1365
|
+
name: template.name,
|
|
1366
|
+
operator: {
|
|
1367
|
+
value: operator || template.operator.value,
|
|
1368
|
+
default: template.operator.default,
|
|
1369
|
+
...(template.operator.use && { use: template.operator.use })
|
|
1370
|
+
},
|
|
1371
|
+
field: {
|
|
1372
|
+
value: field || template.field.value,
|
|
1373
|
+
meta: template.field.meta
|
|
1374
|
+
},
|
|
1375
|
+
values: values || template.values
|
|
1376
|
+
};
|
|
1377
|
+
}
|
|
1378
|
+
/**
|
|
1379
|
+
* Generate a complete sentence recipe with trigger, conditions, and actions
|
|
1380
|
+
*/
|
|
1381
|
+
export function generateSentenceRecipe(options) {
|
|
1382
|
+
return {
|
|
1383
|
+
changeable: options.changeable ?? true,
|
|
1384
|
+
trigger: {
|
|
1385
|
+
trigger: "TEAM_DATA",
|
|
1386
|
+
event_type: options.trigger.event_type,
|
|
1387
|
+
event_model: options.trigger.event_model || "Transaction",
|
|
1388
|
+
module: options.trigger.module,
|
|
1389
|
+
submodule: options.trigger.submodule,
|
|
1390
|
+
enabled: options.trigger.enabled ?? true,
|
|
1391
|
+
changeable: true
|
|
1392
|
+
},
|
|
1393
|
+
conditions: (options.conditions || []).map(condition => ({
|
|
1394
|
+
...generateConditionPayload(condition.code, condition.values, condition.field, condition.operator),
|
|
1395
|
+
changeable: true
|
|
1396
|
+
})),
|
|
1397
|
+
actions: options.actions.map(action => ({
|
|
1398
|
+
...generateActionPayload(action.code, action.values, action.field, action.operator, action.otherwise),
|
|
1399
|
+
changeable: true
|
|
1400
|
+
}))
|
|
1401
|
+
};
|
|
1402
|
+
}
|
|
1403
|
+
/**
|
|
1404
|
+
* Common sentence recipe templates for typical workflows
|
|
1405
|
+
*/
|
|
1406
|
+
export const SENTENCE_RECIPE_TEMPLATES = {
|
|
1407
|
+
/**
|
|
1408
|
+
* Simple status change on document submit
|
|
1409
|
+
*/
|
|
1410
|
+
SIMPLE_STATUS_CHANGE: (module, submodule, statusKey) => generateSentenceRecipe({
|
|
1411
|
+
trigger: {
|
|
1412
|
+
module,
|
|
1413
|
+
submodule,
|
|
1414
|
+
event_type: "submit"
|
|
1415
|
+
},
|
|
1416
|
+
actions: [{
|
|
1417
|
+
code: "SET_STATUS",
|
|
1418
|
+
values: [{ value: { key: statusKey }, source: "internal" }]
|
|
1419
|
+
}]
|
|
1420
|
+
}),
|
|
1421
|
+
/**
|
|
1422
|
+
* Approval workflow with fallback to rejected status
|
|
1423
|
+
*/
|
|
1424
|
+
APPROVAL_WITH_FALLBACK: (module, submodule, approvalType = "GET_APPROVAL") => generateSentenceRecipe({
|
|
1425
|
+
trigger: {
|
|
1426
|
+
module,
|
|
1427
|
+
submodule,
|
|
1428
|
+
event_type: "submit"
|
|
1429
|
+
},
|
|
1430
|
+
actions: [
|
|
1431
|
+
{
|
|
1432
|
+
code: approvalType,
|
|
1433
|
+
values: [] // Must be populated with approval configuration
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
code: "SET_STATUS",
|
|
1437
|
+
values: [{ value: { key: "REJECT" }, source: "internal" }],
|
|
1438
|
+
otherwise: true
|
|
1439
|
+
},
|
|
1440
|
+
{
|
|
1441
|
+
code: "ASSIGN",
|
|
1442
|
+
values: [{ value: "submitted_by", source: "external", meta: { path: "submitted_by", type: "Relation" } }]
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
code: "CANCEL_PROCESSING"
|
|
1446
|
+
}
|
|
1447
|
+
]
|
|
1448
|
+
}),
|
|
1449
|
+
/**
|
|
1450
|
+
* Conditional processing based on document type
|
|
1451
|
+
*/
|
|
1452
|
+
CONDITIONAL_BY_DOCUMENT_TYPE: (module, submodule, documentTypeProperty, actions) => generateSentenceRecipe({
|
|
1453
|
+
trigger: {
|
|
1454
|
+
module,
|
|
1455
|
+
submodule,
|
|
1456
|
+
event_type: "submit"
|
|
1457
|
+
},
|
|
1458
|
+
conditions: [{
|
|
1459
|
+
code: "CUSTOM_CONDITION", // This would need to be added to condition templates
|
|
1460
|
+
field: "document_type",
|
|
1461
|
+
operator: "==",
|
|
1462
|
+
values: [{ value: { property: documentTypeProperty }, source: "internal" }]
|
|
1463
|
+
}],
|
|
1464
|
+
actions
|
|
1465
|
+
})
|
|
1466
|
+
};
|
|
1467
|
+
//# sourceMappingURL=zudello.js.map
|