@kasuvia/sdk 0.0.8 → 0.0.9

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 (176) hide show
  1. package/README.md +42 -15
  2. package/dist/AddressAutocomplete-CjcqPElD.d.mts +46 -0
  3. package/dist/AddressAutocomplete-CvJHuRkf.d.ts +46 -0
  4. package/dist/components/index.d.mts +497 -0
  5. package/dist/components/index.d.ts +497 -0
  6. package/dist/components/index.js +4217 -0
  7. package/dist/components/index.js.map +1 -0
  8. package/dist/components/index.mjs +4194 -0
  9. package/dist/components/index.mjs.map +1 -0
  10. package/dist/config/server.d.mts +26 -0
  11. package/dist/config/server.d.ts +26 -0
  12. package/dist/config/server.js +38 -0
  13. package/dist/config/server.js.map +1 -0
  14. package/dist/config/server.mjs +13 -0
  15. package/dist/config/server.mjs.map +1 -0
  16. package/dist/hooks/index.d.mts +393 -160
  17. package/dist/hooks/index.d.ts +393 -160
  18. package/dist/hooks/index.js +2792 -2137
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/index.mjs +2734 -2121
  21. package/dist/hooks/index.mjs.map +1 -1
  22. package/dist/index-CNW_LINy.d.mts +578 -0
  23. package/dist/index-CNW_LINy.d.ts +578 -0
  24. package/dist/{index-C1chUA3P.d.mts → index-F7N6UItS.d.mts} +1 -1
  25. package/dist/{index-C1chUA3P.d.ts → index-F7N6UItS.d.ts} +1 -1
  26. package/dist/index-NkI10J_E.d.mts +40 -0
  27. package/dist/index-NkI10J_E.d.ts +40 -0
  28. package/dist/index.d.mts +20437 -103
  29. package/dist/index.d.ts +20437 -103
  30. package/dist/index.js +2111 -1802
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.mjs +2006 -1786
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/media.service-Cx7dQjzX.d.mts +1393 -0
  35. package/dist/media.service-mrBFJ2UQ.d.ts +1393 -0
  36. package/dist/services/index.d.mts +908 -2
  37. package/dist/services/index.d.ts +908 -2
  38. package/dist/services/index.js +1492 -1686
  39. package/dist/services/index.js.map +1 -1
  40. package/dist/services/index.mjs +1431 -1670
  41. package/dist/services/index.mjs.map +1 -1
  42. package/package.json +46 -6
  43. package/src/components/bespoke/BespokeAvailabilityBadge.tsx +32 -0
  44. package/src/components/bespoke/BespokeProgressTracker.tsx +58 -0
  45. package/src/components/bespoke/index.ts +3 -0
  46. package/src/components/booking/SlotPicker.tsx +97 -0
  47. package/src/components/booking/index.ts +1 -0
  48. package/src/components/cart/CartItem.tsx +81 -0
  49. package/src/components/cart/CartSidebar.tsx +115 -0
  50. package/src/components/cart/CartTypeMismatchBanner.tsx +55 -0
  51. package/src/components/cart/index.ts +3 -0
  52. package/src/components/index.ts +8 -0
  53. package/src/components/orders/DeliverableReviewer.tsx +139 -0
  54. package/src/components/orders/index.ts +1 -0
  55. package/src/components/product/ProductCard.tsx +350 -0
  56. package/src/components/product/ProductGrid.tsx +84 -0
  57. package/src/components/product/index.ts +2 -0
  58. package/src/components/shared/AddressAutocomplete.tsx +212 -0
  59. package/src/components/shared/AnalyticsScripts.tsx +56 -0
  60. package/src/components/shared/CookieConsentBanner.tsx +98 -0
  61. package/src/components/shared/ImageEditorModal.tsx +1066 -0
  62. package/src/components/shared/ImageViewerModal.tsx +598 -0
  63. package/src/components/shared/LucideReactIcon.tsx +52 -0
  64. package/src/components/shared/MapPinDrop.tsx +101 -0
  65. package/src/components/shared/MultiSelectPicker.tsx +193 -0
  66. package/src/components/shared/OfflineBanner.tsx +46 -0
  67. package/src/components/shared/SearchableInput.tsx +153 -0
  68. package/src/components/shared/SearchablePopover.tsx +166 -0
  69. package/src/components/shared/SmartImage.tsx +311 -0
  70. package/src/components/shared/TruncatedValue.tsx +27 -0
  71. package/src/components/shared/UnsavedChangesGuard.tsx +138 -0
  72. package/src/components/shared/index.ts +15 -0
  73. package/src/components/skeletons/CardSkeleton.tsx +26 -0
  74. package/src/components/skeletons/CartItemSkeleton.tsx +26 -0
  75. package/src/components/skeletons/OrderItemSkeleton.tsx +26 -0
  76. package/src/components/skeletons/ProductCardSkeleton.tsx +26 -0
  77. package/src/components/skeletons/TableSkeleton.tsx +42 -0
  78. package/src/components/skeletons/index.ts +5 -0
  79. package/src/config/index.ts +22 -4
  80. package/src/config/server.ts +45 -0
  81. package/src/context/sdk-context.tsx +5 -2
  82. package/src/generated/auth-openapi.ts +2935 -0
  83. package/src/generated/cart-openapi.ts +652 -0
  84. package/src/generated/cms-openapi.ts +1668 -0
  85. package/src/generated/crm-openapi.ts +986 -0
  86. package/src/generated/graphql.ts +126 -0
  87. package/src/generated/index.ts +11 -0
  88. package/src/generated/media-openapi.ts +613 -0
  89. package/src/generated/notification-openapi.ts +862 -0
  90. package/src/generated/payment-openapi.ts +2713 -0
  91. package/src/generated/store-openapi.ts +9510 -0
  92. package/src/graphql/operations/collections.graphql +32 -0
  93. package/src/graphql/operations/products.graphql +197 -0
  94. package/src/graphql/operations/wishlist.graphql +25 -0
  95. package/src/hooks/index.ts +9 -2
  96. package/src/hooks/use-auth.ts +163 -69
  97. package/src/hooks/use-bespoke-availability.ts +39 -22
  98. package/src/hooks/use-business-config.ts +51 -0
  99. package/src/hooks/use-cart.ts +310 -238
  100. package/src/hooks/use-cms.ts +107 -127
  101. package/src/hooks/use-collections.ts +35 -55
  102. package/src/hooks/use-consultations.ts +9 -136
  103. package/src/hooks/use-countries.ts +19 -28
  104. package/src/hooks/use-currencies.ts +8 -20
  105. package/src/hooks/use-customer-address.ts +64 -0
  106. package/src/hooks/use-feedback.ts +34 -0
  107. package/src/hooks/use-languages.ts +26 -39
  108. package/src/hooks/use-media-upload.ts +23 -0
  109. package/src/hooks/use-notification-stream.ts +88 -0
  110. package/src/hooks/use-notifications.ts +163 -0
  111. package/src/hooks/use-order-stream.ts +29 -29
  112. package/src/hooks/use-orders.ts +91 -73
  113. package/src/hooks/use-payment.ts +116 -84
  114. package/src/hooks/use-products.ts +65 -269
  115. package/src/hooks/use-push-notifications.ts +122 -0
  116. package/src/hooks/use-reviews.ts +175 -0
  117. package/src/hooks/use-service-booking.ts +109 -132
  118. package/src/hooks/use-states.ts +16 -30
  119. package/src/hooks/use-wishlist.ts +44 -69
  120. package/src/index.ts +15 -11
  121. package/src/services/auth.service.ts +422 -132
  122. package/src/services/bespoke.service.ts +69 -10
  123. package/src/services/cart.service.ts +155 -186
  124. package/src/services/cms.service.ts +41 -50
  125. package/src/services/collection.service.ts +25 -63
  126. package/src/services/config.service.ts +10 -21
  127. package/src/services/consultation.service.ts +36 -93
  128. package/src/services/feedback.service.ts +76 -0
  129. package/src/services/index.ts +7 -1
  130. package/src/services/legal.service.ts +62 -0
  131. package/src/services/logistics.service.ts +235 -53
  132. package/src/services/media.service.ts +115 -0
  133. package/src/services/notifications.service.ts +204 -20
  134. package/src/services/order.service.ts +498 -127
  135. package/src/services/payment.service.ts +149 -100
  136. package/src/services/product.service.ts +157 -814
  137. package/src/services/review.service.ts +211 -0
  138. package/src/services/service-booking.service.ts +198 -99
  139. package/src/services/wishlist.service.ts +27 -74
  140. package/src/types/auth/index.ts +161 -18
  141. package/src/types/business/index.ts +9 -1
  142. package/src/types/cms/index.ts +91 -6
  143. package/src/types/cms/legal.ts +18 -0
  144. package/src/types/consultations/index.ts +60 -68
  145. package/src/types/index.ts +5 -3
  146. package/src/types/media/index.ts +35 -3
  147. package/src/types/payments/index.ts +80 -16
  148. package/src/types/reviews/index.ts +116 -0
  149. package/src/types/services/index.ts +113 -38
  150. package/src/types/store/checkout.ts +53 -0
  151. package/src/types/store/index.ts +273 -52
  152. package/src/types/store/invoice.ts +31 -0
  153. package/src/types/store/shipping.ts +84 -3
  154. package/src/types/ui/index.ts +1 -1
  155. package/src/utils/checkout.ts +19 -3
  156. package/src/utils/cookieConsent.ts +34 -0
  157. package/src/utils/format.ts +408 -0
  158. package/src/utils/geolocation.ts +134 -0
  159. package/src/utils/graphql-url.ts +47 -0
  160. package/src/utils/guest-session.ts +59 -0
  161. package/src/utils/http-client.ts +147 -0
  162. package/src/utils/index.ts +11 -4
  163. package/src/utils/status-colors.ts +79 -0
  164. package/src/utils/token-refresh.ts +115 -0
  165. package/src/utils/validators.ts +13 -0
  166. package/src/utils/youtube.ts +18 -0
  167. package/dist/index-C5YO9gTl.d.mts +0 -507
  168. package/dist/index-C5YO9gTl.d.ts +0 -507
  169. package/dist/index-CefG7_xq.d.mts +0 -793
  170. package/dist/index-DeHCf3zI.d.ts +0 -793
  171. package/src/graphql/collections.graphql.ts +0 -48
  172. package/src/graphql/index.ts +0 -7
  173. package/src/graphql/products.graphql.ts +0 -860
  174. package/src/graphql/wishlist.graphql.ts +0 -34
  175. package/src/hooks/use-consultation-stream.ts +0 -142
  176. package/src/types/bespoke/index.ts +0 -39
@@ -0,0 +1,1668 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+
6
+ export interface paths {
7
+ "/api/v1/media/presigned-url": {
8
+ parameters: {
9
+ query?: never;
10
+ header?: never;
11
+ path?: never;
12
+ cookie?: never;
13
+ };
14
+ get?: never;
15
+ put?: never;
16
+ /**
17
+ * Get Presigned Upload Url
18
+ * @description Generate presigned PUT URL for direct client upload to R2.
19
+ */
20
+ post: operations["get_presigned_upload_url_api_v1_media_presigned_url_post"];
21
+ delete?: never;
22
+ options?: never;
23
+ head?: never;
24
+ patch?: never;
25
+ trace?: never;
26
+ };
27
+ "/api/v1/media/confirm-upload": {
28
+ parameters: {
29
+ query?: never;
30
+ header?: never;
31
+ path?: never;
32
+ cookie?: never;
33
+ };
34
+ get?: never;
35
+ put?: never;
36
+ /**
37
+ * Confirm Upload
38
+ * @description Confirm successful direct-to-R2 upload and write metadata. Note:
39
+ * `original_filename`/`content_type`/`size` are required by kasuvia-media-system's
40
+ * confirm-upload endpoint — the previous version of this proxy didn't accept them
41
+ * at all, so confirm-upload could never actually succeed here.
42
+ */
43
+ post: operations["confirm_upload_api_v1_media_confirm_upload_post"];
44
+ delete?: never;
45
+ options?: never;
46
+ head?: never;
47
+ patch?: never;
48
+ trace?: never;
49
+ };
50
+ "/api/v1/media/{media_id}": {
51
+ parameters: {
52
+ query?: never;
53
+ header?: never;
54
+ path?: never;
55
+ cookie?: never;
56
+ };
57
+ get?: never;
58
+ put?: never;
59
+ post?: never;
60
+ /**
61
+ * Delete Media
62
+ * @description Delete a media asset from storage and the media-system database.
63
+ */
64
+ delete: operations["delete_media_api_v1_media__media_id__delete"];
65
+ options?: never;
66
+ head?: never;
67
+ patch?: never;
68
+ trace?: never;
69
+ };
70
+ "/api/v1/cms/models": {
71
+ parameters: {
72
+ query?: never;
73
+ header?: never;
74
+ path?: never;
75
+ cookie?: never;
76
+ };
77
+ /**
78
+ * List Cms Models
79
+ * @description List all CMS models for the authenticated business.
80
+ *
81
+ * Protected by Merchant JWT + business_id.
82
+ */
83
+ get: operations["list_cms_models_api_v1_cms_models_get"];
84
+ put?: never;
85
+ /**
86
+ * Create Cms Model
87
+ * @description Create a new custom CMS model.
88
+ *
89
+ * Protected by Merchant JWT + business_id.
90
+ * Requires BUSINESS_OWNER or ADMIN role.
91
+ */
92
+ post: operations["create_cms_model_api_v1_cms_models_post"];
93
+ delete?: never;
94
+ options?: never;
95
+ head?: never;
96
+ patch?: never;
97
+ trace?: never;
98
+ };
99
+ "/api/v1/cms/models/{model_slug}": {
100
+ parameters: {
101
+ query?: never;
102
+ header?: never;
103
+ path?: never;
104
+ cookie?: never;
105
+ };
106
+ /**
107
+ * Get Cms Model
108
+ * @description Get a specific CMS model definition.
109
+ *
110
+ * Protected by Merchant JWT + business_id.
111
+ */
112
+ get: operations["get_cms_model_api_v1_cms_models__model_slug__get"];
113
+ /**
114
+ * Update Cms Model
115
+ * @description Update an existing CMS model.
116
+ *
117
+ * Protected by Merchant JWT + business_id.
118
+ * Requires BUSINESS_OWNER or ADMIN role.
119
+ */
120
+ put: operations["update_cms_model_api_v1_cms_models__model_slug__put"];
121
+ post?: never;
122
+ /**
123
+ * Delete Cms Model
124
+ * @description Delete a CMS model and cascade delete all its entries.
125
+ *
126
+ * Protected by Merchant JWT + business_id.
127
+ * Requires BUSINESS_OWNER or ADMIN role.
128
+ */
129
+ delete: operations["delete_cms_model_api_v1_cms_models__model_slug__delete"];
130
+ options?: never;
131
+ head?: never;
132
+ patch?: never;
133
+ trace?: never;
134
+ };
135
+ "/api/v1/cms/models/{model_slug}/entries": {
136
+ parameters: {
137
+ query?: never;
138
+ header?: never;
139
+ path?: never;
140
+ cookie?: never;
141
+ };
142
+ /**
143
+ * List Cms Entries
144
+ * @description List and search entries for a CMS model with pagination.
145
+ *
146
+ * Protected by Merchant JWT + business_id.
147
+ */
148
+ get: operations["list_cms_entries_api_v1_cms_models__model_slug__entries_get"];
149
+ put?: never;
150
+ /**
151
+ * Create Cms Entry
152
+ * @description Create a new entry for a CMS model.
153
+ *
154
+ * Protected by Merchant JWT + business_id.
155
+ * Triggers dynamic validation against model field schema.
156
+ */
157
+ post: operations["create_cms_entry_api_v1_cms_models__model_slug__entries_post"];
158
+ delete?: never;
159
+ options?: never;
160
+ head?: never;
161
+ patch?: never;
162
+ trace?: never;
163
+ };
164
+ "/api/v1/cms/models/{model_slug}/entries/{entry_id}": {
165
+ parameters: {
166
+ query?: never;
167
+ header?: never;
168
+ path?: never;
169
+ cookie?: never;
170
+ };
171
+ /**
172
+ * Get Cms Entry
173
+ * @description Get a single entry by ID.
174
+ *
175
+ * Protected by Merchant JWT + business_id.
176
+ */
177
+ get: operations["get_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__get"];
178
+ /**
179
+ * Update Cms Entry
180
+ * @description Update an existing entry.
181
+ *
182
+ * Protected by Merchant JWT + business_id.
183
+ * Triggers dynamic validation against model field schema.
184
+ */
185
+ put: operations["update_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__put"];
186
+ post?: never;
187
+ /**
188
+ * Delete Cms Entry
189
+ * @description Delete an entry by ID.
190
+ *
191
+ * Protected by Merchant JWT + business_id.
192
+ */
193
+ delete: operations["delete_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__delete"];
194
+ options?: never;
195
+ head?: never;
196
+ patch?: never;
197
+ trace?: never;
198
+ };
199
+ "/api/v1/cms/icons": {
200
+ parameters: {
201
+ query?: never;
202
+ header?: never;
203
+ path?: never;
204
+ cookie?: never;
205
+ };
206
+ /**
207
+ * Search Cms Icons
208
+ * @description Search icons for dashboard UI icon-pickers.
209
+ *
210
+ * Supports text search on name/tags, category filtering, and package filtering.
211
+ * No authentication required (read-only catalog).
212
+ */
213
+ get: operations["search_cms_icons_api_v1_cms_icons_get"];
214
+ put?: never;
215
+ post?: never;
216
+ delete?: never;
217
+ options?: never;
218
+ head?: never;
219
+ patch?: never;
220
+ trace?: never;
221
+ };
222
+ "/api/v1/cms/icons/categories": {
223
+ parameters: {
224
+ query?: never;
225
+ header?: never;
226
+ path?: never;
227
+ cookie?: never;
228
+ };
229
+ /**
230
+ * List Icon Categories
231
+ * @description Get list of all icon categories, optionally scoped to a package.
232
+ *
233
+ * No authentication required (read-only catalog).
234
+ */
235
+ get: operations["list_icon_categories_api_v1_cms_icons_categories_get"];
236
+ put?: never;
237
+ post?: never;
238
+ delete?: never;
239
+ options?: never;
240
+ head?: never;
241
+ patch?: never;
242
+ trace?: never;
243
+ };
244
+ "/api/v1/cms/icons/packages": {
245
+ parameters: {
246
+ query?: never;
247
+ header?: never;
248
+ path?: never;
249
+ cookie?: never;
250
+ };
251
+ /**
252
+ * List Icon Packages
253
+ * @description Get every distinct icon package actually seeded in the catalog
254
+ * (e.g. lucide-icons, material-icons).
255
+ *
256
+ * Real gap fixed: the model builder's "Default icon package" field on a
257
+ * repeater-config's icon sub-field had no real source for this list and
258
+ * was a free-text input a merchant could type anything into.
259
+ *
260
+ * No authentication required (read-only catalog).
261
+ */
262
+ get: operations["list_icon_packages_api_v1_cms_icons_packages_get"];
263
+ put?: never;
264
+ post?: never;
265
+ delete?: never;
266
+ options?: never;
267
+ head?: never;
268
+ patch?: never;
269
+ trace?: never;
270
+ };
271
+ "/api/v1/sdk/{business_id}/{model_slug}/entries": {
272
+ parameters: {
273
+ query?: never;
274
+ header?: never;
275
+ path?: never;
276
+ cookie?: never;
277
+ };
278
+ /**
279
+ * Sdk List Entries
280
+ * @description List entries for storefront SDK clients.
281
+ *
282
+ * Protected by X-Storefront-Key + X-Business-ID headers.
283
+ * Enforces public_api.read permission.
284
+ */
285
+ get: operations["sdk_list_entries_api_v1_sdk__business_id___model_slug__entries_get"];
286
+ put?: never;
287
+ /**
288
+ * Sdk Create Entry
289
+ * @description Create entry via storefront SDK.
290
+ *
291
+ * Protected by X-Storefront-Key + X-Business-ID headers.
292
+ * Enforces public_api.create permission.
293
+ */
294
+ post: operations["sdk_create_entry_api_v1_sdk__business_id___model_slug__entries_post"];
295
+ delete?: never;
296
+ options?: never;
297
+ head?: never;
298
+ patch?: never;
299
+ trace?: never;
300
+ };
301
+ "/api/v1/sdk/{business_id}/{model_slug}/entries/{entry_id}": {
302
+ parameters: {
303
+ query?: never;
304
+ header?: never;
305
+ path?: never;
306
+ cookie?: never;
307
+ };
308
+ /**
309
+ * Sdk Get Entry
310
+ * @description Get a single entry for storefront SDK clients.
311
+ *
312
+ * Protected by X-Storefront-Key + X-Business-ID headers.
313
+ * Enforces public_api.read permission.
314
+ */
315
+ get: operations["sdk_get_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__get"];
316
+ /**
317
+ * Sdk Update Entry
318
+ * @description Update entry via storefront SDK.
319
+ *
320
+ * Protected by X-Storefront-Key + X-Business-ID headers.
321
+ * Enforces public_api.update permission.
322
+ */
323
+ put: operations["sdk_update_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__put"];
324
+ post?: never;
325
+ /**
326
+ * Sdk Delete Entry
327
+ * @description Delete entry via storefront SDK.
328
+ *
329
+ * Protected by X-Storefront-Key + X-Business-ID headers.
330
+ * Enforces public_api.delete permission.
331
+ */
332
+ delete: operations["sdk_delete_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__delete"];
333
+ options?: never;
334
+ head?: never;
335
+ patch?: never;
336
+ trace?: never;
337
+ };
338
+ "/api/v1/cms/legal/platform/{document_type}": {
339
+ parameters: {
340
+ query?: never;
341
+ header?: never;
342
+ path?: never;
343
+ cookie?: never;
344
+ };
345
+ /** Get the currently-active platform legal document (Public) */
346
+ get: operations["get_active_platform_document_api_v1_cms_legal_platform__document_type__get"];
347
+ put?: never;
348
+ post?: never;
349
+ delete?: never;
350
+ options?: never;
351
+ head?: never;
352
+ patch?: never;
353
+ trace?: never;
354
+ };
355
+ "/api/v1/cms/legal/storefront-template/{document_type}": {
356
+ parameters: {
357
+ query?: never;
358
+ header?: never;
359
+ path?: never;
360
+ cookie?: never;
361
+ };
362
+ /** Get the active storefront template + its required variables (Public) */
363
+ get: operations["get_active_storefront_template_api_v1_cms_legal_storefront_template__document_type__get"];
364
+ put?: never;
365
+ post?: never;
366
+ delete?: never;
367
+ options?: never;
368
+ head?: never;
369
+ patch?: never;
370
+ trace?: never;
371
+ };
372
+ "/api/v1/cms/legal/storefront/{document_type}/generate": {
373
+ parameters: {
374
+ query?: never;
375
+ header?: never;
376
+ path?: never;
377
+ cookie?: never;
378
+ };
379
+ get?: never;
380
+ put?: never;
381
+ /** Generate/republish this business's own storefront legal document */
382
+ post: operations["generate_merchant_legal_document_api_v1_cms_legal_storefront__document_type__generate_post"];
383
+ delete?: never;
384
+ options?: never;
385
+ head?: never;
386
+ patch?: never;
387
+ trace?: never;
388
+ };
389
+ "/api/v1/cms/legal/storefront/{document_type}": {
390
+ parameters: {
391
+ query?: never;
392
+ header?: never;
393
+ path?: never;
394
+ cookie?: never;
395
+ };
396
+ /** Get this business's own currently-active generated document */
397
+ get: operations["get_own_merchant_legal_document_api_v1_cms_legal_storefront__document_type__get"];
398
+ put?: never;
399
+ post?: never;
400
+ delete?: never;
401
+ options?: never;
402
+ head?: never;
403
+ patch?: never;
404
+ trace?: never;
405
+ };
406
+ "/api/v1/cms/legal/storefront/{business_id}/{document_type}": {
407
+ parameters: {
408
+ query?: never;
409
+ header?: never;
410
+ path?: never;
411
+ cookie?: never;
412
+ };
413
+ /** Get a specific business's active storefront legal document (Public — for their storefront to display) */
414
+ get: operations["get_public_merchant_legal_document_api_v1_cms_legal_storefront__business_id___document_type__get"];
415
+ put?: never;
416
+ post?: never;
417
+ delete?: never;
418
+ options?: never;
419
+ head?: never;
420
+ patch?: never;
421
+ trace?: never;
422
+ };
423
+ }
424
+ export type webhooks = Record<string, never>;
425
+ export interface components {
426
+ schemas: {
427
+ /**
428
+ * CmsEntryListResponse
429
+ * @description Response schema for paginated entry list.
430
+ *
431
+ * REAL BUG FIX (2026-09-17, kasuvia-cms connectivity audit): this used to
432
+ * be {entries, total, page, page_size} - a one-off shape that didn't match
433
+ * the platform-standard paginated envelope every other Kasuvia service
434
+ * returns ({results, count, page, page_size, total_pages} - see
435
+ * project_kasuvia_pagination_standardization). kasuvia/'s own frontend was
436
+ * forced into a custom local-pagination implementation instead of the
437
+ * shared desktop-pagination/mobile-infinite-scroll component because of
438
+ * this drift. Renamed to match exactly.
439
+ */
440
+ CmsEntryListResponse: {
441
+ /** Results */
442
+ results: components["schemas"]["CmsEntryResponse"][];
443
+ /** Count */
444
+ count: number;
445
+ /** Page */
446
+ page: number;
447
+ /** Page Size */
448
+ page_size: number;
449
+ /** Total Pages */
450
+ total_pages: number;
451
+ };
452
+ /**
453
+ * CmsEntryResponse
454
+ * @description Response schema for a CmsEntry.
455
+ */
456
+ CmsEntryResponse: {
457
+ /** Id */
458
+ id: string;
459
+ /** Business Id */
460
+ business_id: string;
461
+ /** Model Slug */
462
+ model_slug: string;
463
+ /** Data */
464
+ data: Record<string, never>;
465
+ /**
466
+ * Created At
467
+ * Format: date-time
468
+ */
469
+ created_at: string;
470
+ /**
471
+ * Updated At
472
+ * Format: date-time
473
+ */
474
+ updated_at: string;
475
+ /** Created By */
476
+ created_by: string | null;
477
+ };
478
+ /**
479
+ * CmsFieldSchema
480
+ * @description Schema for a field definition within a CmsModel.
481
+ */
482
+ CmsFieldSchema: {
483
+ /**
484
+ * Name
485
+ * @description Field identifier (snake_case)
486
+ */
487
+ name: string;
488
+ /**
489
+ * Label
490
+ * @description Human-readable label
491
+ */
492
+ label: string;
493
+ /**
494
+ * Type
495
+ * @description Field type (text, number, date, etc.)
496
+ */
497
+ type: string;
498
+ /**
499
+ * Required
500
+ * @description Whether field is required
501
+ * @default false
502
+ */
503
+ required: boolean;
504
+ /**
505
+ * Config
506
+ * @description Type-specific configuration
507
+ */
508
+ config?: Record<string, never>;
509
+ /**
510
+ * Sub Fields
511
+ * @description Nested fields for repeater type
512
+ */
513
+ sub_fields?: components["schemas"]["CmsFieldSchema"][] | null;
514
+ };
515
+ /**
516
+ * CmsIconListResponse
517
+ * @description Response schema for icon search results.
518
+ */
519
+ CmsIconListResponse: {
520
+ /** Icons */
521
+ icons: components["schemas"]["CmsIconResponse"][];
522
+ /** Total */
523
+ total: number;
524
+ };
525
+ /**
526
+ * CmsIconResponse
527
+ * @description Response schema for a CmsIcon.
528
+ */
529
+ CmsIconResponse: {
530
+ /** Id */
531
+ id: string;
532
+ /** Package */
533
+ package: string;
534
+ /** Name */
535
+ name: string;
536
+ /** Category */
537
+ category: string;
538
+ /** Tags */
539
+ tags: string[];
540
+ /** Fallbacks */
541
+ fallbacks: string[];
542
+ };
543
+ /**
544
+ * CmsModelResponse
545
+ * @description Response schema for a CmsModel.
546
+ */
547
+ CmsModelResponse: {
548
+ /** Id */
549
+ id: string;
550
+ /** Business Id */
551
+ business_id: string;
552
+ /** Model Slug */
553
+ model_slug: string;
554
+ /** Display Name */
555
+ display_name: string;
556
+ /** Description */
557
+ description: string | null;
558
+ /** Fields */
559
+ fields: Record<string, never>[];
560
+ /** Permissions */
561
+ permissions: Record<string, never>;
562
+ };
563
+ /**
564
+ * CreateCmsEntryRequest
565
+ * @description Request schema for creating a CmsEntry.
566
+ */
567
+ CreateCmsEntryRequest: {
568
+ /**
569
+ * Data
570
+ * @description Dynamic entry data
571
+ */
572
+ data: Record<string, never>;
573
+ };
574
+ /**
575
+ * CreateCmsModelRequest
576
+ * @description Request schema for creating a CmsModel.
577
+ */
578
+ CreateCmsModelRequest: {
579
+ /**
580
+ * Business Id
581
+ * @description Business UUID (required for admin, auto-filled for merchants)
582
+ */
583
+ business_id?: string | null;
584
+ /**
585
+ * Model Slug
586
+ * @description URL-safe model identifier
587
+ */
588
+ model_slug: string;
589
+ /**
590
+ * Display Name
591
+ * @description Human-readable model name
592
+ */
593
+ display_name: string;
594
+ /**
595
+ * Description
596
+ * @description Model description
597
+ */
598
+ description?: string | null;
599
+ /**
600
+ * Fields
601
+ * @description Field definitions
602
+ */
603
+ fields: components["schemas"]["CmsFieldSchema"][];
604
+ /**
605
+ * Permissions
606
+ * @description Public API permissions
607
+ */
608
+ permissions?: Record<string, never> | null;
609
+ };
610
+ /**
611
+ * CreateIconRequest
612
+ * @description Request schema for creating a single icon.
613
+ */
614
+ CreateIconRequest: {
615
+ /**
616
+ * Package
617
+ * @description Icon package identifier (e.g., 'lucide-icons', 'material-icons')
618
+ */
619
+ package: string;
620
+ /**
621
+ * Name
622
+ * @description Icon name in camelCase (e.g., 'shoppingBag')
623
+ */
624
+ name: string;
625
+ /**
626
+ * Category
627
+ * @description Icon category
628
+ */
629
+ category: string;
630
+ /**
631
+ * Tags
632
+ * @description Search tags
633
+ */
634
+ tags?: string[];
635
+ /**
636
+ * Fallbacks
637
+ * @description Fallback icon names
638
+ */
639
+ fallbacks?: string[];
640
+ };
641
+ /** CreateLegalDocumentVersionRequest */
642
+ CreateLegalDocumentVersionRequest: {
643
+ /**
644
+ * Version
645
+ * @description Date-stamped, e.g. '2026-09-02'.
646
+ */
647
+ version: string;
648
+ /** Title */
649
+ title: string;
650
+ /** Sections */
651
+ sections: components["schemas"]["LegalSectionSchema"][];
652
+ /**
653
+ * Effective Date
654
+ * Format: date-time
655
+ */
656
+ effective_date: string;
657
+ };
658
+ /**
659
+ * GenerateMerchantLegalDocumentRequest
660
+ * @description variable_values only needs the fields the active template's
661
+ * variables_used actually declares that AREN'T already auto-populated
662
+ * from the business's real profile (BUSINESS_NAME, SUPPORT_EMAIL,
663
+ * SUPPORT_PHONE, PHYSICAL_ADDRESS, CURRENCY — see legal.py's generate
664
+ * endpoint) — in practice, today, that's just RETURN_WINDOW_DAYS. Any
665
+ * value supplied here for an auto-populated field is ignored; the real
666
+ * Business profile always wins, so a merchant's storefront legal
667
+ * documents can never drift from what their actual account says.
668
+ */
669
+ GenerateMerchantLegalDocumentRequest: {
670
+ /** Variable Values */
671
+ variable_values?: {
672
+ [key: string]: string;
673
+ };
674
+ };
675
+ /** HTTPValidationError */
676
+ HTTPValidationError: {
677
+ /** Detail */
678
+ detail?: components["schemas"]["ValidationError"][];
679
+ };
680
+ /** LegalDocumentVersionResponse */
681
+ LegalDocumentVersionResponse: {
682
+ /** Id */
683
+ id: string;
684
+ /** Document Type */
685
+ document_type: string;
686
+ /** Version */
687
+ version: string;
688
+ /** Title */
689
+ title: string;
690
+ /** Sections */
691
+ sections: components["schemas"]["LegalSectionSchema"][];
692
+ /** Variables Used */
693
+ variables_used: string[];
694
+ /**
695
+ * Effective Date
696
+ * Format: date-time
697
+ */
698
+ effective_date: string;
699
+ /** Is Active */
700
+ is_active: boolean;
701
+ /**
702
+ * Created At
703
+ * Format: date-time
704
+ */
705
+ created_at: string;
706
+ /** Created By */
707
+ created_by?: string | null;
708
+ };
709
+ /** LegalSectionSchema */
710
+ LegalSectionSchema: {
711
+ /** Heading */
712
+ heading: string;
713
+ /** Body */
714
+ body: string;
715
+ };
716
+ /** MerchantLegalDocumentResponse */
717
+ MerchantLegalDocumentResponse: {
718
+ /** Id */
719
+ id: string;
720
+ /** Business Id */
721
+ business_id: string;
722
+ /** Document Type */
723
+ document_type: string;
724
+ /** Template Version */
725
+ template_version: string;
726
+ /** Variable Values */
727
+ variable_values: {
728
+ [key: string]: string;
729
+ };
730
+ /** Rendered Sections */
731
+ rendered_sections: components["schemas"]["LegalSectionSchema"][];
732
+ /**
733
+ * Published At
734
+ * Format: date-time
735
+ */
736
+ published_at: string;
737
+ /** Is Active */
738
+ is_active: boolean;
739
+ };
740
+ /**
741
+ * UpdateCmsEntryRequest
742
+ * @description Request schema for updating a CmsEntry.
743
+ */
744
+ UpdateCmsEntryRequest: {
745
+ /**
746
+ * Data
747
+ * @description Updated entry data
748
+ */
749
+ data: Record<string, never>;
750
+ };
751
+ /**
752
+ * UpdateCmsModelRequest
753
+ * @description Request schema for updating a CmsModel.
754
+ */
755
+ UpdateCmsModelRequest: {
756
+ /** Display Name */
757
+ display_name?: string | null;
758
+ /** Description */
759
+ description?: string | null;
760
+ /** Fields */
761
+ fields?: components["schemas"]["CmsFieldSchema"][] | null;
762
+ /** Permissions */
763
+ permissions?: Record<string, never> | null;
764
+ };
765
+ /** ValidationError */
766
+ ValidationError: {
767
+ /** Location */
768
+ loc: (string | number)[];
769
+ /** Message */
770
+ msg: string;
771
+ /** Error Type */
772
+ type: string;
773
+ /** Input */
774
+ input?: unknown;
775
+ /** Context */
776
+ ctx?: Record<string, never>;
777
+ };
778
+ };
779
+ responses: never;
780
+ parameters: never;
781
+ requestBodies: never;
782
+ headers: never;
783
+ pathItems: never;
784
+ }
785
+ export type $defs = Record<string, never>;
786
+ export interface operations {
787
+ get_presigned_upload_url_api_v1_media_presigned_url_post: {
788
+ parameters: {
789
+ query: {
790
+ /** @description Original filename */
791
+ filename: string;
792
+ /** @description File content type */
793
+ content_type: string;
794
+ /** @description Business UUID */
795
+ business_id: string;
796
+ /** @description User UUID of uploader */
797
+ owner_id?: string | null;
798
+ /** @description Context type (e.g., cms) */
799
+ context: string;
800
+ /** @description Entity ID */
801
+ entity_id: string;
802
+ /** @description Entity tag - real Affiliation enum value (kasuvia-media-system/app/models/media.py), NOT the context string */
803
+ affiliation?: string;
804
+ /** @description Alt text */
805
+ alt?: string | null;
806
+ /** @description Description */
807
+ description?: string | null;
808
+ /** @description Idempotency key */
809
+ idempotency_key?: string | null;
810
+ /** @description URL expiration in seconds */
811
+ expires_in_seconds?: number;
812
+ };
813
+ header?: never;
814
+ path?: never;
815
+ cookie?: never;
816
+ };
817
+ requestBody?: never;
818
+ responses: {
819
+ /** @description Successful Response */
820
+ 200: {
821
+ headers: {
822
+ [name: string]: unknown;
823
+ };
824
+ content: {
825
+ "application/json": unknown;
826
+ };
827
+ };
828
+ /** @description Validation Error */
829
+ 422: {
830
+ headers: {
831
+ [name: string]: unknown;
832
+ };
833
+ content: {
834
+ "application/json": components["schemas"]["HTTPValidationError"];
835
+ };
836
+ };
837
+ };
838
+ };
839
+ confirm_upload_api_v1_media_confirm_upload_post: {
840
+ parameters: {
841
+ query: {
842
+ /** @description Storage path in R2 */
843
+ storage_path: string;
844
+ /** @description Business UUID */
845
+ business_id: string;
846
+ /** @description Context type */
847
+ context: string;
848
+ /** @description Entity ID */
849
+ entity_id: string;
850
+ /** @description Original filename */
851
+ original_filename: string;
852
+ /** @description File content type */
853
+ content_type: string;
854
+ /** @description File size in bytes */
855
+ size: number;
856
+ /** @description Entity tag - real Affiliation enum value (kasuvia-media-system/app/models/media.py), NOT the context string */
857
+ affiliation?: string;
858
+ /** @description User UUID of uploader */
859
+ owner_id?: string | null;
860
+ /** @description Alt text */
861
+ alt?: string | null;
862
+ /** @description Description */
863
+ description?: string | null;
864
+ /** @description Idempotency key */
865
+ idempotency_key?: string | null;
866
+ };
867
+ header?: never;
868
+ path?: never;
869
+ cookie?: never;
870
+ };
871
+ requestBody?: never;
872
+ responses: {
873
+ /** @description Successful Response */
874
+ 200: {
875
+ headers: {
876
+ [name: string]: unknown;
877
+ };
878
+ content: {
879
+ "application/json": unknown;
880
+ };
881
+ };
882
+ /** @description Validation Error */
883
+ 422: {
884
+ headers: {
885
+ [name: string]: unknown;
886
+ };
887
+ content: {
888
+ "application/json": components["schemas"]["HTTPValidationError"];
889
+ };
890
+ };
891
+ };
892
+ };
893
+ delete_media_api_v1_media__media_id__delete: {
894
+ parameters: {
895
+ query: {
896
+ /** @description Business UUID — must match the caller's own business context */
897
+ business_id: string;
898
+ };
899
+ header?: never;
900
+ path: {
901
+ media_id: string;
902
+ };
903
+ cookie?: never;
904
+ };
905
+ requestBody?: never;
906
+ responses: {
907
+ /** @description Successful Response */
908
+ 200: {
909
+ headers: {
910
+ [name: string]: unknown;
911
+ };
912
+ content: {
913
+ "application/json": unknown;
914
+ };
915
+ };
916
+ /** @description Validation Error */
917
+ 422: {
918
+ headers: {
919
+ [name: string]: unknown;
920
+ };
921
+ content: {
922
+ "application/json": components["schemas"]["HTTPValidationError"];
923
+ };
924
+ };
925
+ };
926
+ };
927
+ list_cms_models_api_v1_cms_models_get: {
928
+ parameters: {
929
+ query?: never;
930
+ header?: never;
931
+ path?: never;
932
+ cookie?: never;
933
+ };
934
+ requestBody?: never;
935
+ responses: {
936
+ /** @description Successful Response */
937
+ 200: {
938
+ headers: {
939
+ [name: string]: unknown;
940
+ };
941
+ content: {
942
+ "application/json": components["schemas"]["CmsModelResponse"][];
943
+ };
944
+ };
945
+ };
946
+ };
947
+ create_cms_model_api_v1_cms_models_post: {
948
+ parameters: {
949
+ query?: never;
950
+ header?: never;
951
+ path?: never;
952
+ cookie?: never;
953
+ };
954
+ requestBody: {
955
+ content: {
956
+ "application/json": components["schemas"]["CreateCmsModelRequest"];
957
+ };
958
+ };
959
+ responses: {
960
+ /** @description Successful Response */
961
+ 201: {
962
+ headers: {
963
+ [name: string]: unknown;
964
+ };
965
+ content: {
966
+ "application/json": components["schemas"]["CmsModelResponse"];
967
+ };
968
+ };
969
+ /** @description Validation Error */
970
+ 422: {
971
+ headers: {
972
+ [name: string]: unknown;
973
+ };
974
+ content: {
975
+ "application/json": components["schemas"]["HTTPValidationError"];
976
+ };
977
+ };
978
+ };
979
+ };
980
+ get_cms_model_api_v1_cms_models__model_slug__get: {
981
+ parameters: {
982
+ query?: never;
983
+ header?: never;
984
+ path: {
985
+ model_slug: string;
986
+ };
987
+ cookie?: never;
988
+ };
989
+ requestBody?: never;
990
+ responses: {
991
+ /** @description Successful Response */
992
+ 200: {
993
+ headers: {
994
+ [name: string]: unknown;
995
+ };
996
+ content: {
997
+ "application/json": components["schemas"]["CmsModelResponse"];
998
+ };
999
+ };
1000
+ /** @description Validation Error */
1001
+ 422: {
1002
+ headers: {
1003
+ [name: string]: unknown;
1004
+ };
1005
+ content: {
1006
+ "application/json": components["schemas"]["HTTPValidationError"];
1007
+ };
1008
+ };
1009
+ };
1010
+ };
1011
+ update_cms_model_api_v1_cms_models__model_slug__put: {
1012
+ parameters: {
1013
+ query?: never;
1014
+ header?: never;
1015
+ path: {
1016
+ model_slug: string;
1017
+ };
1018
+ cookie?: never;
1019
+ };
1020
+ requestBody: {
1021
+ content: {
1022
+ "application/json": components["schemas"]["UpdateCmsModelRequest"];
1023
+ };
1024
+ };
1025
+ responses: {
1026
+ /** @description Successful Response */
1027
+ 200: {
1028
+ headers: {
1029
+ [name: string]: unknown;
1030
+ };
1031
+ content: {
1032
+ "application/json": components["schemas"]["CmsModelResponse"];
1033
+ };
1034
+ };
1035
+ /** @description Validation Error */
1036
+ 422: {
1037
+ headers: {
1038
+ [name: string]: unknown;
1039
+ };
1040
+ content: {
1041
+ "application/json": components["schemas"]["HTTPValidationError"];
1042
+ };
1043
+ };
1044
+ };
1045
+ };
1046
+ delete_cms_model_api_v1_cms_models__model_slug__delete: {
1047
+ parameters: {
1048
+ query?: never;
1049
+ header?: never;
1050
+ path: {
1051
+ model_slug: string;
1052
+ };
1053
+ cookie?: never;
1054
+ };
1055
+ requestBody?: never;
1056
+ responses: {
1057
+ /** @description Successful Response */
1058
+ 204: {
1059
+ headers: {
1060
+ [name: string]: unknown;
1061
+ };
1062
+ content?: never;
1063
+ };
1064
+ /** @description Validation Error */
1065
+ 422: {
1066
+ headers: {
1067
+ [name: string]: unknown;
1068
+ };
1069
+ content: {
1070
+ "application/json": components["schemas"]["HTTPValidationError"];
1071
+ };
1072
+ };
1073
+ };
1074
+ };
1075
+ list_cms_entries_api_v1_cms_models__model_slug__entries_get: {
1076
+ parameters: {
1077
+ query?: {
1078
+ /** @description Page number */
1079
+ page?: number;
1080
+ /** @description Items per page */
1081
+ page_size?: number;
1082
+ };
1083
+ header?: never;
1084
+ path: {
1085
+ model_slug: string;
1086
+ };
1087
+ cookie?: never;
1088
+ };
1089
+ requestBody?: never;
1090
+ responses: {
1091
+ /** @description Successful Response */
1092
+ 200: {
1093
+ headers: {
1094
+ [name: string]: unknown;
1095
+ };
1096
+ content: {
1097
+ "application/json": components["schemas"]["CmsEntryListResponse"];
1098
+ };
1099
+ };
1100
+ /** @description Validation Error */
1101
+ 422: {
1102
+ headers: {
1103
+ [name: string]: unknown;
1104
+ };
1105
+ content: {
1106
+ "application/json": components["schemas"]["HTTPValidationError"];
1107
+ };
1108
+ };
1109
+ };
1110
+ };
1111
+ create_cms_entry_api_v1_cms_models__model_slug__entries_post: {
1112
+ parameters: {
1113
+ query?: never;
1114
+ header?: never;
1115
+ path: {
1116
+ model_slug: string;
1117
+ };
1118
+ cookie?: never;
1119
+ };
1120
+ requestBody: {
1121
+ content: {
1122
+ "application/json": components["schemas"]["CreateCmsEntryRequest"];
1123
+ };
1124
+ };
1125
+ responses: {
1126
+ /** @description Successful Response */
1127
+ 201: {
1128
+ headers: {
1129
+ [name: string]: unknown;
1130
+ };
1131
+ content: {
1132
+ "application/json": components["schemas"]["CmsEntryResponse"];
1133
+ };
1134
+ };
1135
+ /** @description Validation Error */
1136
+ 422: {
1137
+ headers: {
1138
+ [name: string]: unknown;
1139
+ };
1140
+ content: {
1141
+ "application/json": components["schemas"]["HTTPValidationError"];
1142
+ };
1143
+ };
1144
+ };
1145
+ };
1146
+ get_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__get: {
1147
+ parameters: {
1148
+ query?: never;
1149
+ header?: never;
1150
+ path: {
1151
+ model_slug: string;
1152
+ entry_id: string;
1153
+ };
1154
+ cookie?: never;
1155
+ };
1156
+ requestBody?: never;
1157
+ responses: {
1158
+ /** @description Successful Response */
1159
+ 200: {
1160
+ headers: {
1161
+ [name: string]: unknown;
1162
+ };
1163
+ content: {
1164
+ "application/json": components["schemas"]["CmsEntryResponse"];
1165
+ };
1166
+ };
1167
+ /** @description Validation Error */
1168
+ 422: {
1169
+ headers: {
1170
+ [name: string]: unknown;
1171
+ };
1172
+ content: {
1173
+ "application/json": components["schemas"]["HTTPValidationError"];
1174
+ };
1175
+ };
1176
+ };
1177
+ };
1178
+ update_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__put: {
1179
+ parameters: {
1180
+ query?: never;
1181
+ header?: never;
1182
+ path: {
1183
+ model_slug: string;
1184
+ entry_id: string;
1185
+ };
1186
+ cookie?: never;
1187
+ };
1188
+ requestBody: {
1189
+ content: {
1190
+ "application/json": components["schemas"]["UpdateCmsEntryRequest"];
1191
+ };
1192
+ };
1193
+ responses: {
1194
+ /** @description Successful Response */
1195
+ 200: {
1196
+ headers: {
1197
+ [name: string]: unknown;
1198
+ };
1199
+ content: {
1200
+ "application/json": components["schemas"]["CmsEntryResponse"];
1201
+ };
1202
+ };
1203
+ /** @description Validation Error */
1204
+ 422: {
1205
+ headers: {
1206
+ [name: string]: unknown;
1207
+ };
1208
+ content: {
1209
+ "application/json": components["schemas"]["HTTPValidationError"];
1210
+ };
1211
+ };
1212
+ };
1213
+ };
1214
+ delete_cms_entry_api_v1_cms_models__model_slug__entries__entry_id__delete: {
1215
+ parameters: {
1216
+ query?: never;
1217
+ header?: never;
1218
+ path: {
1219
+ model_slug: string;
1220
+ entry_id: string;
1221
+ };
1222
+ cookie?: never;
1223
+ };
1224
+ requestBody?: never;
1225
+ responses: {
1226
+ /** @description Successful Response */
1227
+ 204: {
1228
+ headers: {
1229
+ [name: string]: unknown;
1230
+ };
1231
+ content?: never;
1232
+ };
1233
+ /** @description Validation Error */
1234
+ 422: {
1235
+ headers: {
1236
+ [name: string]: unknown;
1237
+ };
1238
+ content: {
1239
+ "application/json": components["schemas"]["HTTPValidationError"];
1240
+ };
1241
+ };
1242
+ };
1243
+ };
1244
+ search_cms_icons_api_v1_cms_icons_get: {
1245
+ parameters: {
1246
+ query?: {
1247
+ /** @description Text search query for icon names/tags */
1248
+ query?: string | null;
1249
+ /** @description Filter by icon category */
1250
+ category?: string | null;
1251
+ /** @description Filter by icon package (default: lucide-icons) */
1252
+ package?: string | null;
1253
+ /** @description Maximum results to return */
1254
+ limit?: number;
1255
+ };
1256
+ header?: never;
1257
+ path?: never;
1258
+ cookie?: never;
1259
+ };
1260
+ requestBody?: never;
1261
+ responses: {
1262
+ /** @description Successful Response */
1263
+ 200: {
1264
+ headers: {
1265
+ [name: string]: unknown;
1266
+ };
1267
+ content: {
1268
+ "application/json": components["schemas"]["CmsIconListResponse"];
1269
+ };
1270
+ };
1271
+ /** @description Validation Error */
1272
+ 422: {
1273
+ headers: {
1274
+ [name: string]: unknown;
1275
+ };
1276
+ content: {
1277
+ "application/json": components["schemas"]["HTTPValidationError"];
1278
+ };
1279
+ };
1280
+ };
1281
+ };
1282
+ list_icon_categories_api_v1_cms_icons_categories_get: {
1283
+ parameters: {
1284
+ query?: {
1285
+ /** @description Filter categories by package */
1286
+ package?: string | null;
1287
+ };
1288
+ header?: never;
1289
+ path?: never;
1290
+ cookie?: never;
1291
+ };
1292
+ requestBody?: never;
1293
+ responses: {
1294
+ /** @description Successful Response */
1295
+ 200: {
1296
+ headers: {
1297
+ [name: string]: unknown;
1298
+ };
1299
+ content: {
1300
+ "application/json": string[];
1301
+ };
1302
+ };
1303
+ /** @description Validation Error */
1304
+ 422: {
1305
+ headers: {
1306
+ [name: string]: unknown;
1307
+ };
1308
+ content: {
1309
+ "application/json": components["schemas"]["HTTPValidationError"];
1310
+ };
1311
+ };
1312
+ };
1313
+ };
1314
+ list_icon_packages_api_v1_cms_icons_packages_get: {
1315
+ parameters: {
1316
+ query?: never;
1317
+ header?: never;
1318
+ path?: never;
1319
+ cookie?: never;
1320
+ };
1321
+ requestBody?: never;
1322
+ responses: {
1323
+ /** @description Successful Response */
1324
+ 200: {
1325
+ headers: {
1326
+ [name: string]: unknown;
1327
+ };
1328
+ content: {
1329
+ "application/json": string[];
1330
+ };
1331
+ };
1332
+ };
1333
+ };
1334
+ sdk_list_entries_api_v1_sdk__business_id___model_slug__entries_get: {
1335
+ parameters: {
1336
+ query?: {
1337
+ /** @description Page number */
1338
+ page?: number;
1339
+ /** @description Items per page */
1340
+ page_size?: number;
1341
+ };
1342
+ header?: never;
1343
+ path: {
1344
+ business_id: string;
1345
+ model_slug: string;
1346
+ };
1347
+ cookie?: never;
1348
+ };
1349
+ requestBody?: never;
1350
+ responses: {
1351
+ /** @description Successful Response */
1352
+ 200: {
1353
+ headers: {
1354
+ [name: string]: unknown;
1355
+ };
1356
+ content: {
1357
+ "application/json": components["schemas"]["CmsEntryListResponse"];
1358
+ };
1359
+ };
1360
+ /** @description Validation Error */
1361
+ 422: {
1362
+ headers: {
1363
+ [name: string]: unknown;
1364
+ };
1365
+ content: {
1366
+ "application/json": components["schemas"]["HTTPValidationError"];
1367
+ };
1368
+ };
1369
+ };
1370
+ };
1371
+ sdk_create_entry_api_v1_sdk__business_id___model_slug__entries_post: {
1372
+ parameters: {
1373
+ query?: never;
1374
+ header?: never;
1375
+ path: {
1376
+ business_id: string;
1377
+ model_slug: string;
1378
+ };
1379
+ cookie?: never;
1380
+ };
1381
+ requestBody: {
1382
+ content: {
1383
+ "application/json": components["schemas"]["CreateCmsEntryRequest"];
1384
+ };
1385
+ };
1386
+ responses: {
1387
+ /** @description Successful Response */
1388
+ 201: {
1389
+ headers: {
1390
+ [name: string]: unknown;
1391
+ };
1392
+ content: {
1393
+ "application/json": components["schemas"]["CmsEntryResponse"];
1394
+ };
1395
+ };
1396
+ /** @description Validation Error */
1397
+ 422: {
1398
+ headers: {
1399
+ [name: string]: unknown;
1400
+ };
1401
+ content: {
1402
+ "application/json": components["schemas"]["HTTPValidationError"];
1403
+ };
1404
+ };
1405
+ };
1406
+ };
1407
+ sdk_get_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__get: {
1408
+ parameters: {
1409
+ query?: never;
1410
+ header?: never;
1411
+ path: {
1412
+ business_id: string;
1413
+ model_slug: string;
1414
+ entry_id: string;
1415
+ };
1416
+ cookie?: never;
1417
+ };
1418
+ requestBody?: never;
1419
+ responses: {
1420
+ /** @description Successful Response */
1421
+ 200: {
1422
+ headers: {
1423
+ [name: string]: unknown;
1424
+ };
1425
+ content: {
1426
+ "application/json": components["schemas"]["CmsEntryResponse"];
1427
+ };
1428
+ };
1429
+ /** @description Validation Error */
1430
+ 422: {
1431
+ headers: {
1432
+ [name: string]: unknown;
1433
+ };
1434
+ content: {
1435
+ "application/json": components["schemas"]["HTTPValidationError"];
1436
+ };
1437
+ };
1438
+ };
1439
+ };
1440
+ sdk_update_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__put: {
1441
+ parameters: {
1442
+ query?: never;
1443
+ header?: never;
1444
+ path: {
1445
+ business_id: string;
1446
+ model_slug: string;
1447
+ entry_id: string;
1448
+ };
1449
+ cookie?: never;
1450
+ };
1451
+ requestBody: {
1452
+ content: {
1453
+ "application/json": components["schemas"]["UpdateCmsEntryRequest"];
1454
+ };
1455
+ };
1456
+ responses: {
1457
+ /** @description Successful Response */
1458
+ 200: {
1459
+ headers: {
1460
+ [name: string]: unknown;
1461
+ };
1462
+ content: {
1463
+ "application/json": components["schemas"]["CmsEntryResponse"];
1464
+ };
1465
+ };
1466
+ /** @description Validation Error */
1467
+ 422: {
1468
+ headers: {
1469
+ [name: string]: unknown;
1470
+ };
1471
+ content: {
1472
+ "application/json": components["schemas"]["HTTPValidationError"];
1473
+ };
1474
+ };
1475
+ };
1476
+ };
1477
+ sdk_delete_entry_api_v1_sdk__business_id___model_slug__entries__entry_id__delete: {
1478
+ parameters: {
1479
+ query?: never;
1480
+ header?: never;
1481
+ path: {
1482
+ business_id: string;
1483
+ model_slug: string;
1484
+ entry_id: string;
1485
+ };
1486
+ cookie?: never;
1487
+ };
1488
+ requestBody?: never;
1489
+ responses: {
1490
+ /** @description Successful Response */
1491
+ 204: {
1492
+ headers: {
1493
+ [name: string]: unknown;
1494
+ };
1495
+ content?: never;
1496
+ };
1497
+ /** @description Validation Error */
1498
+ 422: {
1499
+ headers: {
1500
+ [name: string]: unknown;
1501
+ };
1502
+ content: {
1503
+ "application/json": components["schemas"]["HTTPValidationError"];
1504
+ };
1505
+ };
1506
+ };
1507
+ };
1508
+ get_active_platform_document_api_v1_cms_legal_platform__document_type__get: {
1509
+ parameters: {
1510
+ query?: never;
1511
+ header?: never;
1512
+ path: {
1513
+ document_type: string;
1514
+ };
1515
+ cookie?: never;
1516
+ };
1517
+ requestBody?: never;
1518
+ responses: {
1519
+ /** @description Successful Response */
1520
+ 200: {
1521
+ headers: {
1522
+ [name: string]: unknown;
1523
+ };
1524
+ content: {
1525
+ "application/json": components["schemas"]["LegalDocumentVersionResponse"];
1526
+ };
1527
+ };
1528
+ /** @description Validation Error */
1529
+ 422: {
1530
+ headers: {
1531
+ [name: string]: unknown;
1532
+ };
1533
+ content: {
1534
+ "application/json": components["schemas"]["HTTPValidationError"];
1535
+ };
1536
+ };
1537
+ };
1538
+ };
1539
+ get_active_storefront_template_api_v1_cms_legal_storefront_template__document_type__get: {
1540
+ parameters: {
1541
+ query?: never;
1542
+ header?: never;
1543
+ path: {
1544
+ document_type: string;
1545
+ };
1546
+ cookie?: never;
1547
+ };
1548
+ requestBody?: never;
1549
+ responses: {
1550
+ /** @description Successful Response */
1551
+ 200: {
1552
+ headers: {
1553
+ [name: string]: unknown;
1554
+ };
1555
+ content: {
1556
+ "application/json": components["schemas"]["LegalDocumentVersionResponse"];
1557
+ };
1558
+ };
1559
+ /** @description Validation Error */
1560
+ 422: {
1561
+ headers: {
1562
+ [name: string]: unknown;
1563
+ };
1564
+ content: {
1565
+ "application/json": components["schemas"]["HTTPValidationError"];
1566
+ };
1567
+ };
1568
+ };
1569
+ };
1570
+ generate_merchant_legal_document_api_v1_cms_legal_storefront__document_type__generate_post: {
1571
+ parameters: {
1572
+ query?: never;
1573
+ header?: never;
1574
+ path: {
1575
+ document_type: string;
1576
+ };
1577
+ cookie?: never;
1578
+ };
1579
+ requestBody: {
1580
+ content: {
1581
+ "application/json": components["schemas"]["GenerateMerchantLegalDocumentRequest"];
1582
+ };
1583
+ };
1584
+ responses: {
1585
+ /** @description Successful Response */
1586
+ 201: {
1587
+ headers: {
1588
+ [name: string]: unknown;
1589
+ };
1590
+ content: {
1591
+ "application/json": components["schemas"]["MerchantLegalDocumentResponse"];
1592
+ };
1593
+ };
1594
+ /** @description Validation Error */
1595
+ 422: {
1596
+ headers: {
1597
+ [name: string]: unknown;
1598
+ };
1599
+ content: {
1600
+ "application/json": components["schemas"]["HTTPValidationError"];
1601
+ };
1602
+ };
1603
+ };
1604
+ };
1605
+ get_own_merchant_legal_document_api_v1_cms_legal_storefront__document_type__get: {
1606
+ parameters: {
1607
+ query?: never;
1608
+ header?: never;
1609
+ path: {
1610
+ document_type: string;
1611
+ };
1612
+ cookie?: never;
1613
+ };
1614
+ requestBody?: never;
1615
+ responses: {
1616
+ /** @description Successful Response */
1617
+ 200: {
1618
+ headers: {
1619
+ [name: string]: unknown;
1620
+ };
1621
+ content: {
1622
+ "application/json": components["schemas"]["MerchantLegalDocumentResponse"];
1623
+ };
1624
+ };
1625
+ /** @description Validation Error */
1626
+ 422: {
1627
+ headers: {
1628
+ [name: string]: unknown;
1629
+ };
1630
+ content: {
1631
+ "application/json": components["schemas"]["HTTPValidationError"];
1632
+ };
1633
+ };
1634
+ };
1635
+ };
1636
+ get_public_merchant_legal_document_api_v1_cms_legal_storefront__business_id___document_type__get: {
1637
+ parameters: {
1638
+ query?: never;
1639
+ header?: never;
1640
+ path: {
1641
+ business_id: string;
1642
+ document_type: string;
1643
+ };
1644
+ cookie?: never;
1645
+ };
1646
+ requestBody?: never;
1647
+ responses: {
1648
+ /** @description Successful Response */
1649
+ 200: {
1650
+ headers: {
1651
+ [name: string]: unknown;
1652
+ };
1653
+ content: {
1654
+ "application/json": components["schemas"]["MerchantLegalDocumentResponse"];
1655
+ };
1656
+ };
1657
+ /** @description Validation Error */
1658
+ 422: {
1659
+ headers: {
1660
+ [name: string]: unknown;
1661
+ };
1662
+ content: {
1663
+ "application/json": components["schemas"]["HTTPValidationError"];
1664
+ };
1665
+ };
1666
+ };
1667
+ };
1668
+ }