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.
Files changed (261) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/core/account/index.d.ts +7 -0
  4. package/dist/core/account/index.js +23 -0
  5. package/dist/core/account/organization.schema.d.ts +118 -0
  6. package/dist/core/account/organization.schema.js +91 -0
  7. package/dist/core/account/project.schema.d.ts +121 -0
  8. package/dist/core/account/project.schema.js +102 -0
  9. package/dist/core/account/supported-business-verticals.d.ts +8 -0
  10. package/dist/core/account/supported-business-verticals.js +23 -0
  11. package/dist/core/assistant-setups/assistant-setup-result.schema.d.ts +115 -0
  12. package/dist/core/assistant-setups/assistant-setup-result.schema.js +17 -0
  13. package/dist/core/assistant-setups/base-assistant-setup.schema.d.ts +61 -0
  14. package/dist/core/assistant-setups/base-assistant-setup.schema.js +29 -0
  15. package/dist/core/assistant-setups/index.d.ts +4 -0
  16. package/dist/core/assistant-setups/index.js +21 -0
  17. package/dist/core/assistant-setups/phone-assistant-setup.schema.d.ts +63 -0
  18. package/dist/core/assistant-setups/phone-assistant-setup.schema.js +14 -0
  19. package/dist/core/assistant-setups/web-assitant-setup.schema.d.ts +56 -0
  20. package/dist/core/assistant-setups/web-assitant-setup.schema.js +17 -0
  21. package/dist/core/base.schema.d.ts +34 -0
  22. package/dist/core/base.schema.js +36 -0
  23. package/dist/core/business-mgt/appointment-additional-info.schema.d.ts +63 -0
  24. package/dist/core/business-mgt/appointment-additional-info.schema.js +53 -0
  25. package/dist/core/business-mgt/appointment-field-config.schema.d.ts +251 -0
  26. package/dist/core/business-mgt/appointment-field-config.schema.js +49 -0
  27. package/dist/core/business-mgt/bookings.shared.schema.d.ts +47 -0
  28. package/dist/core/business-mgt/bookings.shared.schema.js +60 -0
  29. package/dist/core/business-mgt/business-location.schema.d.ts +327 -0
  30. package/dist/core/business-mgt/business-location.schema.js +176 -0
  31. package/dist/core/business-mgt/customer-management/customer-group.schema.d.ts +87 -0
  32. package/dist/core/business-mgt/customer-management/customer-group.schema.js +53 -0
  33. package/dist/core/business-mgt/customer-management/customer.schema.d.ts +156 -0
  34. package/dist/core/business-mgt/customer-management/customer.schema.js +93 -0
  35. package/dist/core/business-mgt/customer-management/index.d.ts +7 -0
  36. package/dist/core/business-mgt/customer-management/index.js +23 -0
  37. package/dist/core/business-mgt/customer-management/shipping-address.schema.d.ts +112 -0
  38. package/dist/core/business-mgt/customer-management/shipping-address.schema.js +79 -0
  39. package/dist/core/business-mgt/customer.schema.d.ts +111 -0
  40. package/dist/core/business-mgt/customer.schema.js +73 -0
  41. package/dist/core/business-mgt/discount-rule.schema.d.ts +183 -0
  42. package/dist/core/business-mgt/discount-rule.schema.js +108 -0
  43. package/dist/core/business-mgt/index.d.ts +16 -0
  44. package/dist/core/business-mgt/index.js +38 -0
  45. package/dist/core/business-mgt/menu-config.schema.d.ts +165 -0
  46. package/dist/core/business-mgt/menu-config.schema.js +86 -0
  47. package/dist/core/business-mgt/menu-management/index.d.ts +11 -0
  48. package/dist/core/business-mgt/menu-management/index.js +27 -0
  49. package/dist/core/business-mgt/menu-management/menu-catalog.schema.d.ts +386 -0
  50. package/dist/core/business-mgt/menu-management/menu-catalog.schema.js +58 -0
  51. package/dist/core/business-mgt/menu-management/menu-config.schema.d.ts +301 -0
  52. package/dist/core/business-mgt/menu-management/menu-config.schema.js +169 -0
  53. package/dist/core/business-mgt/menu-management/menu-item-variant.schema.d.ts +143 -0
  54. package/dist/core/business-mgt/menu-management/menu-item-variant.schema.js +86 -0
  55. package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.d.ts +239 -0
  56. package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.js +117 -0
  57. package/dist/core/business-mgt/menu-management/menu-set.schema.d.ts +420 -0
  58. package/dist/core/business-mgt/menu-management/menu-set.schema.js +283 -0
  59. package/dist/core/business-mgt/menu-management/menu.order.schema.d.ts +654 -0
  60. package/dist/core/business-mgt/menu-management/menu.order.schema.js +204 -0
  61. package/dist/core/business-mgt/menu-management/modifier.schema.d.ts +585 -0
  62. package/dist/core/business-mgt/menu-management/modifier.schema.js +341 -0
  63. package/dist/core/business-mgt/menu.order.schema.d.ts +335 -0
  64. package/dist/core/business-mgt/menu.order.schema.js +149 -0
  65. package/dist/core/business-mgt/order.schema.d.ts +222 -0
  66. package/dist/core/business-mgt/order.schema.js +205 -0
  67. package/dist/core/business-mgt/pricing-rule.shared.schema.d.ts +56 -0
  68. package/dist/core/business-mgt/pricing-rule.shared.schema.js +68 -0
  69. package/dist/core/business-mgt/product-config.schema.d.ts +177 -0
  70. package/dist/core/business-mgt/product-config.schema.js +106 -0
  71. package/dist/core/business-mgt/product-management/index.d.ts +12 -0
  72. package/dist/core/business-mgt/product-management/index.js +28 -0
  73. package/dist/core/business-mgt/product-management/product-axis-binding.schema.d.ts +54 -0
  74. package/dist/core/business-mgt/product-management/product-axis-binding.schema.js +54 -0
  75. package/dist/core/business-mgt/product-management/product-config.schema.d.ts +1042 -0
  76. package/dist/core/business-mgt/product-management/product-config.schema.js +392 -0
  77. package/dist/core/business-mgt/product-management/product-display.schema.d.ts +548 -0
  78. package/dist/core/business-mgt/product-management/product-display.schema.js +80 -0
  79. package/dist/core/business-mgt/product-management/product-order.schema.d.ts +493 -0
  80. package/dist/core/business-mgt/product-management/product-order.schema.js +158 -0
  81. package/dist/core/business-mgt/product-management/product-pricing-rule.schema.d.ts +167 -0
  82. package/dist/core/business-mgt/product-management/product-pricing-rule.schema.js +68 -0
  83. package/dist/core/business-mgt/product-management/product-set.schema.d.ts +488 -0
  84. package/dist/core/business-mgt/product-management/product-set.schema.js +273 -0
  85. package/dist/core/business-mgt/product-management/product-variant-axis.schema.d.ts +156 -0
  86. package/dist/core/business-mgt/product-management/product-variant-axis.schema.js +98 -0
  87. package/dist/core/business-mgt/product-management/product-variant.schema.d.ts +219 -0
  88. package/dist/core/business-mgt/product-management/product-variant.schema.js +130 -0
  89. package/dist/core/business-mgt/product-order.schema.d.ts +326 -0
  90. package/dist/core/business-mgt/product-order.schema.js +153 -0
  91. package/dist/core/business-mgt/property-config.schema.d.ts +621 -0
  92. package/dist/core/business-mgt/property-config.schema.js +224 -0
  93. package/dist/core/business-mgt/property-inquiry.schema.d.ts +222 -0
  94. package/dist/core/business-mgt/property-inquiry.schema.js +112 -0
  95. package/dist/core/business-mgt/property-management/index.d.ts +6 -0
  96. package/dist/core/business-mgt/property-management/index.js +22 -0
  97. package/dist/core/business-mgt/property-management/property-config.schema.d.ts +1306 -0
  98. package/dist/core/business-mgt/property-management/property-config.schema.js +367 -0
  99. package/dist/core/business-mgt/property-management/property-inquiry.schema.d.ts +254 -0
  100. package/dist/core/business-mgt/property-management/property-inquiry.schema.js +131 -0
  101. package/dist/core/business-mgt/reservation-mgt/assignment/index.d.ts +3 -0
  102. package/dist/core/business-mgt/reservation-mgt/assignment/index.js +19 -0
  103. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.d.ts +139 -0
  104. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.js +90 -0
  105. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.d.ts +104 -0
  106. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.js +70 -0
  107. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.d.ts +104 -0
  108. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.js +72 -0
  109. package/dist/core/business-mgt/reservation-mgt/index.d.ts +14 -0
  110. package/dist/core/business-mgt/reservation-mgt/index.js +31 -0
  111. package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.d.ts +180 -0
  112. package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.js +75 -0
  113. package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.d.ts +91 -0
  114. package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.js +57 -0
  115. package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.d.ts +334 -0
  116. package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.js +179 -0
  117. package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.d.ts +195 -0
  118. package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.js +106 -0
  119. package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.d.ts +402 -0
  120. package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.js +198 -0
  121. package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.d.ts +229 -0
  122. package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.js +127 -0
  123. package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.d.ts +382 -0
  124. package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.js +322 -0
  125. package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.d.ts +123 -0
  126. package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.js +83 -0
  127. package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.d.ts +167 -0
  128. package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.js +84 -0
  129. package/dist/core/business-mgt/reservation-mgt/reservation.schema.d.ts +0 -0
  130. package/dist/core/business-mgt/reservation-mgt/reservation.schema.js +153 -0
  131. package/dist/core/business-mgt/reservation-mgt/resource/index.d.ts +4 -0
  132. package/dist/core/business-mgt/reservation-mgt/resource/index.js +20 -0
  133. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.d.ts +157 -0
  134. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.js +76 -0
  135. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.d.ts +137 -0
  136. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.js +94 -0
  137. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.d.ts +713 -0
  138. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.js +363 -0
  139. package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.d.ts +151 -0
  140. package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.js +147 -0
  141. package/dist/core/business-mgt/reservation-resource.schema.d.ts +154 -0
  142. package/dist/core/business-mgt/reservation-resource.schema.js +100 -0
  143. package/dist/core/business-mgt/reservation.schema.d.ts +119 -0
  144. package/dist/core/business-mgt/reservation.schema.js +89 -0
  145. package/dist/core/business-mgt/service-appointment.schema.d.ts +105 -0
  146. package/dist/core/business-mgt/service-appointment.schema.js +69 -0
  147. package/dist/core/business-mgt/service-config.schema.d.ts +453 -0
  148. package/dist/core/business-mgt/service-config.schema.js +102 -0
  149. package/dist/core/business-mgt/service-management/appointment-additional-info.schema.d.ts +110 -0
  150. package/dist/core/business-mgt/service-management/appointment-additional-info.schema.js +78 -0
  151. package/dist/core/business-mgt/service-management/appointment-field-config.schema.d.ts +304 -0
  152. package/dist/core/business-mgt/service-management/appointment-field-config.schema.js +75 -0
  153. package/dist/core/business-mgt/service-management/business-service-config.schema.d.ts +1226 -0
  154. package/dist/core/business-mgt/service-management/business-service-config.schema.js +317 -0
  155. package/dist/core/business-mgt/service-management/index.d.ts +13 -0
  156. package/dist/core/business-mgt/service-management/index.js +29 -0
  157. package/dist/core/business-mgt/service-management/service-appointment.schema.d.ts +531 -0
  158. package/dist/core/business-mgt/service-management/service-appointment.schema.js +116 -0
  159. package/dist/core/business-mgt/service-management/service-person.schema.d.ts +122 -0
  160. package/dist/core/business-mgt/service-management/service-person.schema.js +66 -0
  161. package/dist/core/business-mgt/service-management/service-pricing-rule.schema.d.ts +221 -0
  162. package/dist/core/business-mgt/service-management/service-pricing-rule.schema.js +118 -0
  163. package/dist/core/business-mgt/service-management/service-provider.schema.d.ts +90 -0
  164. package/dist/core/business-mgt/service-management/service-provider.schema.js +54 -0
  165. package/dist/core/business-mgt/service-management/service-slot-query.schema.d.ts +90 -0
  166. package/dist/core/business-mgt/service-management/service-slot-query.schema.js +113 -0
  167. package/dist/core/business-mgt/service-management/service-time-off.schema.d.ts +121 -0
  168. package/dist/core/business-mgt/service-management/service-time-off.schema.js +95 -0
  169. package/dist/core/business-mgt/service-person.schema.d.ts +43 -0
  170. package/dist/core/business-mgt/service-person.schema.js +38 -0
  171. package/dist/core/business-mgt/tax-rule.schema.d.ts +161 -0
  172. package/dist/core/business-mgt/tax-rule.schema.js +90 -0
  173. package/dist/core/conversation/conversation-config.schema.d.ts +644 -0
  174. package/dist/core/conversation/conversation-config.schema.js +351 -0
  175. package/dist/core/conversation/conversation-message.schema.d.ts +307 -0
  176. package/dist/core/conversation/conversation-message.schema.js +275 -0
  177. package/dist/core/conversation/index.d.ts +12 -0
  178. package/dist/core/conversation/index.js +28 -0
  179. package/dist/core/conversation/outbound-call.schema.d.ts +209 -0
  180. package/dist/core/conversation/outbound-call.schema.js +116 -0
  181. package/dist/core/conversation/outbound-email.schema.d.ts +338 -0
  182. package/dist/core/conversation/outbound-email.schema.js +150 -0
  183. package/dist/core/conversation/outbound-sms.schema.d.ts +163 -0
  184. package/dist/core/conversation/outbound-sms.schema.js +85 -0
  185. package/dist/core/conversation/outbound-template.schema.d.ts +375 -0
  186. package/dist/core/conversation/outbound-template.schema.js +160 -0
  187. package/dist/core/conversation/translation-config.schema.d.ts +92 -0
  188. package/dist/core/conversation/translation-config.schema.js +88 -0
  189. package/dist/core/conversation/translation-conversation.schema.d.ts +469 -0
  190. package/dist/core/conversation/translation-conversation.schema.js +175 -0
  191. package/dist/core/index.d.ts +12 -0
  192. package/dist/core/index.js +30 -0
  193. package/dist/core/service-configuration/agent-config.schema.d.ts +236 -0
  194. package/dist/core/service-configuration/agent-config.schema.js +152 -0
  195. package/dist/core/service-configuration/base-agent-setup.d.ts +147 -0
  196. package/dist/core/service-configuration/base-agent-setup.js +123 -0
  197. package/dist/core/service-configuration/call-transfer-config.schema.d.ts +60 -0
  198. package/dist/core/service-configuration/call-transfer-config.schema.js +53 -0
  199. package/dist/core/service-configuration/deployment-config.schema.d.ts +522 -0
  200. package/dist/core/service-configuration/deployment-config.schema.js +271 -0
  201. package/dist/core/service-configuration/dynamic_setup/base-agent-setup.d.ts +130 -0
  202. package/dist/core/service-configuration/dynamic_setup/base-agent-setup.js +110 -0
  203. package/dist/core/service-configuration/dynamic_setup/index.d.ts +10 -0
  204. package/dist/core/service-configuration/dynamic_setup/index.js +26 -0
  205. package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.d.ts +111 -0
  206. package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.js +56 -0
  207. package/dist/core/service-configuration/dynamic_setup/web-agent-setup.d.ts +113 -0
  208. package/dist/core/service-configuration/dynamic_setup/web-agent-setup.js +55 -0
  209. package/dist/core/service-configuration/index.d.ts +17 -0
  210. package/dist/core/service-configuration/index.js +33 -0
  211. package/dist/core/service-configuration/instruction-config.schema.d.ts +183 -0
  212. package/dist/core/service-configuration/instruction-config.schema.js +139 -0
  213. package/dist/core/service-configuration/interaction-channels.schema.d.ts +469 -0
  214. package/dist/core/service-configuration/interaction-channels.schema.js +390 -0
  215. package/dist/core/service-configuration/knowledge.schema.d.ts +107 -0
  216. package/dist/core/service-configuration/knowledge.schema.js +106 -0
  217. package/dist/core/service-configuration/phone-config.schema.d.ts +206 -0
  218. package/dist/core/service-configuration/phone-config.schema.js +121 -0
  219. package/dist/core/service-configuration/phone-number.schema.d.ts +236 -0
  220. package/dist/core/service-configuration/phone-number.schema.js +211 -0
  221. package/dist/core/service-configuration/provisioning-config.d.ts +429 -0
  222. package/dist/core/service-configuration/provisioning-config.js +307 -0
  223. package/dist/core/service-configuration/support-llm.d.ts +95 -0
  224. package/dist/core/service-configuration/support-llm.js +76 -0
  225. package/dist/core/service-configuration/voice-language.schema.d.ts +200 -0
  226. package/dist/core/service-configuration/voice-language.schema.js +166 -0
  227. package/dist/core/type-definitions/account-definitions.d.ts +82 -0
  228. package/dist/core/type-definitions/account-definitions.js +88 -0
  229. package/dist/core/type-definitions/business-definitions.d.ts +394 -0
  230. package/dist/core/type-definitions/business-definitions.js +447 -0
  231. package/dist/core/type-definitions/conversation.type.definition.d.ts +223 -0
  232. package/dist/core/type-definitions/conversation.type.definition.js +236 -0
  233. package/dist/core/type-definitions/display-order.d.ts +154 -0
  234. package/dist/core/type-definitions/display-order.js +154 -0
  235. package/dist/core/type-definitions/dynamic-fields/field-definition.schema.d.ts +165 -0
  236. package/dist/core/type-definitions/dynamic-fields/field-definition.schema.js +97 -0
  237. package/dist/core/type-definitions/dynamic-fields/field-types.d.ts +49 -0
  238. package/dist/core/type-definitions/dynamic-fields/field-types.js +104 -0
  239. package/dist/core/type-definitions/dynamic-fields/index.d.ts +9 -0
  240. package/dist/core/type-definitions/dynamic-fields/index.js +25 -0
  241. package/dist/core/type-definitions/index.d.ts +10 -0
  242. package/dist/core/type-definitions/index.js +26 -0
  243. package/dist/core/type-definitions/knowledge-definitions.d.ts +30 -0
  244. package/dist/core/type-definitions/knowledge-definitions.js +37 -0
  245. package/dist/core/type-definitions/service-config.definitions.d.ts +112 -0
  246. package/dist/core/type-definitions/service-config.definitions.js +135 -0
  247. package/dist/core/validators/channel-validation.d.ts +19 -0
  248. package/dist/core/validators/channel-validation.js +40 -0
  249. package/dist/core/validators/index.d.ts +5 -0
  250. package/dist/core/validators/index.js +21 -0
  251. package/dist/index.d.ts +6 -0
  252. package/dist/index.js +24 -0
  253. package/dist/request/index.d.ts +5 -0
  254. package/dist/request/index.js +21 -0
  255. package/dist/request/models/index.d.ts +6 -0
  256. package/dist/request/models/index.js +22 -0
  257. package/dist/request/models/paginated-quest.schema.d.ts +33 -0
  258. package/dist/request/models/paginated-quest.schema.js +35 -0
  259. package/dist/request/models/paginated-result.schema.d.ts +124 -0
  260. package/dist/request/models/paginated-result.schema.js +94 -0
  261. 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
+ });