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,1226 @@
1
+ import z from "zod";
2
+ import { ServiceDepositStrategy } from "../bookings.shared.schema";
3
+ /**
4
+ * @fileoverview Business Service Configuration schema definitions.
5
+ * @module business-mgt/business-service-config
6
+ *
7
+ * Manages service offerings including pricing, scheduling, availability,
8
+ * and booking rules for appointment-based businesses.
9
+ */
10
+ /**
11
+ * Service pricing mode options.
12
+ * @enum {string}
13
+ */
14
+ export declare enum ServicePriceMode {
15
+ /** Fixed price for the service */
16
+ FIXED = "FIXED",
17
+ /** Starting price, final may vary */
18
+ STARTS_AT = "STARTS_AT",
19
+ /** Variable pricing based on factors */
20
+ VARIABLE = "VARIABLE"
21
+ }
22
+ /**
23
+ * Service gratuity mode options.
24
+ * @enum {string}
25
+ */
26
+ export declare enum ServiceGratuityMode {
27
+ /** No gratuity accepted */
28
+ NONE = "NONE",
29
+ /** Gratuity is optional */
30
+ OPTIONAL = "OPTIONAL",
31
+ /** Gratuity is required */
32
+ REQUIRED = "REQUIRED"
33
+ }
34
+ /**
35
+ * Service availability mode options.
36
+ * @enum {string}
37
+ */
38
+ export declare enum ServiceAvailabilityMode {
39
+ /** Service available 24/7 */
40
+ ALWAYS = "ALWAYS",
41
+ /** Service follows custom schedule */
42
+ SCHEDULED = "SCHEDULED",
43
+ /** Service inherits business hours */
44
+ INHERIT = "INHERIT"
45
+ }
46
+ /**
47
+ * Per-channel service category ID mapping.
48
+ * @typedef {Object} ServiceCategoryChannelMapping
49
+ * @property {string} channelId - Channel ID (e.g., yelp, google, mindbody)
50
+ * @property {string} externalCategoryId - External category ID for this specific channel
51
+ */
52
+ export declare const ServiceCategoryChannelMappingSchema: z.ZodObject<{
53
+ channelId: z.ZodString;
54
+ externalCategoryId: z.ZodString;
55
+ }, z.core.$strip>;
56
+ /**
57
+ * Per-channel external service ID mapping.
58
+ * @typedef {Object} ServiceChannelMapping
59
+ * @property {string} channelId - Channel ID (e.g., yelp, google, mindbody)
60
+ * @property {string} externalServiceId - External service ID for this specific channel
61
+ * @property {string|null} [externalCategoryId] - External category ID in this channel, if needed for sync payloads
62
+ */
63
+ export declare const ServiceChannelMappingSchema: z.ZodObject<{
64
+ channelId: z.ZodString;
65
+ externalServiceId: z.ZodString;
66
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
67
+ }, z.core.$strip>;
68
+ /**
69
+ * Service duration segments schema.
70
+ * Breaks down service time into distinct phases.
71
+ * @typedef {Object} ServiceDurationSegments
72
+ * @property {number} prep - Preparation time in minutes
73
+ * @property {number} active - Hands-on active service time in minutes
74
+ * @property {number} processing - Processing/wait time in minutes
75
+ * @property {number} finish - Finishing time in minutes
76
+ * @property {number} turnover - Turnover/reset time in minutes
77
+ */
78
+ export declare const ServiceDurationSegmentsSchema: z.ZodObject<{
79
+ prep: z.ZodDefault<z.ZodNumber>;
80
+ active: z.ZodDefault<z.ZodNumber>;
81
+ processing: z.ZodDefault<z.ZodNumber>;
82
+ finish: z.ZodDefault<z.ZodNumber>;
83
+ turnover: z.ZodDefault<z.ZodNumber>;
84
+ }, z.core.$strip>;
85
+ /**
86
+ * Service date range schema.
87
+ * Defines seasonal availability or blackout periods.
88
+ * @typedef {Object} ServiceDateRange
89
+ * @property {string} startDate - Start date in ISO format (YYYY-MM-DD)
90
+ * @property {string} endDate - End date in ISO format (YYYY-MM-DD)
91
+ * @property {boolean} isExclusion - If true, service is NOT available during this range
92
+ */
93
+ export declare const ServiceDateRangeSchema: z.ZodObject<{
94
+ startDate: z.ZodString;
95
+ endDate: z.ZodString;
96
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
97
+ }, z.core.$strip>;
98
+ /**
99
+ * Service availability schema.
100
+ * Configures when a service is available for booking.
101
+ * @typedef {Object} ServiceAvailability
102
+ * @property {ServiceAvailabilityMode} mode - Availability mode: ALWAYS (24/7), SCHEDULED (custom), INHERIT (from business hours)
103
+ * @property {SimpleWeeklySchedule} [weeklySchedule] - Weekly availability schedule (required when mode is SCHEDULED)
104
+ * @property {ServiceDateRange[]} [dateRanges] - Date ranges for seasonal availability or blackout periods
105
+ */
106
+ export declare const ServiceAvailabilitySchema: z.ZodObject<{
107
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
108
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
109
+ isOpen: z.ZodBoolean;
110
+ startTime: z.ZodString;
111
+ endTime: z.ZodString;
112
+ }, z.core.$strip>>>;
113
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
114
+ startDate: z.ZodString;
115
+ endDate: z.ZodString;
116
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
117
+ }, z.core.$strip>>>;
118
+ }, z.core.$strip>;
119
+ export type ServiceDateRange = z.infer<typeof ServiceDateRangeSchema>;
120
+ export type ServiceAvailability = z.infer<typeof ServiceAvailabilitySchema>;
121
+ /**
122
+ * Service-level appointment field configuration (embedded).
123
+ * Inherits from organization-level config and allows service-specific customization.
124
+ * @typedef {Object} ServiceAppointmentFieldConfig
125
+ * @property {string[]} inheritedFieldKeys - Field keys inherited from organization-level config
126
+ * @property {FieldOverride[]} fieldOverrides - Service-specific field overrides
127
+ * @property {FieldDefinition[]} additionalFields - Additional fields specific to this service
128
+ * @property {boolean} isActive - Whether the field configuration is active
129
+ * @property {boolean} reuseDetails - Whether to reuse customer details from previous bookings
130
+ */
131
+ export declare const ServiceAppointmentFieldConfigSchema: z.ZodObject<{
132
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
133
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
134
+ fieldKey: z.ZodString;
135
+ label: z.ZodOptional<z.ZodString>;
136
+ validation: z.ZodOptional<z.ZodObject<{
137
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
138
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
139
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
140
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
141
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
142
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
143
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
144
+ }, z.core.$strip>>;
145
+ uiHints: z.ZodOptional<z.ZodObject<{
146
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
147
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
148
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
149
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
150
+ full: "full";
151
+ half: "half";
152
+ third: "third";
153
+ }>>>;
154
+ }, z.core.$strip>>;
155
+ defaultValue: z.ZodOptional<z.ZodAny>;
156
+ isActive: z.ZodOptional<z.ZodBoolean>;
157
+ }, z.core.$strip>>>;
158
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
159
+ fieldKey: z.ZodString;
160
+ fieldType: z.ZodEnum<{
161
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
162
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
163
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
164
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
165
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
166
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
167
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
168
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
169
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
170
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
171
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
172
+ }>;
173
+ label: z.ZodString;
174
+ description: z.ZodOptional<z.ZodString>;
175
+ validation: z.ZodOptional<z.ZodObject<{
176
+ required: z.ZodOptional<z.ZodBoolean>;
177
+ minLength: z.ZodOptional<z.ZodNumber>;
178
+ maxLength: z.ZodOptional<z.ZodNumber>;
179
+ min: z.ZodOptional<z.ZodNumber>;
180
+ max: z.ZodOptional<z.ZodNumber>;
181
+ pattern: z.ZodOptional<z.ZodString>;
182
+ patternMessage: z.ZodOptional<z.ZodString>;
183
+ }, z.core.$strip>>;
184
+ uiHints: z.ZodOptional<z.ZodObject<{
185
+ placeholder: z.ZodOptional<z.ZodString>;
186
+ helpText: z.ZodOptional<z.ZodString>;
187
+ displayOrder: z.ZodOptional<z.ZodNumber>;
188
+ width: z.ZodOptional<z.ZodEnum<{
189
+ full: "full";
190
+ half: "half";
191
+ third: "third";
192
+ }>>;
193
+ }, z.core.$strip>>;
194
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
195
+ value: z.ZodString;
196
+ label: z.ZodString;
197
+ displayOrder: z.ZodOptional<z.ZodNumber>;
198
+ }, z.core.$strip>>>;
199
+ defaultValue: z.ZodOptional<z.ZodAny>;
200
+ isActive: z.ZodOptional<z.ZodBoolean>;
201
+ condition: z.ZodOptional<z.ZodObject<{
202
+ dependsOn: z.ZodString;
203
+ operator: z.ZodEnum<{
204
+ equals: "equals";
205
+ notEquals: "notEquals";
206
+ contains: "contains";
207
+ isEmpty: "isEmpty";
208
+ isNotEmpty: "isNotEmpty";
209
+ greaterThan: "greaterThan";
210
+ lessThan: "lessThan";
211
+ }>;
212
+ value: z.ZodOptional<z.ZodAny>;
213
+ }, z.core.$strip>>;
214
+ groupKey: z.ZodOptional<z.ZodString>;
215
+ }, z.core.$strip>>>;
216
+ isActive: z.ZodDefault<z.ZodBoolean>;
217
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
218
+ }, z.core.$strip>;
219
+ export type ServiceAppointmentFieldConfig = z.infer<typeof ServiceAppointmentFieldConfigSchema>;
220
+ /**
221
+ * Service Category schema.
222
+ * Groups related services for organization and display.
223
+ * @typedef {Object} ServiceCategory
224
+ * @property {string} id - Unique identifier
225
+ * @property {string} [serviceRevisionId] - Optional service revision ID for version-scoped data
226
+ * @property {string} name - Category name (e.g., Hair Services, Spa Treatments)
227
+ * @property {string|null} [description] - Category description
228
+ * @property {string|null} [imageUrl] - Category image URL
229
+ * @property {ServiceCategoryChannelMapping[]|null} [channelMappings] - Per-channel service category ID mappings
230
+ * @property {number|null} [displayOrder] - Display order in listing
231
+ * @property {boolean} isActive - Whether this category is active
232
+ * @property {Date} createdAt - Creation timestamp
233
+ * @property {Date} updatedAt - Last update timestamp
234
+ */
235
+ export declare const ServiceCategorySchema: z.ZodObject<{
236
+ id: z.ZodString;
237
+ createdAt: z.ZodOptional<z.ZodNumber>;
238
+ updatedAt: z.ZodOptional<z.ZodNumber>;
239
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
240
+ name: z.ZodString;
241
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
242
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
243
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
244
+ channelId: z.ZodString;
245
+ externalCategoryId: z.ZodString;
246
+ }, z.core.$strip>>>>;
247
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
248
+ isActive: z.ZodDefault<z.ZodBoolean>;
249
+ }, z.core.$strip>;
250
+ /**
251
+ * Schema for creating a new service category.
252
+ * Omits auto-generated fields.
253
+ */
254
+ export declare const CreateServiceCategorySchema: z.ZodObject<{
255
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
256
+ name: z.ZodString;
257
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
258
+ isActive: z.ZodDefault<z.ZodBoolean>;
259
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
260
+ channelId: z.ZodString;
261
+ externalCategoryId: z.ZodString;
262
+ }, z.core.$strip>>>>;
263
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
264
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
265
+ placement: z.ZodOptional<z.ZodObject<{
266
+ placementIntent: z.ZodObject<{
267
+ mode: z.ZodEnum<{
268
+ BEGINNING: "BEGINNING";
269
+ END: "END";
270
+ KEEP_CURRENT: "KEEP_CURRENT";
271
+ BEFORE_ITEM: "BEFORE_ITEM";
272
+ AFTER_ITEM: "AFTER_ITEM";
273
+ ABSOLUTE_INDEX: "ABSOLUTE_INDEX";
274
+ }>;
275
+ }, z.core.$strip>;
276
+ anchorItemId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
277
+ absoluteIndex: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
278
+ }, z.core.$strip>>;
279
+ }, z.core.$strip>;
280
+ /**
281
+ * Schema for updating an existing service category.
282
+ * All fields optional except id (required).
283
+ */
284
+ export declare const UpdateServiceCategorySchema: z.ZodObject<{
285
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
286
+ name: z.ZodOptional<z.ZodString>;
287
+ description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
288
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
289
+ channelMappings: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
290
+ channelId: z.ZodString;
291
+ externalCategoryId: z.ZodString;
292
+ }, z.core.$strip>>>>>;
293
+ imageUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodURL>>>;
294
+ serviceRevisionId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
295
+ placement: z.ZodOptional<z.ZodOptional<z.ZodObject<{
296
+ placementIntent: z.ZodObject<{
297
+ mode: z.ZodEnum<{
298
+ BEGINNING: "BEGINNING";
299
+ END: "END";
300
+ KEEP_CURRENT: "KEEP_CURRENT";
301
+ BEFORE_ITEM: "BEFORE_ITEM";
302
+ AFTER_ITEM: "AFTER_ITEM";
303
+ ABSOLUTE_INDEX: "ABSOLUTE_INDEX";
304
+ }>;
305
+ }, z.core.$strip>;
306
+ anchorItemId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
307
+ absoluteIndex: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
308
+ }, z.core.$strip>>>;
309
+ id: z.ZodString;
310
+ }, z.core.$strip>;
311
+ export type ServiceCategoryChannelMapping = z.infer<typeof ServiceCategoryChannelMappingSchema>;
312
+ export type ServiceChannelMapping = z.infer<typeof ServiceChannelMappingSchema>;
313
+ export type ServiceCategory = z.infer<typeof ServiceCategorySchema>;
314
+ export type CreateServiceCategory = z.infer<typeof CreateServiceCategorySchema>;
315
+ export type UpdateServiceCategory = z.infer<typeof UpdateServiceCategorySchema>;
316
+ /**
317
+ * Business Service Configuration schema.
318
+ * Defines a service offering with pricing, scheduling, and booking rules.
319
+ * @typedef {Object} BusinessService
320
+ * @property {string} id - Unique identifier
321
+ * @property {string} [serviceRevisionId] - Optional service revision ID for version-scoped data
322
+ * @property {string} name - Name of the service offered
323
+ * @property {string|null} [description] - Detailed description of the service
324
+ * @property {string|null} [imageUrl] - Service image URL
325
+ * @property {string|null} [categoryId] - Service category ID
326
+ * @property {string|null} [bookingCode] - Short booking code for quick reference
327
+ * @property {number} duration - Service duration in minutes (max 8 hours)
328
+ * @property {ServiceDurationSegments|null} [durationSegments] - Segmented service duration breakdown
329
+ * @property {number} bufferBefore - Buffer before appointment start in minutes
330
+ * @property {number} bufferAfter - Buffer after appointment end in minutes
331
+ * @property {boolean} isBookable - Whether this service can be booked online
332
+ * @property {boolean|null} [allowsProcessingChairSwap] - Whether client can switch resources during processing segment
333
+ * @property {ServiceAvailability|null} [serviceAvailability] - Service-specific availability schedule
334
+ * @property {number|null} [maxConcurrentBookings] - Max simultaneous bookings for this service
335
+ * @property {number} basePrice - Base service price in account currency
336
+ * @property {ServicePriceMode|null} [priceMode] - Service pricing mode
337
+ * @property {ServiceGratuityMode|null} [gratuityMode] - Gratuity policy for this service
338
+ * @property {boolean} isActive - Whether the service is currently available
339
+ * @property {number|null} [displayOrder] - Display order in service listings
340
+ * @property {ServiceChannelMapping[]|null} [channelMappings] - Per-channel service ID mappings
341
+ * @property {string|null} [primaryServiceUserAccountId] - User account primarily responsible for this service
342
+ * @property {string[]} requiredResources - Required resource IDs for this service
343
+ * @property {ServiceBookingRules|null} [bookingRules] - Service-specific booking constraints
344
+ * @property {ServiceDepositStrategy|null} [depositStrategy] - Deposit strategy for this service
345
+ * @property {number|null} [depositValue] - Deposit amount or percentage depending on strategy
346
+ * @property {number} lateCancelFeePercent - Late cancellation fee percentage
347
+ * @property {number} noShowFeePercent - No-show fee percentage
348
+ * @property {ServiceAppointmentFieldConfig|null} [requiredDatafieldConfig] - Dynamic field configuration
349
+ * @property {Date} createdAt - Creation timestamp
350
+ * @property {Date} updatedAt - Last update timestamp
351
+ */
352
+ export declare const BusinessServiceConfigSchema: z.ZodObject<{
353
+ id: z.ZodString;
354
+ createdAt: z.ZodOptional<z.ZodNumber>;
355
+ updatedAt: z.ZodOptional<z.ZodNumber>;
356
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
357
+ name: z.ZodString;
358
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
359
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
360
+ categoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
361
+ bookingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
362
+ duration: z.ZodDefault<z.ZodNumber>;
363
+ durationSegments: z.ZodOptional<z.ZodNullable<z.ZodObject<{
364
+ prep: z.ZodDefault<z.ZodNumber>;
365
+ active: z.ZodDefault<z.ZodNumber>;
366
+ processing: z.ZodDefault<z.ZodNumber>;
367
+ finish: z.ZodDefault<z.ZodNumber>;
368
+ turnover: z.ZodDefault<z.ZodNumber>;
369
+ }, z.core.$strip>>>;
370
+ bufferBefore: z.ZodDefault<z.ZodNumber>;
371
+ bufferAfter: z.ZodDefault<z.ZodNumber>;
372
+ isBookable: z.ZodDefault<z.ZodBoolean>;
373
+ allowsProcessingChairSwap: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
374
+ serviceAvailability: z.ZodOptional<z.ZodNullable<z.ZodObject<{
375
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
376
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
377
+ isOpen: z.ZodBoolean;
378
+ startTime: z.ZodString;
379
+ endTime: z.ZodString;
380
+ }, z.core.$strip>>>;
381
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
382
+ startDate: z.ZodString;
383
+ endDate: z.ZodString;
384
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
385
+ }, z.core.$strip>>>;
386
+ }, z.core.$strip>>>;
387
+ maxConcurrentBookings: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
388
+ basePrice: z.ZodDefault<z.ZodNumber>;
389
+ priceMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServicePriceMode>>>;
390
+ gratuityMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceGratuityMode>>>;
391
+ isActive: z.ZodDefault<z.ZodBoolean>;
392
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
393
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
394
+ channelId: z.ZodString;
395
+ externalServiceId: z.ZodString;
396
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
397
+ }, z.core.$strip>>>>;
398
+ primaryServiceUserAccountId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
399
+ requiredResources: z.ZodDefault<z.ZodArray<z.ZodString>>;
400
+ bookingRules: z.ZodOptional<z.ZodNullable<z.ZodObject<{
401
+ onlineEnabled: z.ZodDefault<z.ZodBoolean>;
402
+ existingOnly: z.ZodDefault<z.ZodBoolean>;
403
+ requiresConsult: z.ZodDefault<z.ZodBoolean>;
404
+ maxDaysOut: z.ZodDefault<z.ZodNumber>;
405
+ minNoticeHours: z.ZodDefault<z.ZodNumber>;
406
+ lateCancelHours: z.ZodDefault<z.ZodNumber>;
407
+ }, z.core.$strip>>>;
408
+ depositStrategy: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceDepositStrategy>>>;
409
+ depositValue: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
410
+ lateCancelFeePercent: z.ZodDefault<z.ZodNumber>;
411
+ noShowFeePercent: z.ZodDefault<z.ZodNumber>;
412
+ requiredDatafieldConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
413
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
414
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
415
+ fieldKey: z.ZodString;
416
+ label: z.ZodOptional<z.ZodString>;
417
+ validation: z.ZodOptional<z.ZodObject<{
418
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
419
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
420
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
421
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
422
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
423
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
424
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
425
+ }, z.core.$strip>>;
426
+ uiHints: z.ZodOptional<z.ZodObject<{
427
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
428
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
429
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
430
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
431
+ full: "full";
432
+ half: "half";
433
+ third: "third";
434
+ }>>>;
435
+ }, z.core.$strip>>;
436
+ defaultValue: z.ZodOptional<z.ZodAny>;
437
+ isActive: z.ZodOptional<z.ZodBoolean>;
438
+ }, z.core.$strip>>>;
439
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
440
+ fieldKey: z.ZodString;
441
+ fieldType: z.ZodEnum<{
442
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
443
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
444
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
445
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
446
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
447
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
448
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
449
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
450
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
451
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
452
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
453
+ }>;
454
+ label: z.ZodString;
455
+ description: z.ZodOptional<z.ZodString>;
456
+ validation: z.ZodOptional<z.ZodObject<{
457
+ required: z.ZodOptional<z.ZodBoolean>;
458
+ minLength: z.ZodOptional<z.ZodNumber>;
459
+ maxLength: z.ZodOptional<z.ZodNumber>;
460
+ min: z.ZodOptional<z.ZodNumber>;
461
+ max: z.ZodOptional<z.ZodNumber>;
462
+ pattern: z.ZodOptional<z.ZodString>;
463
+ patternMessage: z.ZodOptional<z.ZodString>;
464
+ }, z.core.$strip>>;
465
+ uiHints: z.ZodOptional<z.ZodObject<{
466
+ placeholder: z.ZodOptional<z.ZodString>;
467
+ helpText: z.ZodOptional<z.ZodString>;
468
+ displayOrder: z.ZodOptional<z.ZodNumber>;
469
+ width: z.ZodOptional<z.ZodEnum<{
470
+ full: "full";
471
+ half: "half";
472
+ third: "third";
473
+ }>>;
474
+ }, z.core.$strip>>;
475
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
476
+ value: z.ZodString;
477
+ label: z.ZodString;
478
+ displayOrder: z.ZodOptional<z.ZodNumber>;
479
+ }, z.core.$strip>>>;
480
+ defaultValue: z.ZodOptional<z.ZodAny>;
481
+ isActive: z.ZodOptional<z.ZodBoolean>;
482
+ condition: z.ZodOptional<z.ZodObject<{
483
+ dependsOn: z.ZodString;
484
+ operator: z.ZodEnum<{
485
+ equals: "equals";
486
+ notEquals: "notEquals";
487
+ contains: "contains";
488
+ isEmpty: "isEmpty";
489
+ isNotEmpty: "isNotEmpty";
490
+ greaterThan: "greaterThan";
491
+ lessThan: "lessThan";
492
+ }>;
493
+ value: z.ZodOptional<z.ZodAny>;
494
+ }, z.core.$strip>>;
495
+ groupKey: z.ZodOptional<z.ZodString>;
496
+ }, z.core.$strip>>>;
497
+ isActive: z.ZodDefault<z.ZodBoolean>;
498
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
499
+ }, z.core.$strip>>>;
500
+ }, z.core.$strip>;
501
+ /**
502
+ * Schema for creating a new business service.
503
+ * Omits auto-generated fields.
504
+ */
505
+ export declare const CreateBusinessServiceSchema: z.ZodObject<{
506
+ categoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
507
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
508
+ duration: z.ZodDefault<z.ZodNumber>;
509
+ name: z.ZodString;
510
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
511
+ isActive: z.ZodDefault<z.ZodBoolean>;
512
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
513
+ channelId: z.ZodString;
514
+ externalServiceId: z.ZodString;
515
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
516
+ }, z.core.$strip>>>>;
517
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
518
+ bookingRules: z.ZodOptional<z.ZodNullable<z.ZodObject<{
519
+ onlineEnabled: z.ZodDefault<z.ZodBoolean>;
520
+ existingOnly: z.ZodDefault<z.ZodBoolean>;
521
+ requiresConsult: z.ZodDefault<z.ZodBoolean>;
522
+ maxDaysOut: z.ZodDefault<z.ZodNumber>;
523
+ minNoticeHours: z.ZodDefault<z.ZodNumber>;
524
+ lateCancelHours: z.ZodDefault<z.ZodNumber>;
525
+ }, z.core.$strip>>>;
526
+ depositStrategy: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceDepositStrategy>>>;
527
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
528
+ bookingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
529
+ durationSegments: z.ZodOptional<z.ZodNullable<z.ZodObject<{
530
+ prep: z.ZodDefault<z.ZodNumber>;
531
+ active: z.ZodDefault<z.ZodNumber>;
532
+ processing: z.ZodDefault<z.ZodNumber>;
533
+ finish: z.ZodDefault<z.ZodNumber>;
534
+ turnover: z.ZodDefault<z.ZodNumber>;
535
+ }, z.core.$strip>>>;
536
+ bufferBefore: z.ZodDefault<z.ZodNumber>;
537
+ bufferAfter: z.ZodDefault<z.ZodNumber>;
538
+ isBookable: z.ZodDefault<z.ZodBoolean>;
539
+ allowsProcessingChairSwap: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
540
+ serviceAvailability: z.ZodOptional<z.ZodNullable<z.ZodObject<{
541
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
542
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
543
+ isOpen: z.ZodBoolean;
544
+ startTime: z.ZodString;
545
+ endTime: z.ZodString;
546
+ }, z.core.$strip>>>;
547
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
548
+ startDate: z.ZodString;
549
+ endDate: z.ZodString;
550
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
551
+ }, z.core.$strip>>>;
552
+ }, z.core.$strip>>>;
553
+ maxConcurrentBookings: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
554
+ basePrice: z.ZodDefault<z.ZodNumber>;
555
+ priceMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServicePriceMode>>>;
556
+ gratuityMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceGratuityMode>>>;
557
+ primaryServiceUserAccountId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
558
+ requiredResources: z.ZodDefault<z.ZodArray<z.ZodString>>;
559
+ depositValue: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
560
+ lateCancelFeePercent: z.ZodDefault<z.ZodNumber>;
561
+ noShowFeePercent: z.ZodDefault<z.ZodNumber>;
562
+ requiredDatafieldConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
563
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
564
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
565
+ fieldKey: z.ZodString;
566
+ label: z.ZodOptional<z.ZodString>;
567
+ validation: z.ZodOptional<z.ZodObject<{
568
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
569
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
570
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
571
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
572
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
573
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
574
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
575
+ }, z.core.$strip>>;
576
+ uiHints: z.ZodOptional<z.ZodObject<{
577
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
578
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
579
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
580
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
581
+ full: "full";
582
+ half: "half";
583
+ third: "third";
584
+ }>>>;
585
+ }, z.core.$strip>>;
586
+ defaultValue: z.ZodOptional<z.ZodAny>;
587
+ isActive: z.ZodOptional<z.ZodBoolean>;
588
+ }, z.core.$strip>>>;
589
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
590
+ fieldKey: z.ZodString;
591
+ fieldType: z.ZodEnum<{
592
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
593
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
594
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
595
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
596
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
597
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
598
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
599
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
600
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
601
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
602
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
603
+ }>;
604
+ label: z.ZodString;
605
+ description: z.ZodOptional<z.ZodString>;
606
+ validation: z.ZodOptional<z.ZodObject<{
607
+ required: z.ZodOptional<z.ZodBoolean>;
608
+ minLength: z.ZodOptional<z.ZodNumber>;
609
+ maxLength: z.ZodOptional<z.ZodNumber>;
610
+ min: z.ZodOptional<z.ZodNumber>;
611
+ max: z.ZodOptional<z.ZodNumber>;
612
+ pattern: z.ZodOptional<z.ZodString>;
613
+ patternMessage: z.ZodOptional<z.ZodString>;
614
+ }, z.core.$strip>>;
615
+ uiHints: z.ZodOptional<z.ZodObject<{
616
+ placeholder: z.ZodOptional<z.ZodString>;
617
+ helpText: z.ZodOptional<z.ZodString>;
618
+ displayOrder: z.ZodOptional<z.ZodNumber>;
619
+ width: z.ZodOptional<z.ZodEnum<{
620
+ full: "full";
621
+ half: "half";
622
+ third: "third";
623
+ }>>;
624
+ }, z.core.$strip>>;
625
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
626
+ value: z.ZodString;
627
+ label: z.ZodString;
628
+ displayOrder: z.ZodOptional<z.ZodNumber>;
629
+ }, z.core.$strip>>>;
630
+ defaultValue: z.ZodOptional<z.ZodAny>;
631
+ isActive: z.ZodOptional<z.ZodBoolean>;
632
+ condition: z.ZodOptional<z.ZodObject<{
633
+ dependsOn: z.ZodString;
634
+ operator: z.ZodEnum<{
635
+ equals: "equals";
636
+ notEquals: "notEquals";
637
+ contains: "contains";
638
+ isEmpty: "isEmpty";
639
+ isNotEmpty: "isNotEmpty";
640
+ greaterThan: "greaterThan";
641
+ lessThan: "lessThan";
642
+ }>;
643
+ value: z.ZodOptional<z.ZodAny>;
644
+ }, z.core.$strip>>;
645
+ groupKey: z.ZodOptional<z.ZodString>;
646
+ }, z.core.$strip>>>;
647
+ isActive: z.ZodDefault<z.ZodBoolean>;
648
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
649
+ }, z.core.$strip>>>;
650
+ placement: z.ZodOptional<z.ZodObject<{
651
+ placementIntent: z.ZodObject<{
652
+ mode: z.ZodEnum<{
653
+ BEGINNING: "BEGINNING";
654
+ END: "END";
655
+ KEEP_CURRENT: "KEEP_CURRENT";
656
+ BEFORE_ITEM: "BEFORE_ITEM";
657
+ AFTER_ITEM: "AFTER_ITEM";
658
+ ABSOLUTE_INDEX: "ABSOLUTE_INDEX";
659
+ }>;
660
+ }, z.core.$strip>;
661
+ anchorItemId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
662
+ absoluteIndex: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
663
+ }, z.core.$strip>>;
664
+ }, z.core.$strip>;
665
+ /**
666
+ * Schema for updating an existing business service.
667
+ * All fields optional except id (required).
668
+ */
669
+ export declare const UpdateBusinessServiceSchema: z.ZodObject<{
670
+ categoryId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
671
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
672
+ duration: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
673
+ name: z.ZodOptional<z.ZodString>;
674
+ description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
675
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
676
+ channelMappings: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
677
+ channelId: z.ZodString;
678
+ externalServiceId: z.ZodString;
679
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
680
+ }, z.core.$strip>>>>>;
681
+ imageUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodURL>>>;
682
+ bookingRules: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
683
+ onlineEnabled: z.ZodDefault<z.ZodBoolean>;
684
+ existingOnly: z.ZodDefault<z.ZodBoolean>;
685
+ requiresConsult: z.ZodDefault<z.ZodBoolean>;
686
+ maxDaysOut: z.ZodDefault<z.ZodNumber>;
687
+ minNoticeHours: z.ZodDefault<z.ZodNumber>;
688
+ lateCancelHours: z.ZodDefault<z.ZodNumber>;
689
+ }, z.core.$strip>>>>;
690
+ depositStrategy: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceDepositStrategy>>>>;
691
+ serviceRevisionId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
692
+ bookingCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
693
+ durationSegments: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
694
+ prep: z.ZodDefault<z.ZodNumber>;
695
+ active: z.ZodDefault<z.ZodNumber>;
696
+ processing: z.ZodDefault<z.ZodNumber>;
697
+ finish: z.ZodDefault<z.ZodNumber>;
698
+ turnover: z.ZodDefault<z.ZodNumber>;
699
+ }, z.core.$strip>>>>;
700
+ bufferBefore: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
701
+ bufferAfter: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
702
+ isBookable: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
703
+ allowsProcessingChairSwap: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodBoolean>>>;
704
+ serviceAvailability: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
705
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
706
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
707
+ isOpen: z.ZodBoolean;
708
+ startTime: z.ZodString;
709
+ endTime: z.ZodString;
710
+ }, z.core.$strip>>>;
711
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
712
+ startDate: z.ZodString;
713
+ endDate: z.ZodString;
714
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
715
+ }, z.core.$strip>>>;
716
+ }, z.core.$strip>>>>;
717
+ maxConcurrentBookings: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
718
+ basePrice: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
719
+ priceMode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServicePriceMode>>>>;
720
+ gratuityMode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceGratuityMode>>>>;
721
+ primaryServiceUserAccountId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
722
+ requiredResources: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
723
+ depositValue: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
724
+ lateCancelFeePercent: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
725
+ noShowFeePercent: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
726
+ requiredDatafieldConfig: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodObject<{
727
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
728
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
729
+ fieldKey: z.ZodString;
730
+ label: z.ZodOptional<z.ZodString>;
731
+ validation: z.ZodOptional<z.ZodObject<{
732
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
733
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
734
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
735
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
736
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
737
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
738
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
739
+ }, z.core.$strip>>;
740
+ uiHints: z.ZodOptional<z.ZodObject<{
741
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
742
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
743
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
744
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
745
+ full: "full";
746
+ half: "half";
747
+ third: "third";
748
+ }>>>;
749
+ }, z.core.$strip>>;
750
+ defaultValue: z.ZodOptional<z.ZodAny>;
751
+ isActive: z.ZodOptional<z.ZodBoolean>;
752
+ }, z.core.$strip>>>;
753
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
754
+ fieldKey: z.ZodString;
755
+ fieldType: z.ZodEnum<{
756
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
757
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
758
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
759
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
760
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
761
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
762
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
763
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
764
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
765
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
766
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
767
+ }>;
768
+ label: z.ZodString;
769
+ description: z.ZodOptional<z.ZodString>;
770
+ validation: z.ZodOptional<z.ZodObject<{
771
+ required: z.ZodOptional<z.ZodBoolean>;
772
+ minLength: z.ZodOptional<z.ZodNumber>;
773
+ maxLength: z.ZodOptional<z.ZodNumber>;
774
+ min: z.ZodOptional<z.ZodNumber>;
775
+ max: z.ZodOptional<z.ZodNumber>;
776
+ pattern: z.ZodOptional<z.ZodString>;
777
+ patternMessage: z.ZodOptional<z.ZodString>;
778
+ }, z.core.$strip>>;
779
+ uiHints: z.ZodOptional<z.ZodObject<{
780
+ placeholder: z.ZodOptional<z.ZodString>;
781
+ helpText: z.ZodOptional<z.ZodString>;
782
+ displayOrder: z.ZodOptional<z.ZodNumber>;
783
+ width: z.ZodOptional<z.ZodEnum<{
784
+ full: "full";
785
+ half: "half";
786
+ third: "third";
787
+ }>>;
788
+ }, z.core.$strip>>;
789
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
790
+ value: z.ZodString;
791
+ label: z.ZodString;
792
+ displayOrder: z.ZodOptional<z.ZodNumber>;
793
+ }, z.core.$strip>>>;
794
+ defaultValue: z.ZodOptional<z.ZodAny>;
795
+ isActive: z.ZodOptional<z.ZodBoolean>;
796
+ condition: z.ZodOptional<z.ZodObject<{
797
+ dependsOn: z.ZodString;
798
+ operator: z.ZodEnum<{
799
+ equals: "equals";
800
+ notEquals: "notEquals";
801
+ contains: "contains";
802
+ isEmpty: "isEmpty";
803
+ isNotEmpty: "isNotEmpty";
804
+ greaterThan: "greaterThan";
805
+ lessThan: "lessThan";
806
+ }>;
807
+ value: z.ZodOptional<z.ZodAny>;
808
+ }, z.core.$strip>>;
809
+ groupKey: z.ZodOptional<z.ZodString>;
810
+ }, z.core.$strip>>>;
811
+ isActive: z.ZodDefault<z.ZodBoolean>;
812
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
813
+ }, z.core.$strip>>>>;
814
+ placement: z.ZodOptional<z.ZodOptional<z.ZodObject<{
815
+ placementIntent: z.ZodObject<{
816
+ mode: z.ZodEnum<{
817
+ BEGINNING: "BEGINNING";
818
+ END: "END";
819
+ KEEP_CURRENT: "KEEP_CURRENT";
820
+ BEFORE_ITEM: "BEFORE_ITEM";
821
+ AFTER_ITEM: "AFTER_ITEM";
822
+ ABSOLUTE_INDEX: "ABSOLUTE_INDEX";
823
+ }>;
824
+ }, z.core.$strip>;
825
+ anchorItemId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
826
+ absoluteIndex: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
827
+ }, z.core.$strip>>>;
828
+ id: z.ZodString;
829
+ }, z.core.$strip>;
830
+ export type BusinessService = z.infer<typeof BusinessServiceConfigSchema>;
831
+ export type CreateBusinessService = z.infer<typeof CreateBusinessServiceSchema>;
832
+ export type UpdateBusinessService = z.infer<typeof UpdateBusinessServiceSchema>;
833
+ export type ServiceDurationSegments = z.infer<typeof ServiceDurationSegmentsSchema>;
834
+ /**
835
+ * Service catalog schema.
836
+ * Represents a category with its associated services.
837
+ * @typedef {Object} ServiceCatalog
838
+ * @property {ServiceCategory} serviceCategory - The service category
839
+ * @property {BusinessService[]} services - List of services in this category
840
+ */
841
+ export declare const ServiceCatalogSchema: z.ZodObject<{
842
+ serviceCategory: z.ZodObject<{
843
+ id: z.ZodString;
844
+ createdAt: z.ZodOptional<z.ZodNumber>;
845
+ updatedAt: z.ZodOptional<z.ZodNumber>;
846
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
847
+ name: z.ZodString;
848
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
849
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
850
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
851
+ channelId: z.ZodString;
852
+ externalCategoryId: z.ZodString;
853
+ }, z.core.$strip>>>>;
854
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
855
+ isActive: z.ZodDefault<z.ZodBoolean>;
856
+ }, z.core.$strip>;
857
+ services: z.ZodArray<z.ZodObject<{
858
+ id: z.ZodString;
859
+ createdAt: z.ZodOptional<z.ZodNumber>;
860
+ updatedAt: z.ZodOptional<z.ZodNumber>;
861
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
862
+ name: z.ZodString;
863
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
864
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
865
+ categoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
866
+ bookingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
867
+ duration: z.ZodDefault<z.ZodNumber>;
868
+ durationSegments: z.ZodOptional<z.ZodNullable<z.ZodObject<{
869
+ prep: z.ZodDefault<z.ZodNumber>;
870
+ active: z.ZodDefault<z.ZodNumber>;
871
+ processing: z.ZodDefault<z.ZodNumber>;
872
+ finish: z.ZodDefault<z.ZodNumber>;
873
+ turnover: z.ZodDefault<z.ZodNumber>;
874
+ }, z.core.$strip>>>;
875
+ bufferBefore: z.ZodDefault<z.ZodNumber>;
876
+ bufferAfter: z.ZodDefault<z.ZodNumber>;
877
+ isBookable: z.ZodDefault<z.ZodBoolean>;
878
+ allowsProcessingChairSwap: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
879
+ serviceAvailability: z.ZodOptional<z.ZodNullable<z.ZodObject<{
880
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
881
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
882
+ isOpen: z.ZodBoolean;
883
+ startTime: z.ZodString;
884
+ endTime: z.ZodString;
885
+ }, z.core.$strip>>>;
886
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
887
+ startDate: z.ZodString;
888
+ endDate: z.ZodString;
889
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
890
+ }, z.core.$strip>>>;
891
+ }, z.core.$strip>>>;
892
+ maxConcurrentBookings: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
893
+ basePrice: z.ZodDefault<z.ZodNumber>;
894
+ priceMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServicePriceMode>>>;
895
+ gratuityMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceGratuityMode>>>;
896
+ isActive: z.ZodDefault<z.ZodBoolean>;
897
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
898
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
899
+ channelId: z.ZodString;
900
+ externalServiceId: z.ZodString;
901
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
902
+ }, z.core.$strip>>>>;
903
+ primaryServiceUserAccountId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
904
+ requiredResources: z.ZodDefault<z.ZodArray<z.ZodString>>;
905
+ bookingRules: z.ZodOptional<z.ZodNullable<z.ZodObject<{
906
+ onlineEnabled: z.ZodDefault<z.ZodBoolean>;
907
+ existingOnly: z.ZodDefault<z.ZodBoolean>;
908
+ requiresConsult: z.ZodDefault<z.ZodBoolean>;
909
+ maxDaysOut: z.ZodDefault<z.ZodNumber>;
910
+ minNoticeHours: z.ZodDefault<z.ZodNumber>;
911
+ lateCancelHours: z.ZodDefault<z.ZodNumber>;
912
+ }, z.core.$strip>>>;
913
+ depositStrategy: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceDepositStrategy>>>;
914
+ depositValue: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
915
+ lateCancelFeePercent: z.ZodDefault<z.ZodNumber>;
916
+ noShowFeePercent: z.ZodDefault<z.ZodNumber>;
917
+ requiredDatafieldConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
918
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
919
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
920
+ fieldKey: z.ZodString;
921
+ label: z.ZodOptional<z.ZodString>;
922
+ validation: z.ZodOptional<z.ZodObject<{
923
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
924
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
925
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
926
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
927
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
928
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
929
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
930
+ }, z.core.$strip>>;
931
+ uiHints: z.ZodOptional<z.ZodObject<{
932
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
933
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
934
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
935
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
936
+ full: "full";
937
+ half: "half";
938
+ third: "third";
939
+ }>>>;
940
+ }, z.core.$strip>>;
941
+ defaultValue: z.ZodOptional<z.ZodAny>;
942
+ isActive: z.ZodOptional<z.ZodBoolean>;
943
+ }, z.core.$strip>>>;
944
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
945
+ fieldKey: z.ZodString;
946
+ fieldType: z.ZodEnum<{
947
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
948
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
949
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
950
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
951
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
952
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
953
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
954
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
955
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
956
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
957
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
958
+ }>;
959
+ label: z.ZodString;
960
+ description: z.ZodOptional<z.ZodString>;
961
+ validation: z.ZodOptional<z.ZodObject<{
962
+ required: z.ZodOptional<z.ZodBoolean>;
963
+ minLength: z.ZodOptional<z.ZodNumber>;
964
+ maxLength: z.ZodOptional<z.ZodNumber>;
965
+ min: z.ZodOptional<z.ZodNumber>;
966
+ max: z.ZodOptional<z.ZodNumber>;
967
+ pattern: z.ZodOptional<z.ZodString>;
968
+ patternMessage: z.ZodOptional<z.ZodString>;
969
+ }, z.core.$strip>>;
970
+ uiHints: z.ZodOptional<z.ZodObject<{
971
+ placeholder: z.ZodOptional<z.ZodString>;
972
+ helpText: z.ZodOptional<z.ZodString>;
973
+ displayOrder: z.ZodOptional<z.ZodNumber>;
974
+ width: z.ZodOptional<z.ZodEnum<{
975
+ full: "full";
976
+ half: "half";
977
+ third: "third";
978
+ }>>;
979
+ }, z.core.$strip>>;
980
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
981
+ value: z.ZodString;
982
+ label: z.ZodString;
983
+ displayOrder: z.ZodOptional<z.ZodNumber>;
984
+ }, z.core.$strip>>>;
985
+ defaultValue: z.ZodOptional<z.ZodAny>;
986
+ isActive: z.ZodOptional<z.ZodBoolean>;
987
+ condition: z.ZodOptional<z.ZodObject<{
988
+ dependsOn: z.ZodString;
989
+ operator: z.ZodEnum<{
990
+ equals: "equals";
991
+ notEquals: "notEquals";
992
+ contains: "contains";
993
+ isEmpty: "isEmpty";
994
+ isNotEmpty: "isNotEmpty";
995
+ greaterThan: "greaterThan";
996
+ lessThan: "lessThan";
997
+ }>;
998
+ value: z.ZodOptional<z.ZodAny>;
999
+ }, z.core.$strip>>;
1000
+ groupKey: z.ZodOptional<z.ZodString>;
1001
+ }, z.core.$strip>>>;
1002
+ isActive: z.ZodDefault<z.ZodBoolean>;
1003
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
1004
+ }, z.core.$strip>>>;
1005
+ }, z.core.$strip>>;
1006
+ }, z.core.$strip>;
1007
+ /**
1008
+ * Business service catalog schema.
1009
+ * Array of service categories with their services.
1010
+ * @typedef {ServiceCatalog[]} BusinessServiceCatalog
1011
+ */
1012
+ export declare const BusinessServiceCatalogSchema: z.ZodArray<z.ZodObject<{
1013
+ serviceCategory: z.ZodObject<{
1014
+ id: z.ZodString;
1015
+ createdAt: z.ZodOptional<z.ZodNumber>;
1016
+ updatedAt: z.ZodOptional<z.ZodNumber>;
1017
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1018
+ name: z.ZodString;
1019
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1020
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
1021
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
1022
+ channelId: z.ZodString;
1023
+ externalCategoryId: z.ZodString;
1024
+ }, z.core.$strip>>>>;
1025
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1026
+ isActive: z.ZodDefault<z.ZodBoolean>;
1027
+ }, z.core.$strip>;
1028
+ services: z.ZodArray<z.ZodObject<{
1029
+ id: z.ZodString;
1030
+ createdAt: z.ZodOptional<z.ZodNumber>;
1031
+ updatedAt: z.ZodOptional<z.ZodNumber>;
1032
+ serviceRevisionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1033
+ name: z.ZodString;
1034
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1035
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
1036
+ categoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1037
+ bookingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1038
+ duration: z.ZodDefault<z.ZodNumber>;
1039
+ durationSegments: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1040
+ prep: z.ZodDefault<z.ZodNumber>;
1041
+ active: z.ZodDefault<z.ZodNumber>;
1042
+ processing: z.ZodDefault<z.ZodNumber>;
1043
+ finish: z.ZodDefault<z.ZodNumber>;
1044
+ turnover: z.ZodDefault<z.ZodNumber>;
1045
+ }, z.core.$strip>>>;
1046
+ bufferBefore: z.ZodDefault<z.ZodNumber>;
1047
+ bufferAfter: z.ZodDefault<z.ZodNumber>;
1048
+ isBookable: z.ZodDefault<z.ZodBoolean>;
1049
+ allowsProcessingChairSwap: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1050
+ serviceAvailability: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1051
+ mode: z.ZodDefault<z.ZodEnum<typeof ServiceAvailabilityMode>>;
1052
+ weeklySchedule: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1053
+ isOpen: z.ZodBoolean;
1054
+ startTime: z.ZodString;
1055
+ endTime: z.ZodString;
1056
+ }, z.core.$strip>>>;
1057
+ dateRanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
1058
+ startDate: z.ZodString;
1059
+ endDate: z.ZodString;
1060
+ isExclusion: z.ZodDefault<z.ZodBoolean>;
1061
+ }, z.core.$strip>>>;
1062
+ }, z.core.$strip>>>;
1063
+ maxConcurrentBookings: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1064
+ basePrice: z.ZodDefault<z.ZodNumber>;
1065
+ priceMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServicePriceMode>>>;
1066
+ gratuityMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceGratuityMode>>>;
1067
+ isActive: z.ZodDefault<z.ZodBoolean>;
1068
+ displayOrder: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1069
+ channelMappings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
1070
+ channelId: z.ZodString;
1071
+ externalServiceId: z.ZodString;
1072
+ externalCategoryId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1073
+ }, z.core.$strip>>>>;
1074
+ primaryServiceUserAccountId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1075
+ requiredResources: z.ZodDefault<z.ZodArray<z.ZodString>>;
1076
+ bookingRules: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1077
+ onlineEnabled: z.ZodDefault<z.ZodBoolean>;
1078
+ existingOnly: z.ZodDefault<z.ZodBoolean>;
1079
+ requiresConsult: z.ZodDefault<z.ZodBoolean>;
1080
+ maxDaysOut: z.ZodDefault<z.ZodNumber>;
1081
+ minNoticeHours: z.ZodDefault<z.ZodNumber>;
1082
+ lateCancelHours: z.ZodDefault<z.ZodNumber>;
1083
+ }, z.core.$strip>>>;
1084
+ depositStrategy: z.ZodOptional<z.ZodNullable<z.ZodEnum<typeof ServiceDepositStrategy>>>;
1085
+ depositValue: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1086
+ lateCancelFeePercent: z.ZodDefault<z.ZodNumber>;
1087
+ noShowFeePercent: z.ZodDefault<z.ZodNumber>;
1088
+ requiredDatafieldConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1089
+ inheritedFieldKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
1090
+ fieldOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
1091
+ fieldKey: z.ZodString;
1092
+ label: z.ZodOptional<z.ZodString>;
1093
+ validation: z.ZodOptional<z.ZodObject<{
1094
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
1095
+ minLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1096
+ maxLength: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1097
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1098
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1099
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1100
+ patternMessage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1101
+ }, z.core.$strip>>;
1102
+ uiHints: z.ZodOptional<z.ZodObject<{
1103
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1104
+ helpText: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1105
+ displayOrder: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1106
+ width: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
1107
+ full: "full";
1108
+ half: "half";
1109
+ third: "third";
1110
+ }>>>;
1111
+ }, z.core.$strip>>;
1112
+ defaultValue: z.ZodOptional<z.ZodAny>;
1113
+ isActive: z.ZodOptional<z.ZodBoolean>;
1114
+ }, z.core.$strip>>>;
1115
+ additionalFields: z.ZodDefault<z.ZodArray<z.ZodObject<{
1116
+ fieldKey: z.ZodString;
1117
+ fieldType: z.ZodEnum<{
1118
+ text: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXT;
1119
+ textarea: import("../../type-definitions/dynamic-fields").DynamicFieldType.TEXTAREA;
1120
+ number: import("../../type-definitions/dynamic-fields").DynamicFieldType.NUMBER;
1121
+ boolean: import("../../type-definitions/dynamic-fields").DynamicFieldType.BOOLEAN;
1122
+ date: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATE;
1123
+ time: import("../../type-definitions/dynamic-fields").DynamicFieldType.TIME;
1124
+ datetime: import("../../type-definitions/dynamic-fields").DynamicFieldType.DATETIME;
1125
+ email: import("../../type-definitions/dynamic-fields").DynamicFieldType.EMAIL;
1126
+ phone: import("../../type-definitions/dynamic-fields").DynamicFieldType.PHONE;
1127
+ select: import("../../type-definitions/dynamic-fields").DynamicFieldType.SELECT;
1128
+ multiselect: import("../../type-definitions/dynamic-fields").DynamicFieldType.MULTISELECT;
1129
+ }>;
1130
+ label: z.ZodString;
1131
+ description: z.ZodOptional<z.ZodString>;
1132
+ validation: z.ZodOptional<z.ZodObject<{
1133
+ required: z.ZodOptional<z.ZodBoolean>;
1134
+ minLength: z.ZodOptional<z.ZodNumber>;
1135
+ maxLength: z.ZodOptional<z.ZodNumber>;
1136
+ min: z.ZodOptional<z.ZodNumber>;
1137
+ max: z.ZodOptional<z.ZodNumber>;
1138
+ pattern: z.ZodOptional<z.ZodString>;
1139
+ patternMessage: z.ZodOptional<z.ZodString>;
1140
+ }, z.core.$strip>>;
1141
+ uiHints: z.ZodOptional<z.ZodObject<{
1142
+ placeholder: z.ZodOptional<z.ZodString>;
1143
+ helpText: z.ZodOptional<z.ZodString>;
1144
+ displayOrder: z.ZodOptional<z.ZodNumber>;
1145
+ width: z.ZodOptional<z.ZodEnum<{
1146
+ full: "full";
1147
+ half: "half";
1148
+ third: "third";
1149
+ }>>;
1150
+ }, z.core.$strip>>;
1151
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1152
+ value: z.ZodString;
1153
+ label: z.ZodString;
1154
+ displayOrder: z.ZodOptional<z.ZodNumber>;
1155
+ }, z.core.$strip>>>;
1156
+ defaultValue: z.ZodOptional<z.ZodAny>;
1157
+ isActive: z.ZodOptional<z.ZodBoolean>;
1158
+ condition: z.ZodOptional<z.ZodObject<{
1159
+ dependsOn: z.ZodString;
1160
+ operator: z.ZodEnum<{
1161
+ equals: "equals";
1162
+ notEquals: "notEquals";
1163
+ contains: "contains";
1164
+ isEmpty: "isEmpty";
1165
+ isNotEmpty: "isNotEmpty";
1166
+ greaterThan: "greaterThan";
1167
+ lessThan: "lessThan";
1168
+ }>;
1169
+ value: z.ZodOptional<z.ZodAny>;
1170
+ }, z.core.$strip>>;
1171
+ groupKey: z.ZodOptional<z.ZodString>;
1172
+ }, z.core.$strip>>>;
1173
+ isActive: z.ZodDefault<z.ZodBoolean>;
1174
+ reuseDetails: z.ZodDefault<z.ZodBoolean>;
1175
+ }, z.core.$strip>>>;
1176
+ }, z.core.$strip>>;
1177
+ }, z.core.$strip>>;
1178
+ export type ServiceCatalog = z.infer<typeof ServiceCatalogSchema>;
1179
+ export type BusinessServiceCatalog = z.infer<typeof BusinessServiceCatalogSchema>;
1180
+ /**
1181
+ * Business service filter options.
1182
+ * @interface BusinessServiceFilters
1183
+ */
1184
+ export interface BusinessServiceFilters {
1185
+ /** Text search across name/description */
1186
+ search?: string;
1187
+ /** Filter by category ID */
1188
+ categoryId?: string;
1189
+ /** Filter by location ID */
1190
+ locationId?: string;
1191
+ /** Filter by active status */
1192
+ isActive?: boolean;
1193
+ /** Filter by bookable status */
1194
+ isBookable?: boolean;
1195
+ /** Filter by price range */
1196
+ priceRange?: {
1197
+ min?: number;
1198
+ max?: number;
1199
+ };
1200
+ /** Include soft-deleted records */
1201
+ includeDeleted?: boolean;
1202
+ }
1203
+ /**
1204
+ * Business service sorting options.
1205
+ * @interface BusinessServiceSorting
1206
+ */
1207
+ export interface BusinessServiceSorting {
1208
+ /** Field to sort by */
1209
+ field: 'name' | 'price' | 'duration' | 'createdAt' | 'displayOrder';
1210
+ /** Sort direction */
1211
+ direction: 'asc' | 'desc';
1212
+ }
1213
+ /**
1214
+ * Business service query options.
1215
+ * @interface BusinessServiceQueryOptions
1216
+ */
1217
+ export interface BusinessServiceQueryOptions {
1218
+ /** Page number (1-indexed) */
1219
+ page: number;
1220
+ /** Items per page */
1221
+ pageSize: number;
1222
+ /** Optional filters */
1223
+ filters?: BusinessServiceFilters;
1224
+ /** Optional sorting */
1225
+ sorting?: BusinessServiceSorting;
1226
+ }