wiil-core-js 0.0.82
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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/core/account/index.d.ts +7 -0
- package/dist/core/account/index.js +23 -0
- package/dist/core/account/organization.schema.d.ts +118 -0
- package/dist/core/account/organization.schema.js +91 -0
- package/dist/core/account/project.schema.d.ts +121 -0
- package/dist/core/account/project.schema.js +102 -0
- package/dist/core/account/supported-business-verticals.d.ts +8 -0
- package/dist/core/account/supported-business-verticals.js +23 -0
- package/dist/core/assistant-setups/assistant-setup-result.schema.d.ts +115 -0
- package/dist/core/assistant-setups/assistant-setup-result.schema.js +17 -0
- package/dist/core/assistant-setups/base-assistant-setup.schema.d.ts +61 -0
- package/dist/core/assistant-setups/base-assistant-setup.schema.js +29 -0
- package/dist/core/assistant-setups/index.d.ts +4 -0
- package/dist/core/assistant-setups/index.js +21 -0
- package/dist/core/assistant-setups/phone-assistant-setup.schema.d.ts +63 -0
- package/dist/core/assistant-setups/phone-assistant-setup.schema.js +14 -0
- package/dist/core/assistant-setups/web-assitant-setup.schema.d.ts +56 -0
- package/dist/core/assistant-setups/web-assitant-setup.schema.js +17 -0
- package/dist/core/base.schema.d.ts +34 -0
- package/dist/core/base.schema.js +36 -0
- package/dist/core/business-mgt/appointment-additional-info.schema.d.ts +63 -0
- package/dist/core/business-mgt/appointment-additional-info.schema.js +53 -0
- package/dist/core/business-mgt/appointment-field-config.schema.d.ts +251 -0
- package/dist/core/business-mgt/appointment-field-config.schema.js +49 -0
- package/dist/core/business-mgt/bookings.shared.schema.d.ts +47 -0
- package/dist/core/business-mgt/bookings.shared.schema.js +60 -0
- package/dist/core/business-mgt/business-location.schema.d.ts +327 -0
- package/dist/core/business-mgt/business-location.schema.js +176 -0
- package/dist/core/business-mgt/customer-management/customer-group.schema.d.ts +87 -0
- package/dist/core/business-mgt/customer-management/customer-group.schema.js +53 -0
- package/dist/core/business-mgt/customer-management/customer.schema.d.ts +156 -0
- package/dist/core/business-mgt/customer-management/customer.schema.js +93 -0
- package/dist/core/business-mgt/customer-management/index.d.ts +7 -0
- package/dist/core/business-mgt/customer-management/index.js +23 -0
- package/dist/core/business-mgt/customer-management/shipping-address.schema.d.ts +112 -0
- package/dist/core/business-mgt/customer-management/shipping-address.schema.js +79 -0
- package/dist/core/business-mgt/customer.schema.d.ts +111 -0
- package/dist/core/business-mgt/customer.schema.js +73 -0
- package/dist/core/business-mgt/discount-rule.schema.d.ts +183 -0
- package/dist/core/business-mgt/discount-rule.schema.js +108 -0
- package/dist/core/business-mgt/index.d.ts +16 -0
- package/dist/core/business-mgt/index.js +38 -0
- package/dist/core/business-mgt/menu-config.schema.d.ts +165 -0
- package/dist/core/business-mgt/menu-config.schema.js +86 -0
- package/dist/core/business-mgt/menu-management/index.d.ts +11 -0
- package/dist/core/business-mgt/menu-management/index.js +27 -0
- package/dist/core/business-mgt/menu-management/menu-catalog.schema.d.ts +386 -0
- package/dist/core/business-mgt/menu-management/menu-catalog.schema.js +58 -0
- package/dist/core/business-mgt/menu-management/menu-config.schema.d.ts +301 -0
- package/dist/core/business-mgt/menu-management/menu-config.schema.js +169 -0
- package/dist/core/business-mgt/menu-management/menu-item-variant.schema.d.ts +143 -0
- package/dist/core/business-mgt/menu-management/menu-item-variant.schema.js +86 -0
- package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.d.ts +239 -0
- package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.js +117 -0
- package/dist/core/business-mgt/menu-management/menu-set.schema.d.ts +420 -0
- package/dist/core/business-mgt/menu-management/menu-set.schema.js +283 -0
- package/dist/core/business-mgt/menu-management/menu.order.schema.d.ts +654 -0
- package/dist/core/business-mgt/menu-management/menu.order.schema.js +204 -0
- package/dist/core/business-mgt/menu-management/modifier.schema.d.ts +585 -0
- package/dist/core/business-mgt/menu-management/modifier.schema.js +341 -0
- package/dist/core/business-mgt/menu.order.schema.d.ts +335 -0
- package/dist/core/business-mgt/menu.order.schema.js +149 -0
- package/dist/core/business-mgt/order.schema.d.ts +222 -0
- package/dist/core/business-mgt/order.schema.js +205 -0
- package/dist/core/business-mgt/pricing-rule.shared.schema.d.ts +56 -0
- package/dist/core/business-mgt/pricing-rule.shared.schema.js +68 -0
- package/dist/core/business-mgt/product-config.schema.d.ts +177 -0
- package/dist/core/business-mgt/product-config.schema.js +106 -0
- package/dist/core/business-mgt/product-management/index.d.ts +12 -0
- package/dist/core/business-mgt/product-management/index.js +28 -0
- package/dist/core/business-mgt/product-management/product-axis-binding.schema.d.ts +54 -0
- package/dist/core/business-mgt/product-management/product-axis-binding.schema.js +54 -0
- package/dist/core/business-mgt/product-management/product-config.schema.d.ts +1042 -0
- package/dist/core/business-mgt/product-management/product-config.schema.js +392 -0
- package/dist/core/business-mgt/product-management/product-display.schema.d.ts +548 -0
- package/dist/core/business-mgt/product-management/product-display.schema.js +80 -0
- package/dist/core/business-mgt/product-management/product-order.schema.d.ts +493 -0
- package/dist/core/business-mgt/product-management/product-order.schema.js +158 -0
- package/dist/core/business-mgt/product-management/product-pricing-rule.schema.d.ts +167 -0
- package/dist/core/business-mgt/product-management/product-pricing-rule.schema.js +68 -0
- package/dist/core/business-mgt/product-management/product-set.schema.d.ts +488 -0
- package/dist/core/business-mgt/product-management/product-set.schema.js +273 -0
- package/dist/core/business-mgt/product-management/product-variant-axis.schema.d.ts +156 -0
- package/dist/core/business-mgt/product-management/product-variant-axis.schema.js +98 -0
- package/dist/core/business-mgt/product-management/product-variant.schema.d.ts +219 -0
- package/dist/core/business-mgt/product-management/product-variant.schema.js +130 -0
- package/dist/core/business-mgt/product-order.schema.d.ts +326 -0
- package/dist/core/business-mgt/product-order.schema.js +153 -0
- package/dist/core/business-mgt/property-config.schema.d.ts +621 -0
- package/dist/core/business-mgt/property-config.schema.js +224 -0
- package/dist/core/business-mgt/property-inquiry.schema.d.ts +222 -0
- package/dist/core/business-mgt/property-inquiry.schema.js +112 -0
- package/dist/core/business-mgt/property-management/index.d.ts +6 -0
- package/dist/core/business-mgt/property-management/index.js +22 -0
- package/dist/core/business-mgt/property-management/property-config.schema.d.ts +1306 -0
- package/dist/core/business-mgt/property-management/property-config.schema.js +367 -0
- package/dist/core/business-mgt/property-management/property-inquiry.schema.d.ts +254 -0
- package/dist/core/business-mgt/property-management/property-inquiry.schema.js +131 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/index.d.ts +3 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/index.js +19 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.d.ts +139 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.js +90 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.d.ts +104 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.js +70 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.d.ts +104 -0
- package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.js +72 -0
- package/dist/core/business-mgt/reservation-mgt/index.d.ts +14 -0
- package/dist/core/business-mgt/reservation-mgt/index.js +31 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.d.ts +180 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.js +75 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.d.ts +91 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.js +57 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.d.ts +334 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.js +179 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.d.ts +195 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.js +106 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.d.ts +402 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.js +198 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.d.ts +229 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.js +127 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.d.ts +382 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.js +322 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.d.ts +123 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.js +83 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.d.ts +167 -0
- package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.js +84 -0
- package/dist/core/business-mgt/reservation-mgt/reservation.schema.d.ts +0 -0
- package/dist/core/business-mgt/reservation-mgt/reservation.schema.js +153 -0
- package/dist/core/business-mgt/reservation-mgt/resource/index.d.ts +4 -0
- package/dist/core/business-mgt/reservation-mgt/resource/index.js +20 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.d.ts +157 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.js +76 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.d.ts +137 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.js +94 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.d.ts +713 -0
- package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.js +363 -0
- package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.d.ts +151 -0
- package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.js +147 -0
- package/dist/core/business-mgt/reservation-resource.schema.d.ts +154 -0
- package/dist/core/business-mgt/reservation-resource.schema.js +100 -0
- package/dist/core/business-mgt/reservation.schema.d.ts +119 -0
- package/dist/core/business-mgt/reservation.schema.js +89 -0
- package/dist/core/business-mgt/service-appointment.schema.d.ts +105 -0
- package/dist/core/business-mgt/service-appointment.schema.js +69 -0
- package/dist/core/business-mgt/service-config.schema.d.ts +453 -0
- package/dist/core/business-mgt/service-config.schema.js +102 -0
- package/dist/core/business-mgt/service-management/appointment-additional-info.schema.d.ts +110 -0
- package/dist/core/business-mgt/service-management/appointment-additional-info.schema.js +78 -0
- package/dist/core/business-mgt/service-management/appointment-field-config.schema.d.ts +304 -0
- package/dist/core/business-mgt/service-management/appointment-field-config.schema.js +75 -0
- package/dist/core/business-mgt/service-management/business-service-config.schema.d.ts +1226 -0
- package/dist/core/business-mgt/service-management/business-service-config.schema.js +317 -0
- package/dist/core/business-mgt/service-management/index.d.ts +13 -0
- package/dist/core/business-mgt/service-management/index.js +29 -0
- package/dist/core/business-mgt/service-management/service-appointment.schema.d.ts +531 -0
- package/dist/core/business-mgt/service-management/service-appointment.schema.js +116 -0
- package/dist/core/business-mgt/service-management/service-person.schema.d.ts +122 -0
- package/dist/core/business-mgt/service-management/service-person.schema.js +66 -0
- package/dist/core/business-mgt/service-management/service-pricing-rule.schema.d.ts +221 -0
- package/dist/core/business-mgt/service-management/service-pricing-rule.schema.js +118 -0
- package/dist/core/business-mgt/service-management/service-provider.schema.d.ts +90 -0
- package/dist/core/business-mgt/service-management/service-provider.schema.js +54 -0
- package/dist/core/business-mgt/service-management/service-slot-query.schema.d.ts +90 -0
- package/dist/core/business-mgt/service-management/service-slot-query.schema.js +113 -0
- package/dist/core/business-mgt/service-management/service-time-off.schema.d.ts +121 -0
- package/dist/core/business-mgt/service-management/service-time-off.schema.js +95 -0
- package/dist/core/business-mgt/service-person.schema.d.ts +43 -0
- package/dist/core/business-mgt/service-person.schema.js +38 -0
- package/dist/core/business-mgt/tax-rule.schema.d.ts +161 -0
- package/dist/core/business-mgt/tax-rule.schema.js +90 -0
- package/dist/core/conversation/conversation-config.schema.d.ts +644 -0
- package/dist/core/conversation/conversation-config.schema.js +351 -0
- package/dist/core/conversation/conversation-message.schema.d.ts +307 -0
- package/dist/core/conversation/conversation-message.schema.js +275 -0
- package/dist/core/conversation/index.d.ts +12 -0
- package/dist/core/conversation/index.js +28 -0
- package/dist/core/conversation/outbound-call.schema.d.ts +209 -0
- package/dist/core/conversation/outbound-call.schema.js +116 -0
- package/dist/core/conversation/outbound-email.schema.d.ts +338 -0
- package/dist/core/conversation/outbound-email.schema.js +150 -0
- package/dist/core/conversation/outbound-sms.schema.d.ts +163 -0
- package/dist/core/conversation/outbound-sms.schema.js +85 -0
- package/dist/core/conversation/outbound-template.schema.d.ts +375 -0
- package/dist/core/conversation/outbound-template.schema.js +160 -0
- package/dist/core/conversation/translation-config.schema.d.ts +92 -0
- package/dist/core/conversation/translation-config.schema.js +88 -0
- package/dist/core/conversation/translation-conversation.schema.d.ts +469 -0
- package/dist/core/conversation/translation-conversation.schema.js +175 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.js +30 -0
- package/dist/core/service-configuration/agent-config.schema.d.ts +236 -0
- package/dist/core/service-configuration/agent-config.schema.js +152 -0
- package/dist/core/service-configuration/base-agent-setup.d.ts +147 -0
- package/dist/core/service-configuration/base-agent-setup.js +123 -0
- package/dist/core/service-configuration/call-transfer-config.schema.d.ts +60 -0
- package/dist/core/service-configuration/call-transfer-config.schema.js +53 -0
- package/dist/core/service-configuration/deployment-config.schema.d.ts +522 -0
- package/dist/core/service-configuration/deployment-config.schema.js +271 -0
- package/dist/core/service-configuration/dynamic_setup/base-agent-setup.d.ts +130 -0
- package/dist/core/service-configuration/dynamic_setup/base-agent-setup.js +110 -0
- package/dist/core/service-configuration/dynamic_setup/index.d.ts +10 -0
- package/dist/core/service-configuration/dynamic_setup/index.js +26 -0
- package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.d.ts +111 -0
- package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.js +56 -0
- package/dist/core/service-configuration/dynamic_setup/web-agent-setup.d.ts +113 -0
- package/dist/core/service-configuration/dynamic_setup/web-agent-setup.js +55 -0
- package/dist/core/service-configuration/index.d.ts +17 -0
- package/dist/core/service-configuration/index.js +33 -0
- package/dist/core/service-configuration/instruction-config.schema.d.ts +183 -0
- package/dist/core/service-configuration/instruction-config.schema.js +139 -0
- package/dist/core/service-configuration/interaction-channels.schema.d.ts +469 -0
- package/dist/core/service-configuration/interaction-channels.schema.js +390 -0
- package/dist/core/service-configuration/knowledge.schema.d.ts +107 -0
- package/dist/core/service-configuration/knowledge.schema.js +106 -0
- package/dist/core/service-configuration/phone-config.schema.d.ts +206 -0
- package/dist/core/service-configuration/phone-config.schema.js +121 -0
- package/dist/core/service-configuration/phone-number.schema.d.ts +236 -0
- package/dist/core/service-configuration/phone-number.schema.js +211 -0
- package/dist/core/service-configuration/provisioning-config.d.ts +429 -0
- package/dist/core/service-configuration/provisioning-config.js +307 -0
- package/dist/core/service-configuration/support-llm.d.ts +95 -0
- package/dist/core/service-configuration/support-llm.js +76 -0
- package/dist/core/service-configuration/voice-language.schema.d.ts +200 -0
- package/dist/core/service-configuration/voice-language.schema.js +166 -0
- package/dist/core/type-definitions/account-definitions.d.ts +82 -0
- package/dist/core/type-definitions/account-definitions.js +88 -0
- package/dist/core/type-definitions/business-definitions.d.ts +394 -0
- package/dist/core/type-definitions/business-definitions.js +447 -0
- package/dist/core/type-definitions/conversation.type.definition.d.ts +223 -0
- package/dist/core/type-definitions/conversation.type.definition.js +236 -0
- package/dist/core/type-definitions/display-order.d.ts +154 -0
- package/dist/core/type-definitions/display-order.js +154 -0
- package/dist/core/type-definitions/dynamic-fields/field-definition.schema.d.ts +165 -0
- package/dist/core/type-definitions/dynamic-fields/field-definition.schema.js +97 -0
- package/dist/core/type-definitions/dynamic-fields/field-types.d.ts +49 -0
- package/dist/core/type-definitions/dynamic-fields/field-types.js +104 -0
- package/dist/core/type-definitions/dynamic-fields/index.d.ts +9 -0
- package/dist/core/type-definitions/dynamic-fields/index.js +25 -0
- package/dist/core/type-definitions/index.d.ts +10 -0
- package/dist/core/type-definitions/index.js +26 -0
- package/dist/core/type-definitions/knowledge-definitions.d.ts +30 -0
- package/dist/core/type-definitions/knowledge-definitions.js +37 -0
- package/dist/core/type-definitions/service-config.definitions.d.ts +112 -0
- package/dist/core/type-definitions/service-config.definitions.js +135 -0
- package/dist/core/validators/channel-validation.d.ts +19 -0
- package/dist/core/validators/channel-validation.js +40 -0
- package/dist/core/validators/index.d.ts +5 -0
- package/dist/core/validators/index.js +21 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +24 -0
- package/dist/request/index.d.ts +5 -0
- package/dist/request/index.js +21 -0
- package/dist/request/models/index.d.ts +6 -0
- package/dist/request/models/index.js +22 -0
- package/dist/request/models/paginated-quest.schema.d.ts +33 -0
- package/dist/request/models/paginated-quest.schema.js +35 -0
- package/dist/request/models/paginated-result.schema.d.ts +124 -0
- package/dist/request/models/paginated-result.schema.js +94 -0
- package/package.json +43 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MenuOrderPricingPreviewSchema = exports.UpdateMenuOrderStatusSchema = exports.UpdateMenuOrderSchema = exports.CreateMenuOrderSchema = exports.MenuOrderSchema = exports.MenuOrderItemSchema = exports.MenuOrderItemBaseSchema = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const base_schema_1 = require("../../base.schema");
|
|
9
|
+
const order_schema_1 = require("../order.schema");
|
|
10
|
+
const type_definitions_1 = require("../../type-definitions");
|
|
11
|
+
const modifier_schema_1 = require("./modifier.schema");
|
|
12
|
+
/**
|
|
13
|
+
* @fileoverview Menu order schema definitions for restaurant/food service.
|
|
14
|
+
* @module business-mgt/menu-order
|
|
15
|
+
*
|
|
16
|
+
* Includes menu orders, order items, customizations, and status tracking
|
|
17
|
+
* for dine-in, takeout, and delivery order management.
|
|
18
|
+
*/
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// MENU ORDER ITEM SCHEMAS
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Base menu order item schema.
|
|
24
|
+
*
|
|
25
|
+
* @typedef {Object} MenuOrderItemBase
|
|
26
|
+
* @property {string} menuItemId - Menu item ID being ordered
|
|
27
|
+
* @property {string} variantId - Menu item variant ID being ordered
|
|
28
|
+
* @property {string} [menuSetId] - Original menu set ID if from a set
|
|
29
|
+
* @property {string} itemName - Name of the menu item
|
|
30
|
+
* @property {number} quantity - Quantity ordered
|
|
31
|
+
* @property {number} unitPrice - Price per unit
|
|
32
|
+
* @property {number} totalPrice - Total price for this item
|
|
33
|
+
* @property {string} [specialInstructions] - Special preparation instructions
|
|
34
|
+
* @property {Array} [customizations] - Item customizations with additional costs
|
|
35
|
+
* @property {Array} [modifiers] - Resolved modifiers with names and pricing
|
|
36
|
+
* @property {string} status - Item status
|
|
37
|
+
* @property {number} [preparationTime] - Estimated prep time in minutes
|
|
38
|
+
* @property {string} [notes] - Additional notes
|
|
39
|
+
*/
|
|
40
|
+
exports.MenuOrderItemBaseSchema = zod_1.default.object({
|
|
41
|
+
menuItemId: zod_1.default.string().describe("References MenuItem from menu-config.schema that is being ordered. Links order item to catalog for pricing, availability, and preparation details."),
|
|
42
|
+
variantId: zod_1.default.string().describe("Menu item variant ID being ordered. Links to specific size/option variant for accurate pricing."),
|
|
43
|
+
menuSetId: zod_1.default.string().nullable().optional().describe("Original menu set ID if this item came from a set. Enables set-based pricing and tracking."),
|
|
44
|
+
itemName: zod_1.default.string().describe("Display name of the menu item captured at order time. Preserved even if catalog item is later renamed, ensuring historical order accuracy."),
|
|
45
|
+
quantity: zod_1.default.number().int().positive().describe("Number of units ordered for this menu item. Used for pricing calculations and kitchen preparation quantities."),
|
|
46
|
+
unitPrice: zod_1.default.number().nonnegative().describe("Price per unit at the time of order. Captures pricing snapshot for order integrity even if catalog prices change later."),
|
|
47
|
+
totalPrice: zod_1.default.number().nonnegative().describe("Total price for this line item: unitPrice × quantity + customization costs. Used in order subtotal calculations."),
|
|
48
|
+
// Restaurant-specific
|
|
49
|
+
specialInstructions: zod_1.default.string().nullable().default(null).describe("Customer's special preparation requests (e.g., 'no onions', 'extra sauce', 'well done'). Communicated to kitchen staff for customized preparation."),
|
|
50
|
+
customizations: zod_1.default.array(zod_1.default.object({
|
|
51
|
+
name: zod_1.default.string().describe("Customization option name (e.g., 'Extra Cheese', 'Gluten-Free Bread', 'Add Bacon')."),
|
|
52
|
+
value: zod_1.default.string().describe("Selected customization value or specification (e.g., 'Yes', 'Large', 'On the side')."),
|
|
53
|
+
additionalCost: zod_1.default.number().nonnegative().default(0).describe("Extra charge for this customization. Defaults to 0 for no-cost modifications.")
|
|
54
|
+
})).nullable().default(null).describe("Item customizations with pricing. Enables upselling and personalization in AI-powered Menu Order conversations."),
|
|
55
|
+
modifiers: zod_1.default.array(modifier_schema_1.AppliedModifierSchema).nullable().optional().describe("Resolved modifiers with names and pricing from modifier.schema. Tracks selected modifier options for this item."),
|
|
56
|
+
status: zod_1.default.enum(type_definitions_1.OrderStatus).default(type_definitions_1.OrderStatus.PENDING).describe("Current preparation status of this individual item. Enables per-item tracking in kitchen workflow. Defaults to PENDING."),
|
|
57
|
+
preparationTime: zod_1.default.number().int().positive().nullable().default(null).describe("Estimated preparation time in minutes for this specific item. Used for kitchen scheduling and customer ready-time estimates."),
|
|
58
|
+
notes: zod_1.default.string().nullable().default(null).describe("Internal notes about this item for kitchen or service staff. Not visible to customers.")
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Menu order item schema.
|
|
62
|
+
* Item with IDs (for existing items).
|
|
63
|
+
*
|
|
64
|
+
* @typedef {Object} MenuOrderItem
|
|
65
|
+
* @property {string} id - Unique identifier for this menu order item
|
|
66
|
+
* @property {string} menuOrderId - Parent menu order ID
|
|
67
|
+
*/
|
|
68
|
+
exports.MenuOrderItemSchema = exports.MenuOrderItemBaseSchema.safeExtend({
|
|
69
|
+
id: zod_1.default.string().describe("Unique identifier for this menu order item instance."),
|
|
70
|
+
menuOrderId: zod_1.default.string().describe("References parent MenuOrder this item belongs to. Maintains order-item relationship for order management and fulfillment tracking."),
|
|
71
|
+
});
|
|
72
|
+
// ============================================================================
|
|
73
|
+
// MENU ORDER SCHEMA
|
|
74
|
+
// ============================================================================
|
|
75
|
+
/**
|
|
76
|
+
* Menu order schema.
|
|
77
|
+
*
|
|
78
|
+
* @typedef {Object} MenuOrder
|
|
79
|
+
* @property {string} [locationId] - Business location ID
|
|
80
|
+
* @property {string} [channelId] - Channel ID for multi-channel orders
|
|
81
|
+
* @property {string} [terminalId] - Terminal/register ID
|
|
82
|
+
* @property {string} [operatorId] - Operator/staff user ID
|
|
83
|
+
* @property {string} [orderNumber] - Human-readable order number
|
|
84
|
+
* @property {string} type - Order type (dine-in, takeout, delivery)
|
|
85
|
+
* @property {string} status - Current order status
|
|
86
|
+
* @property {Array} items - Items in the order
|
|
87
|
+
* @property {string} customerId - ID of the customer placing the order
|
|
88
|
+
* @property {Object} pricing - Pricing details
|
|
89
|
+
* @property {string} paymentStatus - Payment status
|
|
90
|
+
* @property {string} [paymentMethod] - Payment method used
|
|
91
|
+
* @property {string} [paymentReference] - Payment reference number
|
|
92
|
+
* @property {number} orderDate - Order date as Unix timestamp
|
|
93
|
+
* @property {number} [requestedTime] - Requested pickup/delivery time
|
|
94
|
+
* @property {number} [estimatedReadyTime] - Estimated ready time
|
|
95
|
+
* @property {number} [actualReadyTime] - Actual ready time
|
|
96
|
+
* @property {string} [specialInstructions] - Special instructions
|
|
97
|
+
* @property {string[]} [allergies] - Customer allergies
|
|
98
|
+
* @property {string} [tableNumber] - Table number for dine-in
|
|
99
|
+
* @property {Object} [externalRef] - External system reference for synced orders
|
|
100
|
+
* @property {string} [cancelReason] - Reason for cancellation
|
|
101
|
+
* @property {string} [notes] - Additional notes
|
|
102
|
+
* @property {string} [serviceConversationConfigId] - Service conversation config ID
|
|
103
|
+
* @property {Object} [deliveryAddress] - Delivery address if applicable
|
|
104
|
+
* @property {string} [shippingAddressId] - Reference to saved shipping address
|
|
105
|
+
* @property {number} [tip] - Tip amount for the order
|
|
106
|
+
*/
|
|
107
|
+
exports.MenuOrderSchema = base_schema_1.BaseModelSchema.safeExtend({
|
|
108
|
+
locationId: zod_1.default.string().nullable().optional().describe("Business location ID for multi-location businesses. Links order to specific restaurant/branch."),
|
|
109
|
+
channelId: zod_1.default.string().nullable().optional().describe("Channel ID for multi-channel orders (e.g., doordash, uber-eats, web, app). Used for attribution and analytics."),
|
|
110
|
+
terminalId: zod_1.default.string().nullable().default(null).describe("Terminal/register ID that created the order. For POS integration and reconciliation."),
|
|
111
|
+
operatorId: zod_1.default.string().nullable().default(null).describe("Operator/staff user ID that created the order. For accountability and commission tracking."),
|
|
112
|
+
orderNumber: zod_1.default.string().nullable().default(null).describe("Human-readable order number displayed to customers and staff (e.g., '#1234', 'A-42'). Generated by Menu Management for easy reference and communication."),
|
|
113
|
+
type: zod_1.default.enum(type_definitions_1.MenuOrderType).describe("Order fulfillment type: DINE_IN (eat at restaurant), TAKEOUT (customer pickup), or DELIVERY (courier delivery). Determines workflow and address requirements."),
|
|
114
|
+
status: zod_1.default.enum(type_definitions_1.OrderStatus).default(type_definitions_1.OrderStatus.PENDING).describe("Current order status tracking progression from placement to fulfillment. Used by kitchen display systems and customer notifications. Defaults to PENDING."),
|
|
115
|
+
items: zod_1.default.array(exports.MenuOrderItemSchema).min(1, "Order must have at least one item").describe("Menu items in this order with quantities, pricing, and customizations. Minimum one item required for valid order."),
|
|
116
|
+
customerId: zod_1.default.string().describe("References Customer who placed this order. Links to customer profile for order history, preferences, and communication."),
|
|
117
|
+
pricing: order_schema_1.OrderPricingSchema.describe("Complete pricing breakdown including subtotal, tax, tip, delivery fees, and discounts. From order.schema.ts for consistent pricing across order types."),
|
|
118
|
+
// Payment
|
|
119
|
+
paymentStatus: zod_1.default.enum(type_definitions_1.PaymentStatus).default(type_definitions_1.PaymentStatus.PENDING).describe("Payment processing status. Tracks whether order is paid, pending, failed, or refunded. Defaults to PENDING."),
|
|
120
|
+
paymentMethod: zod_1.default.string().nullable().default(null).describe("Payment method used (e.g., 'credit_card', 'cash', 'digital_wallet'). Captured for accounting and reconciliation."),
|
|
121
|
+
paymentReference: zod_1.default.string().nullable().default(null).describe("External payment system reference or transaction ID. Used for payment verification and dispute resolution."),
|
|
122
|
+
// Restaurant-specific timing
|
|
123
|
+
orderDate: zod_1.default.number().describe("Unix timestamp when order was placed. Used for order history, analytics, and time-based reporting."),
|
|
124
|
+
requestedTime: zod_1.default.number().nullable().default(null).describe("Unix timestamp for customer's requested pickup or delivery time. Used for scheduling kitchen preparation and delivery coordination."),
|
|
125
|
+
estimatedReadyTime: zod_1.default.number().nullable().default(null).describe("Unix timestamp when kitchen estimates order will be ready. Communicated to customers via AI Powered Services and used for pickup/delivery scheduling."),
|
|
126
|
+
actualReadyTime: zod_1.default.number().nullable().default(null).describe("Unix timestamp when order was actually completed and ready. Used for performance tracking and customer communication accuracy."),
|
|
127
|
+
// Restaurant-specific requests
|
|
128
|
+
specialInstructions: zod_1.default.string().nullable().default(null).describe("Order-level special instructions from customer (e.g., 'ring doorbell', 'leave at door', 'call upon arrival'). Applies to entire order vs item-specific instructions."),
|
|
129
|
+
allergies: zod_1.default.array(zod_1.default.string()).nullable().default(null).describe("Customer's allergy information for this order (e.g., ['peanuts', 'shellfish']). Critical for kitchen safety protocols and cross-contamination prevention."),
|
|
130
|
+
tableNumber: zod_1.default.string().nullable().default(null).describe("Table number for DINE_IN orders. Links order to physical location for server delivery and bill management."),
|
|
131
|
+
// Integration
|
|
132
|
+
externalRef: type_definitions_1.ExternalRefSchema.nullable().optional().describe("External system reference when order is imported/synced from third-party platforms."),
|
|
133
|
+
cancelReason: zod_1.default.string().nullable().default(null).describe("Reason provided when order is cancelled. Used for analytics, process improvement, and customer service follow-up."),
|
|
134
|
+
notes: zod_1.default.string().nullable().default(null).describe("Internal operational notes about this order. Not visible to customers; used by staff for coordination and special handling."),
|
|
135
|
+
serviceConversationConfigId: zod_1.default.string().nullable().default(null).describe("References the AI Powered Services conversation configuration that powered this order. Links order to deployment channel and conversation history."),
|
|
136
|
+
deliveryAddress: zod_1.default.object({
|
|
137
|
+
street: zod_1.default.string().describe("Delivery street address for DELIVERY type orders. Primary location for courier navigation."),
|
|
138
|
+
city: zod_1.default.string().nullable().default(null).describe("Delivery city for regional routing and delivery fee calculation."),
|
|
139
|
+
postalCode: zod_1.default.string().nullable().default(null).describe("Delivery postal code for address validation and delivery zone determination."),
|
|
140
|
+
}).nullable().default(null).describe("Delivery address for DELIVERY type orders. Required when type is DELIVERY; unused for DINE_IN or TAKEOUT."),
|
|
141
|
+
shippingAddressId: zod_1.default.string().nullable().optional().describe("Reference to a saved shipping address for delivery orders. Links to customer's saved addresses."),
|
|
142
|
+
tip: zod_1.default.number().nonnegative().nullable().default(null).describe("Tip amount for the order."),
|
|
143
|
+
});
|
|
144
|
+
// ============================================================================
|
|
145
|
+
// CREATE/UPDATE SCHEMAS
|
|
146
|
+
// ============================================================================
|
|
147
|
+
/**
|
|
148
|
+
* Schema for creating a new menu order.
|
|
149
|
+
* Omits auto-generated fields and uses base items without IDs.
|
|
150
|
+
*/
|
|
151
|
+
exports.CreateMenuOrderSchema = exports.MenuOrderSchema.omit({
|
|
152
|
+
id: true,
|
|
153
|
+
orderNumber: true,
|
|
154
|
+
createdAt: true,
|
|
155
|
+
updatedAt: true,
|
|
156
|
+
actualReadyTime: true,
|
|
157
|
+
items: true,
|
|
158
|
+
cancelReason: true,
|
|
159
|
+
serviceConversationConfigId: true,
|
|
160
|
+
}).safeExtend({
|
|
161
|
+
items: zod_1.default.array(exports.MenuOrderItemBaseSchema).min(1, "Order must have at least one item"),
|
|
162
|
+
cancelReason: zod_1.default.string().nullable().default(null),
|
|
163
|
+
});
|
|
164
|
+
/**
|
|
165
|
+
* Schema for updating an existing menu order.
|
|
166
|
+
* All fields are optional except id.
|
|
167
|
+
*/
|
|
168
|
+
exports.UpdateMenuOrderSchema = exports.CreateMenuOrderSchema.partial().safeExtend({
|
|
169
|
+
id: zod_1.default.string(),
|
|
170
|
+
});
|
|
171
|
+
/**
|
|
172
|
+
* Quick status update schema for menu orders.
|
|
173
|
+
* Streamlined update for status transitions.
|
|
174
|
+
*
|
|
175
|
+
* @typedef {Object} UpdateMenuOrderStatus
|
|
176
|
+
* @property {string} id - Menu order ID to update
|
|
177
|
+
* @property {OrderStatus} status - New order status
|
|
178
|
+
* @property {number} [estimatedReadyTime] - Updated estimated completion time
|
|
179
|
+
* @property {number} [actualReadyTime] - Actual completion time
|
|
180
|
+
*/
|
|
181
|
+
exports.UpdateMenuOrderStatusSchema = zod_1.default.object({
|
|
182
|
+
id: zod_1.default.string().describe("Unique identifier of the MenuOrder to update status for."),
|
|
183
|
+
status: zod_1.default.enum(type_definitions_1.OrderStatus).describe("New order status to transition to (e.g., from PENDING to PREPARING to READY). Validates against OrderStatus enum for workflow consistency."),
|
|
184
|
+
estimatedReadyTime: zod_1.default.number().nullable().default(null).describe("Updated Unix timestamp for estimated completion. Used when kitchen adjusts timing based on current workload or delays."),
|
|
185
|
+
actualReadyTime: zod_1.default.number().nullable().default(null).describe("Unix timestamp when order was actually completed. Set when status transitions to READY or COMPLETED for performance tracking."),
|
|
186
|
+
});
|
|
187
|
+
/**
|
|
188
|
+
* Menu order pricing preview schema.
|
|
189
|
+
* For validation/preview purposes before order submission.
|
|
190
|
+
*
|
|
191
|
+
* @typedef {Object} MenuOrderPricingPreview
|
|
192
|
+
* @property {boolean} success - Whether pricing calculation was successful
|
|
193
|
+
* @property {MenuOrderItemBase[]} items - Items with calculated pricing
|
|
194
|
+
* @property {OrderPricing} [pricing] - Calculated pricing breakdown
|
|
195
|
+
* @property {string[]} errors - List of errors encountered
|
|
196
|
+
* @property {string[]} warnings - List of warnings (e.g., items unavailable)
|
|
197
|
+
*/
|
|
198
|
+
exports.MenuOrderPricingPreviewSchema = zod_1.default.object({
|
|
199
|
+
success: zod_1.default.boolean().describe("Whether pricing calculation was successful"),
|
|
200
|
+
items: zod_1.default.array(exports.MenuOrderItemBaseSchema).describe("Items with calculated pricing"),
|
|
201
|
+
pricing: order_schema_1.OrderPricingSchema.nullable().describe("Calculated pricing breakdown, null if calculation failed"),
|
|
202
|
+
errors: zod_1.default.array(zod_1.default.string()).describe("List of errors encountered during calculation"),
|
|
203
|
+
warnings: zod_1.default.array(zod_1.default.string()).describe("List of warnings (e.g., items unavailable, price changes)"),
|
|
204
|
+
});
|