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,548 @@
1
+ import z from "zod";
2
+ import { StockStatus } from "../../type-definitions";
3
+ /**
4
+ * @fileoverview Product display schema definitions for catalog rendering.
5
+ * @module business-mgt/product-display
6
+ *
7
+ * These schemas are read-optimized and denormalized for efficient UI rendering.
8
+ * They include resolved data like stock status and computed price ranges.
9
+ */
10
+ /**
11
+ * Product variant display schema.
12
+ * Extends base variant with computed stock status for UI rendering.
13
+ *
14
+ * @typedef {Object} ProductVariantDisplay
15
+ * @property {string} stockStatus - Resolved stock status (in_stock, low_stock, out_of_stock)
16
+ */
17
+ export declare const ProductVariantDisplaySchema: z.ZodObject<{
18
+ id: z.ZodString;
19
+ createdAt: z.ZodOptional<z.ZodNumber>;
20
+ updatedAt: z.ZodOptional<z.ZodNumber>;
21
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
+ productId: z.ZodString;
23
+ axisValues: z.ZodRecord<z.ZodString, z.ZodString>;
24
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ partNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
+ globalTradeItemNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
28
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
29
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
30
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
31
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
32
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
33
+ unitDefinitionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ inventoryUnit: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("../../type-definitions").InventoryUnit>>>;
35
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
36
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
37
+ length: z.ZodNumber;
38
+ width: z.ZodNumber;
39
+ height: z.ZodNumber;
40
+ unit: z.ZodDefault<z.ZodEnum<{
41
+ cm: "cm";
42
+ inches: "inches";
43
+ }>>;
44
+ }, z.core.$strip>>>;
45
+ imageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
+ imageIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
47
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
48
+ channelId: z.ZodString;
49
+ externalVariantId: z.ZodString;
50
+ externalProductId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ }, z.core.$strip>>>>;
52
+ isActive: z.ZodDefault<z.ZodBoolean>;
53
+ isDefault: z.ZodDefault<z.ZodBoolean>;
54
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
55
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
56
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
57
+ stockStatus: z.ZodEnum<typeof StockStatus>;
58
+ }, z.core.$strip>;
59
+ /**
60
+ * Product display schema.
61
+ * Extends base product with variants array and computed price range.
62
+ *
63
+ * @typedef {Object} ProductDisplay
64
+ * @property {Array} variants - Product variants with stock status
65
+ * @property {Object} priceRange - Min/max price across all variants
66
+ * @property {boolean} isVariantSelectable - Whether product uses variant selection
67
+ */
68
+ export declare const ProductDisplaySchema: z.ZodObject<{
69
+ id: z.ZodString;
70
+ createdAt: z.ZodOptional<z.ZodNumber>;
71
+ updatedAt: z.ZodOptional<z.ZodNumber>;
72
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
73
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
74
+ channelId: z.ZodString;
75
+ externalProductId: z.ZodString;
76
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ }, z.core.$strip>>>>;
78
+ name: z.ZodString;
79
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
81
+ imageUrls: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodURL>>>;
82
+ tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
83
+ price: z.ZodNumber;
84
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
85
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
86
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
87
+ skuPattern: z.ZodOptional<z.ZodNullable<z.ZodString>>;
88
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
89
+ barcodeFormat: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").BarcodeFormat>>>;
90
+ isAlcoholic: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodBoolean>>>;
91
+ categoryId: z.ZodString;
92
+ category: z.ZodOptional<z.ZodNullable<z.ZodObject<{
93
+ id: z.ZodString;
94
+ createdAt: z.ZodOptional<z.ZodNumber>;
95
+ updatedAt: z.ZodOptional<z.ZodNumber>;
96
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
98
+ name: z.ZodString;
99
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
102
+ channelId: z.ZodString;
103
+ externalCategoryId: z.ZodString;
104
+ }, z.core.$strip>>>>;
105
+ iconId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
106
+ heroImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
108
+ isDefault: z.ZodDefault<z.ZodBoolean>;
109
+ attributeBindings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
110
+ attributeDefId: z.ZodString;
111
+ required: z.ZodDefault<z.ZodBoolean>;
112
+ displayOrder: z.ZodDefault<z.ZodNumber>;
113
+ }, z.core.$strip>>>>;
114
+ defaultAxisIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
115
+ defaultChannelIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
116
+ taxClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
117
+ targetMargin: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
118
+ ageRestricted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
119
+ requireImage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
120
+ locationScope: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").CategoryLocationScope>>>;
121
+ }, z.core.$strip>>>;
122
+ brand: z.ZodOptional<z.ZodNullable<z.ZodString>>;
123
+ brandId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
124
+ trackInventory: z.ZodDefault<z.ZodBoolean>;
125
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
126
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
127
+ stockedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
128
+ reorderPoint: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
129
+ leadTime: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
130
+ supplierId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
131
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
132
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
133
+ length: z.ZodNumber;
134
+ width: z.ZodNumber;
135
+ height: z.ZodNumber;
136
+ unit: z.ZodDefault<z.ZodEnum<{
137
+ cm: "cm";
138
+ inches: "inches";
139
+ }>>;
140
+ }, z.core.$strip>>>;
141
+ shippingClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
+ HSCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
143
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
144
+ attributeDefId: z.ZodString;
145
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
146
+ }, z.core.$strip>>>>;
147
+ taxRuleIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
148
+ isActive: z.ZodDefault<z.ZodBoolean>;
149
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
150
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
151
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
152
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
153
+ variants: z.ZodArray<z.ZodObject<{
154
+ id: z.ZodString;
155
+ createdAt: z.ZodOptional<z.ZodNumber>;
156
+ updatedAt: z.ZodOptional<z.ZodNumber>;
157
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
158
+ productId: z.ZodString;
159
+ axisValues: z.ZodRecord<z.ZodString, z.ZodString>;
160
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
161
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
162
+ partNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
163
+ globalTradeItemNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
165
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
166
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
167
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
168
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
169
+ unitDefinitionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
+ inventoryUnit: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("../../type-definitions").InventoryUnit>>>;
171
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
172
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
173
+ length: z.ZodNumber;
174
+ width: z.ZodNumber;
175
+ height: z.ZodNumber;
176
+ unit: z.ZodDefault<z.ZodEnum<{
177
+ cm: "cm";
178
+ inches: "inches";
179
+ }>>;
180
+ }, z.core.$strip>>>;
181
+ imageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
182
+ imageIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
183
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
184
+ channelId: z.ZodString;
185
+ externalVariantId: z.ZodString;
186
+ externalProductId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
187
+ }, z.core.$strip>>>>;
188
+ isActive: z.ZodDefault<z.ZodBoolean>;
189
+ isDefault: z.ZodDefault<z.ZodBoolean>;
190
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
191
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
192
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
193
+ stockStatus: z.ZodEnum<typeof StockStatus>;
194
+ }, z.core.$strip>>;
195
+ priceRange: z.ZodOptional<z.ZodNullable<z.ZodObject<{
196
+ min: z.ZodNumber;
197
+ max: z.ZodNumber;
198
+ }, z.core.$strip>>>;
199
+ isVariantSelectable: z.ZodDefault<z.ZodBoolean>;
200
+ }, z.core.$strip>;
201
+ /**
202
+ * Product catalog display schema.
203
+ * Represents a category with its complete list of products for catalog rendering.
204
+ *
205
+ * @typedef {Object} ProductCatalogDisplay
206
+ * @property {Object} productCategory - The product category
207
+ * @property {Array} items - Products in this category with variants
208
+ */
209
+ export declare const ProductCatalogDisplaySchema: z.ZodObject<{
210
+ productCategory: z.ZodObject<{
211
+ id: z.ZodString;
212
+ createdAt: z.ZodOptional<z.ZodNumber>;
213
+ updatedAt: z.ZodOptional<z.ZodNumber>;
214
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
215
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
216
+ name: z.ZodString;
217
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
218
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
220
+ channelId: z.ZodString;
221
+ externalCategoryId: z.ZodString;
222
+ }, z.core.$strip>>>>;
223
+ iconId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
224
+ heroImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
225
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
226
+ isDefault: z.ZodDefault<z.ZodBoolean>;
227
+ attributeBindings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
228
+ attributeDefId: z.ZodString;
229
+ required: z.ZodDefault<z.ZodBoolean>;
230
+ displayOrder: z.ZodDefault<z.ZodNumber>;
231
+ }, z.core.$strip>>>>;
232
+ defaultAxisIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
233
+ defaultChannelIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
234
+ taxClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
235
+ targetMargin: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
236
+ ageRestricted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
237
+ requireImage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
238
+ locationScope: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").CategoryLocationScope>>>;
239
+ }, z.core.$strip>;
240
+ items: z.ZodArray<z.ZodObject<{
241
+ id: z.ZodString;
242
+ createdAt: z.ZodOptional<z.ZodNumber>;
243
+ updatedAt: z.ZodOptional<z.ZodNumber>;
244
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
245
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
246
+ channelId: z.ZodString;
247
+ externalProductId: z.ZodString;
248
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
249
+ }, z.core.$strip>>>>;
250
+ name: z.ZodString;
251
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
252
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
253
+ imageUrls: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodURL>>>;
254
+ tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
255
+ price: z.ZodNumber;
256
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
257
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
258
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
259
+ skuPattern: z.ZodOptional<z.ZodNullable<z.ZodString>>;
260
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
261
+ barcodeFormat: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").BarcodeFormat>>>;
262
+ isAlcoholic: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodBoolean>>>;
263
+ categoryId: z.ZodString;
264
+ category: z.ZodOptional<z.ZodNullable<z.ZodObject<{
265
+ id: z.ZodString;
266
+ createdAt: z.ZodOptional<z.ZodNumber>;
267
+ updatedAt: z.ZodOptional<z.ZodNumber>;
268
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
269
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
270
+ name: z.ZodString;
271
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
272
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
273
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
274
+ channelId: z.ZodString;
275
+ externalCategoryId: z.ZodString;
276
+ }, z.core.$strip>>>>;
277
+ iconId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
278
+ heroImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
279
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
280
+ isDefault: z.ZodDefault<z.ZodBoolean>;
281
+ attributeBindings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
282
+ attributeDefId: z.ZodString;
283
+ required: z.ZodDefault<z.ZodBoolean>;
284
+ displayOrder: z.ZodDefault<z.ZodNumber>;
285
+ }, z.core.$strip>>>>;
286
+ defaultAxisIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
287
+ defaultChannelIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
288
+ taxClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
289
+ targetMargin: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
290
+ ageRestricted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
291
+ requireImage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
292
+ locationScope: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").CategoryLocationScope>>>;
293
+ }, z.core.$strip>>>;
294
+ brand: z.ZodOptional<z.ZodNullable<z.ZodString>>;
295
+ brandId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
296
+ trackInventory: z.ZodDefault<z.ZodBoolean>;
297
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
298
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
299
+ stockedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
300
+ reorderPoint: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
301
+ leadTime: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
302
+ supplierId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
303
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
304
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
305
+ length: z.ZodNumber;
306
+ width: z.ZodNumber;
307
+ height: z.ZodNumber;
308
+ unit: z.ZodDefault<z.ZodEnum<{
309
+ cm: "cm";
310
+ inches: "inches";
311
+ }>>;
312
+ }, z.core.$strip>>>;
313
+ shippingClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
314
+ HSCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
315
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
316
+ attributeDefId: z.ZodString;
317
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
318
+ }, z.core.$strip>>>>;
319
+ taxRuleIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
320
+ isActive: z.ZodDefault<z.ZodBoolean>;
321
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
322
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
323
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
324
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
325
+ variants: z.ZodArray<z.ZodObject<{
326
+ id: z.ZodString;
327
+ createdAt: z.ZodOptional<z.ZodNumber>;
328
+ updatedAt: z.ZodOptional<z.ZodNumber>;
329
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
330
+ productId: z.ZodString;
331
+ axisValues: z.ZodRecord<z.ZodString, z.ZodString>;
332
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
333
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
334
+ partNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
335
+ globalTradeItemNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
336
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
337
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
338
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
339
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
340
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
341
+ unitDefinitionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
342
+ inventoryUnit: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("../../type-definitions").InventoryUnit>>>;
343
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
344
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
345
+ length: z.ZodNumber;
346
+ width: z.ZodNumber;
347
+ height: z.ZodNumber;
348
+ unit: z.ZodDefault<z.ZodEnum<{
349
+ cm: "cm";
350
+ inches: "inches";
351
+ }>>;
352
+ }, z.core.$strip>>>;
353
+ imageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
354
+ imageIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
355
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
356
+ channelId: z.ZodString;
357
+ externalVariantId: z.ZodString;
358
+ externalProductId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
359
+ }, z.core.$strip>>>>;
360
+ isActive: z.ZodDefault<z.ZodBoolean>;
361
+ isDefault: z.ZodDefault<z.ZodBoolean>;
362
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
363
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
364
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
365
+ stockStatus: z.ZodEnum<typeof StockStatus>;
366
+ }, z.core.$strip>>;
367
+ priceRange: z.ZodOptional<z.ZodNullable<z.ZodObject<{
368
+ min: z.ZodNumber;
369
+ max: z.ZodNumber;
370
+ }, z.core.$strip>>>;
371
+ isVariantSelectable: z.ZodDefault<z.ZodBoolean>;
372
+ }, z.core.$strip>>;
373
+ }, z.core.$strip>;
374
+ /**
375
+ * Business product catalog display schema.
376
+ * Complete product catalog organized by categories for full catalog rendering.
377
+ *
378
+ * @typedef {Array} BusinessProductCatalogDisplay
379
+ */
380
+ export declare const BusinessProductCatalogDisplaySchema: z.ZodArray<z.ZodObject<{
381
+ productCategory: z.ZodObject<{
382
+ id: z.ZodString;
383
+ createdAt: z.ZodOptional<z.ZodNumber>;
384
+ updatedAt: z.ZodOptional<z.ZodNumber>;
385
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
386
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
387
+ name: z.ZodString;
388
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
389
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
390
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
391
+ channelId: z.ZodString;
392
+ externalCategoryId: z.ZodString;
393
+ }, z.core.$strip>>>>;
394
+ iconId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
395
+ heroImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
396
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
397
+ isDefault: z.ZodDefault<z.ZodBoolean>;
398
+ attributeBindings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
399
+ attributeDefId: z.ZodString;
400
+ required: z.ZodDefault<z.ZodBoolean>;
401
+ displayOrder: z.ZodDefault<z.ZodNumber>;
402
+ }, z.core.$strip>>>>;
403
+ defaultAxisIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
404
+ defaultChannelIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
405
+ taxClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
406
+ targetMargin: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
407
+ ageRestricted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
408
+ requireImage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
409
+ locationScope: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").CategoryLocationScope>>>;
410
+ }, z.core.$strip>;
411
+ items: z.ZodArray<z.ZodObject<{
412
+ id: z.ZodString;
413
+ createdAt: z.ZodOptional<z.ZodNumber>;
414
+ updatedAt: z.ZodOptional<z.ZodNumber>;
415
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
416
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
417
+ channelId: z.ZodString;
418
+ externalProductId: z.ZodString;
419
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
420
+ }, z.core.$strip>>>>;
421
+ name: z.ZodString;
422
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
423
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
424
+ imageUrls: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodURL>>>;
425
+ tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
426
+ price: z.ZodNumber;
427
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
428
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
429
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
430
+ skuPattern: z.ZodOptional<z.ZodNullable<z.ZodString>>;
431
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
432
+ barcodeFormat: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").BarcodeFormat>>>;
433
+ isAlcoholic: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodBoolean>>>;
434
+ categoryId: z.ZodString;
435
+ category: z.ZodOptional<z.ZodNullable<z.ZodObject<{
436
+ id: z.ZodString;
437
+ createdAt: z.ZodOptional<z.ZodNumber>;
438
+ updatedAt: z.ZodOptional<z.ZodNumber>;
439
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
440
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
441
+ name: z.ZodString;
442
+ slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
443
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
444
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
445
+ channelId: z.ZodString;
446
+ externalCategoryId: z.ZodString;
447
+ }, z.core.$strip>>>>;
448
+ iconId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
449
+ heroImageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
450
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
451
+ isDefault: z.ZodDefault<z.ZodBoolean>;
452
+ attributeBindings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
453
+ attributeDefId: z.ZodString;
454
+ required: z.ZodDefault<z.ZodBoolean>;
455
+ displayOrder: z.ZodDefault<z.ZodNumber>;
456
+ }, z.core.$strip>>>>;
457
+ defaultAxisIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
458
+ defaultChannelIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
459
+ taxClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
460
+ targetMargin: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
461
+ ageRestricted: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
462
+ requireImage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
463
+ locationScope: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("./product-config.schema").CategoryLocationScope>>>;
464
+ }, z.core.$strip>>>;
465
+ brand: z.ZodOptional<z.ZodNullable<z.ZodString>>;
466
+ brandId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
467
+ trackInventory: z.ZodDefault<z.ZodBoolean>;
468
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
469
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
470
+ stockedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
471
+ reorderPoint: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
472
+ leadTime: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
473
+ supplierId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
474
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
475
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
476
+ length: z.ZodNumber;
477
+ width: z.ZodNumber;
478
+ height: z.ZodNumber;
479
+ unit: z.ZodDefault<z.ZodEnum<{
480
+ cm: "cm";
481
+ inches: "inches";
482
+ }>>;
483
+ }, z.core.$strip>>>;
484
+ shippingClassId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
485
+ HSCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
486
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
487
+ attributeDefId: z.ZodString;
488
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
489
+ }, z.core.$strip>>>>;
490
+ taxRuleIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
491
+ isActive: z.ZodDefault<z.ZodBoolean>;
492
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
493
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
494
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
495
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
496
+ variants: z.ZodArray<z.ZodObject<{
497
+ id: z.ZodString;
498
+ createdAt: z.ZodOptional<z.ZodNumber>;
499
+ updatedAt: z.ZodOptional<z.ZodNumber>;
500
+ productRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
501
+ productId: z.ZodString;
502
+ axisValues: z.ZodRecord<z.ZodString, z.ZodString>;
503
+ sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
504
+ barcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
505
+ partNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
506
+ globalTradeItemNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
507
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
508
+ cost: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
509
+ compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
510
+ stockQuantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
511
+ lowStockThreshold: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
512
+ unitDefinitionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
513
+ inventoryUnit: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof import("../../type-definitions").InventoryUnit>>>;
514
+ weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
515
+ dimensions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
516
+ length: z.ZodNumber;
517
+ width: z.ZodNumber;
518
+ height: z.ZodNumber;
519
+ unit: z.ZodDefault<z.ZodEnum<{
520
+ cm: "cm";
521
+ inches: "inches";
522
+ }>>;
523
+ }, z.core.$strip>>>;
524
+ imageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
525
+ imageIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
526
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
527
+ channelId: z.ZodString;
528
+ externalVariantId: z.ZodString;
529
+ externalProductId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
530
+ }, z.core.$strip>>>>;
531
+ isActive: z.ZodDefault<z.ZodBoolean>;
532
+ isDefault: z.ZodDefault<z.ZodBoolean>;
533
+ orderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
534
+ recentOrderCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
535
+ lastOrderedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
536
+ stockStatus: z.ZodEnum<typeof StockStatus>;
537
+ }, z.core.$strip>>;
538
+ priceRange: z.ZodOptional<z.ZodNullable<z.ZodObject<{
539
+ min: z.ZodNumber;
540
+ max: z.ZodNumber;
541
+ }, z.core.$strip>>>;
542
+ isVariantSelectable: z.ZodDefault<z.ZodBoolean>;
543
+ }, z.core.$strip>>;
544
+ }, z.core.$strip>>;
545
+ export type ProductVariantDisplay = z.infer<typeof ProductVariantDisplaySchema>;
546
+ export type ProductDisplay = z.infer<typeof ProductDisplaySchema>;
547
+ export type ProductCatalogDisplay = z.infer<typeof ProductCatalogDisplaySchema>;
548
+ export type BusinessProductCatalogDisplay = z.infer<typeof BusinessProductCatalogDisplaySchema>;
@@ -0,0 +1,80 @@
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.BusinessProductCatalogDisplaySchema = exports.ProductCatalogDisplaySchema = exports.ProductDisplaySchema = exports.ProductVariantDisplaySchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ const product_config_schema_1 = require("./product-config.schema");
9
+ // Note: ProductSetDisplaySchema available from ./product-set.schema if needed
10
+ const product_variant_schema_1 = require("./product-variant.schema");
11
+ const type_definitions_1 = require("../../type-definitions");
12
+ /**
13
+ * @fileoverview Product display schema definitions for catalog rendering.
14
+ * @module business-mgt/product-display
15
+ *
16
+ * These schemas are read-optimized and denormalized for efficient UI rendering.
17
+ * They include resolved data like stock status and computed price ranges.
18
+ */
19
+ // ============================================================================
20
+ // PRODUCT VARIANT DISPLAY SCHEMA
21
+ // Extended variant with resolved stock status for catalog display
22
+ // ============================================================================
23
+ /**
24
+ * Product variant display schema.
25
+ * Extends base variant with computed stock status for UI rendering.
26
+ *
27
+ * @typedef {Object} ProductVariantDisplay
28
+ * @property {string} stockStatus - Resolved stock status (in_stock, low_stock, out_of_stock)
29
+ */
30
+ exports.ProductVariantDisplaySchema = product_variant_schema_1.ProductVariantSchema.extend({
31
+ stockStatus: zod_1.default.enum(type_definitions_1.StockStatus).describe("Resolved stock status based on inventory tracking settings and current stock quantity. Used for UI indicators (in_stock, low_stock, out_of_stock)."),
32
+ }).describe("Product variant with resolved stock status for catalog display");
33
+ // ============================================================================
34
+ // PRODUCT DISPLAY SCHEMA
35
+ // Extended product with variants and computed price range
36
+ // ============================================================================
37
+ /**
38
+ * Product display schema.
39
+ * Extends base product with variants array and computed price range.
40
+ *
41
+ * @typedef {Object} ProductDisplay
42
+ * @property {Array} variants - Product variants with stock status
43
+ * @property {Object} priceRange - Min/max price across all variants
44
+ * @property {boolean} isVariantSelectable - Whether product uses variant selection
45
+ */
46
+ exports.ProductDisplaySchema = product_config_schema_1.BusinessProductSchema.safeExtend({
47
+ variants: zod_1.default.array(exports.ProductVariantDisplaySchema).min(1, "Every product must have at least one variant").describe("Product variants with resolved stock status. Minimum one variant required per product."),
48
+ priceRange: zod_1.default.object({
49
+ min: zod_1.default.number().nonnegative().describe("Minimum price across all active variants"),
50
+ max: zod_1.default.number().nonnegative().describe("Maximum price across all active variants"),
51
+ }).nullable().optional().describe("Computed min/max price range across all active variants. Null if no variants have pricing."),
52
+ isVariantSelectable: zod_1.default.boolean().default(true).describe("Whether this product requires variant selection in UI. False for single-variant products."),
53
+ }).describe("Product with variants and computed price range for catalog display");
54
+ // ============================================================================
55
+ // PRODUCT CATALOG DISPLAY SCHEMA
56
+ // Category with its products for catalog rendering
57
+ // ============================================================================
58
+ /**
59
+ * Product catalog display schema.
60
+ * Represents a category with its complete list of products for catalog rendering.
61
+ *
62
+ * @typedef {Object} ProductCatalogDisplay
63
+ * @property {Object} productCategory - The product category
64
+ * @property {Array} items - Products in this category with variants
65
+ */
66
+ exports.ProductCatalogDisplaySchema = zod_1.default.object({
67
+ productCategory: product_config_schema_1.ProductCategorySchema.describe("Product category containing these items"),
68
+ items: zod_1.default.array(exports.ProductDisplaySchema).describe("Products in this category with variants and computed price ranges"),
69
+ }).describe("Product category with its products for catalog display");
70
+ // ============================================================================
71
+ // BUSINESS PRODUCT CATALOG DISPLAY SCHEMA
72
+ // Complete catalog organized by categories
73
+ // ============================================================================
74
+ /**
75
+ * Business product catalog display schema.
76
+ * Complete product catalog organized by categories for full catalog rendering.
77
+ *
78
+ * @typedef {Array} BusinessProductCatalogDisplay
79
+ */
80
+ exports.BusinessProductCatalogDisplaySchema = zod_1.default.array(exports.ProductCatalogDisplaySchema).describe("Complete business product catalog organized by categories for display");