@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,2935 @@
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/auth/2fa/verify/": {
8
+ parameters: {
9
+ query?: never;
10
+ header?: never;
11
+ path?: never;
12
+ cookie?: never;
13
+ };
14
+ get?: never;
15
+ put?: never;
16
+ /** @description Verify the second factor (TOTP, PIN, Email, or Backup code). */
17
+ post: operations["v1_auth_2fa_verify_create"];
18
+ delete?: never;
19
+ options?: never;
20
+ head?: never;
21
+ patch?: never;
22
+ trace?: never;
23
+ };
24
+ "/api/v1/auth/business-types/": {
25
+ parameters: {
26
+ query?: never;
27
+ header?: never;
28
+ path?: never;
29
+ cookie?: never;
30
+ };
31
+ /** @description GET /auth/business-types/ — List active business categories. */
32
+ get: operations["v1_auth_business_types_retrieve"];
33
+ put?: never;
34
+ post?: never;
35
+ delete?: never;
36
+ options?: never;
37
+ head?: never;
38
+ patch?: never;
39
+ trace?: never;
40
+ };
41
+ "/api/v1/auth/businesses/{business_id}/": {
42
+ parameters: {
43
+ query?: never;
44
+ header?: never;
45
+ path?: never;
46
+ cookie?: never;
47
+ };
48
+ /** @description GET/PUT/PATCH /auth/businesses/<id>/ — Manage a specific business. */
49
+ get: operations["v1_auth_businesses_retrieve"];
50
+ put?: never;
51
+ post?: never;
52
+ /**
53
+ * @description Deactivate a business — never an instant hard-delete (see
54
+ * Business.delete's own docstring for why: cross-service data in
55
+ * kasuvia-store-management/kasuvia-payment-system-go/kasuvia-media-
56
+ * system would be orphaned with zero warning, and the Privacy Policy
57
+ * itself promises real retention periods this platform must honor).
58
+ * Starts a real, reversible grace period — see deactivated_at/
59
+ * scheduled_deletion_at on the model, and POST .../reactivate/ below.
60
+ *
61
+ * REAL GAPS FIXED (see this session's account-deactivation review):
62
+ * this used to (a) never publish any event at all, so no other
63
+ * service could react, and (b) have no path back — no reactivate
64
+ * endpoint existed anywhere, and the business became invisible even
65
+ * to its own owner the instant this ran (see _get_business's
66
+ * include_inactive fix); and (c) run on a single bare API call with
67
+ * no confirmation of any kind — see require_destructive_confirmation
68
+ * below.
69
+ */
70
+ delete: operations["v1_auth_businesses_destroy"];
71
+ options?: never;
72
+ head?: never;
73
+ /** @description GET/PUT/PATCH /auth/businesses/<id>/ — Manage a specific business. */
74
+ patch: operations["v1_auth_businesses_partial_update"];
75
+ trace?: never;
76
+ };
77
+ "/api/v1/auth/businesses/{business_id}/customers/": {
78
+ parameters: {
79
+ query?: never;
80
+ header?: never;
81
+ path?: never;
82
+ cookie?: never;
83
+ };
84
+ /**
85
+ * @description GET /auth/businesses/<business_id>/customers/ — List business customers.
86
+ *
87
+ * The <business_id> URL segment exists for REST readability only. The
88
+ * business context actually used is always the caller's own, taken from
89
+ * their authenticated JWT (`business_uuid` claim, the internal UUID) —
90
+ * never from client-suppliable input. This matches the corrected pattern in
91
+ * StaffInviteView (see feedback_kasuvia_business_id_vs_bid): an
92
+ * owner/staff endpoint must not let a client point it at an arbitrary
93
+ * business by editing the URL.
94
+ */
95
+ get: operations["v1_auth_businesses_customers_retrieve"];
96
+ put?: never;
97
+ post?: never;
98
+ delete?: never;
99
+ options?: never;
100
+ head?: never;
101
+ patch?: never;
102
+ trace?: never;
103
+ };
104
+ "/api/v1/auth/businesses/{business_id}/customers/{customer_id}/": {
105
+ parameters: {
106
+ query?: never;
107
+ header?: never;
108
+ path?: never;
109
+ cookie?: never;
110
+ };
111
+ /**
112
+ * @description GET /auth/businesses/<business_id>/customers/<customer_id>/ — Fetch one
113
+ * business customer by id.
114
+ *
115
+ * Added (2026-09-16, kasuvia/ connectivity audit): no dedicated single-
116
+ * customer endpoint existed before this — kasuvia/'s getBusinessCustomer()
117
+ * was fetching the entire (default page-size, page-1-only) customer list
118
+ * and searching client-side, which was both wasteful AND actually broken
119
+ * for any business with more than one page of customers (a customer past
120
+ * page 1 silently looked "not found"). Mirrors CustomerListView's own
121
+ * business-resolution/authorization logic exactly (kept as its own copy
122
+ * rather than refactoring that existing, working view to share it — see
123
+ * CLAUDE.md's no-rewrite-without-request rule).
124
+ */
125
+ get: operations["v1_auth_businesses_customers_retrieve_2"];
126
+ put?: never;
127
+ post?: never;
128
+ delete?: never;
129
+ options?: never;
130
+ head?: never;
131
+ patch?: never;
132
+ trace?: never;
133
+ };
134
+ "/api/v1/auth/businesses/{business_id}/reactivate/": {
135
+ parameters: {
136
+ query?: never;
137
+ header?: never;
138
+ path?: never;
139
+ cookie?: never;
140
+ };
141
+ get?: never;
142
+ put?: never;
143
+ /**
144
+ * @description POST /auth/businesses/<business_id>/reactivate/ — REAL GAP FIXED: no
145
+ * reactivate endpoint existed anywhere; a deactivated business had no way
146
+ * back at all. Owner/admin only, same permission shape as
147
+ * BusinessDetailView.delete. Real-world equivalent of Shopify "reopen your
148
+ * store" — reverses deactivation cleanly as long as the grace period
149
+ * hasn't already been consumed by the scheduled hard-delete sweep (see
150
+ * purge_deactivated_businesses).
151
+ */
152
+ post: operations["v1_auth_businesses_reactivate_create"];
153
+ delete?: never;
154
+ options?: never;
155
+ head?: never;
156
+ patch?: never;
157
+ trace?: never;
158
+ };
159
+ "/api/v1/auth/businesses/{business_id}/storefront-key/": {
160
+ parameters: {
161
+ query?: never;
162
+ header?: never;
163
+ path?: never;
164
+ cookie?: never;
165
+ };
166
+ /**
167
+ * @description GET/POST /auth/businesses/<id>/storefront-key/
168
+ * Retrieves or regenerates the public storefront API key.
169
+ */
170
+ get: operations["v1_auth_businesses_storefront_key_retrieve"];
171
+ put?: never;
172
+ /** @description Generate or regenerate the API key. Shown once, in this response only. */
173
+ post: operations["v1_auth_businesses_storefront_key_create"];
174
+ /**
175
+ * @description Revoke the current storefront API key immediately, without issuing a
176
+ * replacement. Every service validates this key live (no caching that
177
+ * would delay revocation — see get_storefront_identity in each
178
+ * service's app/core/security/base.py), so the very next request using
179
+ * this key is rejected. To restore storefront access, POST to this
180
+ * same endpoint to rotate in a fresh key.
181
+ */
182
+ delete: operations["v1_auth_businesses_storefront_key_destroy"];
183
+ options?: never;
184
+ head?: never;
185
+ patch?: never;
186
+ trace?: never;
187
+ };
188
+ "/api/v1/auth/change-password/": {
189
+ parameters: {
190
+ query?: never;
191
+ header?: never;
192
+ path?: never;
193
+ cookie?: never;
194
+ };
195
+ get?: never;
196
+ put?: never;
197
+ /** @description Change password for authenticated user. */
198
+ post: operations["v1_auth_change_password_create"];
199
+ delete?: never;
200
+ options?: never;
201
+ head?: never;
202
+ patch?: never;
203
+ trace?: never;
204
+ };
205
+ "/api/v1/auth/confirm-reactivate/": {
206
+ parameters: {
207
+ query?: never;
208
+ header?: never;
209
+ path?: never;
210
+ cookie?: never;
211
+ };
212
+ get?: never;
213
+ put?: never;
214
+ post: operations["v1_auth_confirm_reactivate_create"];
215
+ delete?: never;
216
+ options?: never;
217
+ head?: never;
218
+ patch?: never;
219
+ trace?: never;
220
+ };
221
+ "/api/v1/auth/countries/": {
222
+ parameters: {
223
+ query?: never;
224
+ header?: never;
225
+ path?: never;
226
+ cookie?: never;
227
+ };
228
+ /**
229
+ * @description Get all supported countries.
230
+ *
231
+ * Returns:
232
+ * List of countries with name, ISO code, dialing code, and minimum age for business ownership.
233
+ */
234
+ get: operations["v1_auth_countries_retrieve"];
235
+ put?: never;
236
+ post?: never;
237
+ delete?: never;
238
+ options?: never;
239
+ head?: never;
240
+ patch?: never;
241
+ trace?: never;
242
+ };
243
+ "/api/v1/auth/countries/{iso_code}/states/": {
244
+ parameters: {
245
+ query?: never;
246
+ header?: never;
247
+ path?: never;
248
+ cookie?: never;
249
+ };
250
+ /**
251
+ * @description Get all states/subdivisions for a given country's ISO code.
252
+ *
253
+ * Returns:
254
+ * List of states with name, short code, full ISO-3166-2 code, and subdivision type.
255
+ */
256
+ get: operations["v1_auth_countries_states_retrieve"];
257
+ put?: never;
258
+ post?: never;
259
+ delete?: never;
260
+ options?: never;
261
+ head?: never;
262
+ patch?: never;
263
+ trace?: never;
264
+ };
265
+ "/api/v1/auth/customer/deactivate/": {
266
+ parameters: {
267
+ query?: never;
268
+ header?: never;
269
+ path?: never;
270
+ cookie?: never;
271
+ };
272
+ get?: never;
273
+ put?: never;
274
+ /**
275
+ * @description POST /auth/customer/deactivate/ — Real gap fixed (see account-
276
+ * deactivation review): CustomerProfile.is_active existed but nothing
277
+ * ever wrote False to it. Self-service only, mirrors the User-level
278
+ * DeactivateAccountView's shape, minus _check_business_constraints
279
+ * (owner-only concern, meaningless for a customer identity).
280
+ *
281
+ * KasuviaJWTAuthentication._get_customer_user re-fetches CustomerProfile
282
+ * with is_active=True on every request, not just at login — so this
283
+ * single write immediately invalidates this customer's session (this
284
+ * very request's response is the last thing their current token can do)
285
+ * and blocks future login, with no separate token-revocation step needed.
286
+ */
287
+ post: operations["v1_auth_customer_deactivate_create"];
288
+ delete?: never;
289
+ options?: never;
290
+ head?: never;
291
+ patch?: never;
292
+ trace?: never;
293
+ };
294
+ "/api/v1/auth/customer/reactivate/": {
295
+ parameters: {
296
+ query?: never;
297
+ header?: never;
298
+ path?: never;
299
+ cookie?: never;
300
+ };
301
+ get?: never;
302
+ put?: never;
303
+ /**
304
+ * @description POST /auth/customer/reactivate/ — Request a reactivation OTP for a
305
+ * deactivated customer account, scoped to one business (a customer
306
+ * identity is per-business — see plan: Customer Identity Decoupling).
307
+ * Unauthenticated by necessity: a deactivated customer cannot obtain a
308
+ * valid token to hit an authenticated endpoint in the first place.
309
+ */
310
+ post: operations["v1_auth_customer_reactivate_create"];
311
+ delete?: never;
312
+ options?: never;
313
+ head?: never;
314
+ patch?: never;
315
+ trace?: never;
316
+ };
317
+ "/api/v1/auth/customer/reactivate/verify/": {
318
+ parameters: {
319
+ query?: never;
320
+ header?: never;
321
+ path?: never;
322
+ cookie?: never;
323
+ };
324
+ get?: never;
325
+ put?: never;
326
+ /** @description POST /auth/customer/reactivate/verify/ — Verify a customer reactivation OTP and restore the account. */
327
+ post: operations["v1_auth_customer_reactivate_verify_create"];
328
+ delete?: never;
329
+ options?: never;
330
+ head?: never;
331
+ patch?: never;
332
+ trace?: never;
333
+ };
334
+ "/api/v1/auth/deactivate/": {
335
+ parameters: {
336
+ query?: never;
337
+ header?: never;
338
+ path?: never;
339
+ cookie?: never;
340
+ };
341
+ get?: never;
342
+ put?: never;
343
+ /**
344
+ * @description POST /auth/deactivate/ — deactivates the CALLER'S OWN LOGIN (User.is_active),
345
+ * never a business. See DangerSection.tsx's own history for the exact mixup
346
+ * this must never be confused with again: the frontend used to point "Deactivate
347
+ * Store" at this endpoint, locking the owner out of their own dashboard while
348
+ * the storefront stayed fully live and still taking orders.
349
+ *
350
+ * REAL GAP FIXED (see account-deactivation review): this used to run on a
351
+ * single bare POST with no confirmation of any kind — the exact same "a
352
+ * compromised session or mis-wired button could trigger it" risk that
353
+ * require_destructive_confirmation was built for business deactivation. Now
354
+ * uses the identical two-step pattern.
355
+ */
356
+ post: operations["v1_auth_deactivate_create"];
357
+ delete?: never;
358
+ options?: never;
359
+ head?: never;
360
+ patch?: never;
361
+ trace?: never;
362
+ };
363
+ "/api/v1/auth/forgot-password/": {
364
+ parameters: {
365
+ query?: never;
366
+ header?: never;
367
+ path?: never;
368
+ cookie?: never;
369
+ };
370
+ get?: never;
371
+ put?: never;
372
+ post: operations["v1_auth_forgot_password_create"];
373
+ delete?: never;
374
+ options?: never;
375
+ head?: never;
376
+ patch?: never;
377
+ trace?: never;
378
+ };
379
+ "/api/v1/auth/forgot-password/customer/": {
380
+ parameters: {
381
+ query?: never;
382
+ header?: never;
383
+ path?: never;
384
+ cookie?: never;
385
+ };
386
+ get?: never;
387
+ put?: never;
388
+ /**
389
+ * @description POST /auth/forgot-password/customer/ — Request a password-reset OTP for
390
+ * a customer account, scoped to one business (a customer identity is
391
+ * fully decoupled/per-business — see plan: Customer Identity Decoupling).
392
+ * Issued regardless of whether the customer currently has a password set
393
+ * (a social/passwordless-only customer can use this to add password login).
394
+ */
395
+ post: operations["v1_auth_forgot_password_customer_create"];
396
+ delete?: never;
397
+ options?: never;
398
+ head?: never;
399
+ patch?: never;
400
+ trace?: never;
401
+ };
402
+ "/api/v1/auth/login/business/": {
403
+ parameters: {
404
+ query?: never;
405
+ header?: never;
406
+ path?: never;
407
+ cookie?: never;
408
+ };
409
+ get?: never;
410
+ put?: never;
411
+ /** @description POST /auth/login/business/ — Authenticate a business owner. */
412
+ post: operations["v1_auth_login_business_create"];
413
+ delete?: never;
414
+ options?: never;
415
+ head?: never;
416
+ patch?: never;
417
+ trace?: never;
418
+ };
419
+ "/api/v1/auth/login/customer/": {
420
+ parameters: {
421
+ query?: never;
422
+ header?: never;
423
+ path?: never;
424
+ cookie?: never;
425
+ };
426
+ get?: never;
427
+ put?: never;
428
+ /** @description POST /auth/login/customer/ — Authenticate a customer for a specific storefront. */
429
+ post: operations["v1_auth_login_customer_create"];
430
+ delete?: never;
431
+ options?: never;
432
+ head?: never;
433
+ patch?: never;
434
+ trace?: never;
435
+ };
436
+ "/api/v1/auth/login/customer/passwordless/request/": {
437
+ parameters: {
438
+ query?: never;
439
+ header?: never;
440
+ path?: never;
441
+ cookie?: never;
442
+ };
443
+ get?: never;
444
+ put?: never;
445
+ /**
446
+ * @description POST /auth/login/customer/passwordless/request/ — Send a one-time login
447
+ * code to a customer's email for a specific storefront (Shopify-style
448
+ * passwordless login).
449
+ *
450
+ * The OTP is keyed by (business, email) directly in Redis — not by any
451
+ * persisted row. No CustomerProfile is created until the code is actually
452
+ * verified, so an abandoned passwordless request never leaves behind a
453
+ * permanent, password-less profile that would block a later password-based
454
+ * register for the same email (see plan: Customer Identity Decoupling).
455
+ * Keying by business too (the previous global-User-pk key had no business
456
+ * scoping at all) keeps concurrent requests for the same email at
457
+ * different storefronts from overwriting each other's pending code.
458
+ */
459
+ post: operations["v1_auth_login_customer_passwordless_request_create"];
460
+ delete?: never;
461
+ options?: never;
462
+ head?: never;
463
+ patch?: never;
464
+ trace?: never;
465
+ };
466
+ "/api/v1/auth/login/customer/passwordless/verify/": {
467
+ parameters: {
468
+ query?: never;
469
+ header?: never;
470
+ path?: never;
471
+ cookie?: never;
472
+ };
473
+ get?: never;
474
+ put?: never;
475
+ /**
476
+ * @description POST /auth/login/customer/passwordless/verify/ — Verify a customer's
477
+ * one-time login code and issue tokens, auto-provisioning their
478
+ * CustomerProfile on first successful login for this storefront (same
479
+ * pattern as SocialTokenVerifyView). A customer's identity IS this
480
+ * CustomerProfile — fully decoupled from any global User row (see plan:
481
+ * Customer Identity Decoupling).
482
+ */
483
+ post: operations["v1_auth_login_customer_passwordless_verify_create"];
484
+ delete?: never;
485
+ options?: never;
486
+ head?: never;
487
+ patch?: never;
488
+ trace?: never;
489
+ };
490
+ "/api/v1/auth/logout/": {
491
+ parameters: {
492
+ query?: never;
493
+ header?: never;
494
+ path?: never;
495
+ cookie?: never;
496
+ };
497
+ get?: never;
498
+ put?: never;
499
+ /** @description Blacklists the refresh token and clears auth cookies. */
500
+ post: operations["v1_auth_logout_create"];
501
+ delete?: never;
502
+ options?: never;
503
+ head?: never;
504
+ patch?: never;
505
+ trace?: never;
506
+ };
507
+ "/api/v1/auth/media/{media_id}/": {
508
+ parameters: {
509
+ query?: never;
510
+ header?: never;
511
+ path?: never;
512
+ cookie?: never;
513
+ };
514
+ get?: never;
515
+ put?: never;
516
+ post?: never;
517
+ /** @description DELETE /auth/media/<media_id>/ — delete a media asset. */
518
+ delete: operations["v1_auth_media_destroy"];
519
+ options?: never;
520
+ head?: never;
521
+ patch?: never;
522
+ trace?: never;
523
+ };
524
+ "/api/v1/auth/media/confirm-upload/": {
525
+ parameters: {
526
+ query?: never;
527
+ header?: never;
528
+ path?: never;
529
+ cookie?: never;
530
+ };
531
+ get?: never;
532
+ put?: never;
533
+ /**
534
+ * @description POST /auth/media/confirm-upload/ — confirm a completed direct-to-R2 upload.
535
+ *
536
+ * Params arrive as a query string with a null body (media-upload.core.ts
537
+ * sends both presigned-url and confirm-upload the same way) — must read
538
+ * request.query_params, not request.data (the JSON body), which is always
539
+ * empty for these calls.
540
+ */
541
+ post: operations["v1_auth_media_confirm_upload_create"];
542
+ delete?: never;
543
+ options?: never;
544
+ head?: never;
545
+ patch?: never;
546
+ trace?: never;
547
+ };
548
+ "/api/v1/auth/media/presigned-url/": {
549
+ parameters: {
550
+ query?: never;
551
+ header?: never;
552
+ path?: never;
553
+ cookie?: never;
554
+ };
555
+ get?: never;
556
+ put?: never;
557
+ /**
558
+ * @description POST /auth/media/presigned-url/ — presigned PUT URL for direct client upload to R2.
559
+ *
560
+ * POST (not GET) to match the shared frontend upload client
561
+ * (media-upload.core.ts) and every other service's media proxy — params are
562
+ * still sent as a query string, not a JSON body.
563
+ */
564
+ post: operations["v1_auth_media_presigned_url_create"];
565
+ delete?: never;
566
+ options?: never;
567
+ head?: never;
568
+ patch?: never;
569
+ trace?: never;
570
+ };
571
+ "/api/v1/auth/mfa/setup/backup-codes/": {
572
+ parameters: {
573
+ query?: never;
574
+ header?: never;
575
+ path?: never;
576
+ cookie?: never;
577
+ };
578
+ get?: never;
579
+ put?: never;
580
+ /** @description Generate and return new backup codes. */
581
+ post: operations["v1_auth_mfa_setup_backup_codes_create"];
582
+ delete?: never;
583
+ options?: never;
584
+ head?: never;
585
+ patch?: never;
586
+ trace?: never;
587
+ };
588
+ "/api/v1/auth/mfa/setup/pin/": {
589
+ parameters: {
590
+ query?: never;
591
+ header?: never;
592
+ path?: never;
593
+ cookie?: never;
594
+ };
595
+ get?: never;
596
+ put?: never;
597
+ /** @description Set or update the security PIN. */
598
+ post: operations["v1_auth_mfa_setup_pin_create"];
599
+ /** @description Set or update the security PIN. */
600
+ delete: operations["v1_auth_mfa_setup_pin_destroy"];
601
+ options?: never;
602
+ head?: never;
603
+ patch?: never;
604
+ trace?: never;
605
+ };
606
+ "/api/v1/auth/mfa/setup/totp/": {
607
+ parameters: {
608
+ query?: never;
609
+ header?: never;
610
+ path?: never;
611
+ cookie?: never;
612
+ };
613
+ /** @description View to initiate and complete MFA setup (TOTP). */
614
+ get: operations["v1_auth_mfa_setup_totp_retrieve"];
615
+ put?: never;
616
+ /** @description View to initiate and complete MFA setup (TOTP). */
617
+ post: operations["v1_auth_mfa_setup_totp_create"];
618
+ delete?: never;
619
+ options?: never;
620
+ head?: never;
621
+ patch?: never;
622
+ trace?: never;
623
+ };
624
+ "/api/v1/auth/profile/": {
625
+ parameters: {
626
+ query?: never;
627
+ header?: never;
628
+ path?: never;
629
+ cookie?: never;
630
+ };
631
+ /** @description Get or update current user profile. */
632
+ get: operations["v1_auth_profile_retrieve"];
633
+ /** @description Get or update current user profile. */
634
+ put: operations["v1_auth_profile_update"];
635
+ post?: never;
636
+ delete?: never;
637
+ options?: never;
638
+ head?: never;
639
+ patch?: never;
640
+ trace?: never;
641
+ };
642
+ "/api/v1/auth/profile/addresses/": {
643
+ parameters: {
644
+ query?: never;
645
+ header?: never;
646
+ path?: never;
647
+ cookie?: never;
648
+ };
649
+ /**
650
+ * @description GET /auth/profile/addresses/ — list the calling customer's saved addresses.
651
+ * POST /auth/profile/addresses/ — add a new saved address.
652
+ *
653
+ * REAL GAP FIXED (2026-09-22): CustomerProfile.address_book has existed as
654
+ * a JSONField since this model was built, but no endpoint anywhere ever
655
+ * wrote to it or validated its shape (see InternalCustomerContactView's own
656
+ * comment: "nothing here writes or validates it") — kasuvia-storefront's
657
+ * dashboard "Saved Addresses" tab was, as a direct result, fully local mock
658
+ * state with no real backend at all. This is the real, validated write path
659
+ * that field was always missing.
660
+ */
661
+ get: operations["v1_auth_profile_addresses_retrieve"];
662
+ put?: never;
663
+ /**
664
+ * @description GET /auth/profile/addresses/ — list the calling customer's saved addresses.
665
+ * POST /auth/profile/addresses/ — add a new saved address.
666
+ *
667
+ * REAL GAP FIXED (2026-09-22): CustomerProfile.address_book has existed as
668
+ * a JSONField since this model was built, but no endpoint anywhere ever
669
+ * wrote to it or validated its shape (see InternalCustomerContactView's own
670
+ * comment: "nothing here writes or validates it") — kasuvia-storefront's
671
+ * dashboard "Saved Addresses" tab was, as a direct result, fully local mock
672
+ * state with no real backend at all. This is the real, validated write path
673
+ * that field was always missing.
674
+ */
675
+ post: operations["v1_auth_profile_addresses_create"];
676
+ delete?: never;
677
+ options?: never;
678
+ head?: never;
679
+ patch?: never;
680
+ trace?: never;
681
+ };
682
+ "/api/v1/auth/profile/addresses/{address_id}/": {
683
+ parameters: {
684
+ query?: never;
685
+ header?: never;
686
+ path?: never;
687
+ cookie?: never;
688
+ };
689
+ get?: never;
690
+ put?: never;
691
+ post?: never;
692
+ /**
693
+ * @description PATCH /auth/profile/addresses/{address_id}/ — update one saved address.
694
+ * DELETE /auth/profile/addresses/{address_id}/ — remove one saved address.
695
+ */
696
+ delete: operations["v1_auth_profile_addresses_destroy"];
697
+ options?: never;
698
+ head?: never;
699
+ /**
700
+ * @description PATCH /auth/profile/addresses/{address_id}/ — update one saved address.
701
+ * DELETE /auth/profile/addresses/{address_id}/ — remove one saved address.
702
+ */
703
+ patch: operations["v1_auth_profile_addresses_partial_update"];
704
+ trace?: never;
705
+ };
706
+ "/api/v1/auth/reactivate/": {
707
+ parameters: {
708
+ query?: never;
709
+ header?: never;
710
+ path?: never;
711
+ cookie?: never;
712
+ };
713
+ get?: never;
714
+ put?: never;
715
+ post: operations["v1_auth_reactivate_create"];
716
+ delete?: never;
717
+ options?: never;
718
+ head?: never;
719
+ patch?: never;
720
+ trace?: never;
721
+ };
722
+ "/api/v1/auth/register/business/": {
723
+ parameters: {
724
+ query?: never;
725
+ header?: never;
726
+ path?: never;
727
+ cookie?: never;
728
+ };
729
+ get?: never;
730
+ put?: never;
731
+ /** @description POST /auth/register/business/ — Create a new business owner account. */
732
+ post: operations["v1_auth_register_business_create"];
733
+ delete?: never;
734
+ options?: never;
735
+ head?: never;
736
+ patch?: never;
737
+ trace?: never;
738
+ };
739
+ "/api/v1/auth/register/customer/": {
740
+ parameters: {
741
+ query?: never;
742
+ header?: never;
743
+ path?: never;
744
+ cookie?: never;
745
+ };
746
+ get?: never;
747
+ put?: never;
748
+ /** @description POST /auth/register/customer/ — Register a customer for a specific storefront. */
749
+ post: operations["v1_auth_register_customer_create"];
750
+ delete?: never;
751
+ options?: never;
752
+ head?: never;
753
+ patch?: never;
754
+ trace?: never;
755
+ };
756
+ "/api/v1/auth/resend-otp/": {
757
+ parameters: {
758
+ query?: never;
759
+ header?: never;
760
+ path?: never;
761
+ cookie?: never;
762
+ };
763
+ get?: never;
764
+ put?: never;
765
+ post: operations["v1_auth_resend_otp_create"];
766
+ delete?: never;
767
+ options?: never;
768
+ head?: never;
769
+ patch?: never;
770
+ trace?: never;
771
+ };
772
+ "/api/v1/auth/reset-password/": {
773
+ parameters: {
774
+ query?: never;
775
+ header?: never;
776
+ path?: never;
777
+ cookie?: never;
778
+ };
779
+ get?: never;
780
+ put?: never;
781
+ post: operations["v1_auth_reset_password_create"];
782
+ delete?: never;
783
+ options?: never;
784
+ head?: never;
785
+ patch?: never;
786
+ trace?: never;
787
+ };
788
+ "/api/v1/auth/reset-password/customer/": {
789
+ parameters: {
790
+ query?: never;
791
+ header?: never;
792
+ path?: never;
793
+ cookie?: never;
794
+ };
795
+ get?: never;
796
+ put?: never;
797
+ /** @description POST /auth/reset-password/customer/ — Verify a customer password-reset OTP and set a new password. */
798
+ post: operations["v1_auth_reset_password_customer_create"];
799
+ delete?: never;
800
+ options?: never;
801
+ head?: never;
802
+ patch?: never;
803
+ trace?: never;
804
+ };
805
+ "/api/v1/auth/sessions/": {
806
+ parameters: {
807
+ query?: never;
808
+ header?: never;
809
+ path?: never;
810
+ cookie?: never;
811
+ };
812
+ /** @description List active JWT sessions for the current user, paginated. */
813
+ get: operations["v1_auth_sessions_retrieve"];
814
+ put?: never;
815
+ post?: never;
816
+ delete?: never;
817
+ options?: never;
818
+ head?: never;
819
+ patch?: never;
820
+ trace?: never;
821
+ };
822
+ "/api/v1/auth/sessions/business/": {
823
+ parameters: {
824
+ query?: never;
825
+ header?: never;
826
+ path?: never;
827
+ cookie?: never;
828
+ };
829
+ /**
830
+ * @description GET /auth/sessions/business/?identity_type=staff|customer&page=&page_size=
831
+ * Owner-only. Lists active sessions for every staff member or customer of
832
+ * the caller's business — paginated over the identity population (staff
833
+ * or customer rows, an indexed DB query) rather than raw session count,
834
+ * since Redis has no native cross-identity session index to page over
835
+ * directly. Each page item is one identity plus however many active
836
+ * sessions they currently have (0 or more).
837
+ */
838
+ get: operations["v1_auth_sessions_business_retrieve"];
839
+ put?: never;
840
+ post?: never;
841
+ delete?: never;
842
+ options?: never;
843
+ head?: never;
844
+ patch?: never;
845
+ trace?: never;
846
+ };
847
+ "/api/v1/auth/sessions/business/revoke/": {
848
+ parameters: {
849
+ query?: never;
850
+ header?: never;
851
+ path?: never;
852
+ cookie?: never;
853
+ };
854
+ get?: never;
855
+ put?: never;
856
+ /**
857
+ * @description POST /auth/sessions/business/revoke/
858
+ * Body: { identity_type: "staff"|"customer", identity_id: "<uuid>", jti: "<jti>" }
859
+ * Owner-only. Revokes one specific session belonging to a named staff
860
+ * member or customer of the caller's business — e.g. responding to a
861
+ * compromised staff/customer account. Verifies the identity actually
862
+ * belongs to this business (tenant-scoped lookup) before revoking, so an
863
+ * owner can never revoke a session belonging to a different business.
864
+ */
865
+ post: operations["v1_auth_sessions_business_revoke_create"];
866
+ delete?: never;
867
+ options?: never;
868
+ head?: never;
869
+ patch?: never;
870
+ trace?: never;
871
+ };
872
+ "/api/v1/auth/sessions/revoke/": {
873
+ parameters: {
874
+ query?: never;
875
+ header?: never;
876
+ path?: never;
877
+ cookie?: never;
878
+ };
879
+ get?: never;
880
+ put?: never;
881
+ /** @description Revoke a specific session, identified by its jti (see SessionListView's response). */
882
+ post: operations["v1_auth_sessions_revoke_create"];
883
+ delete?: never;
884
+ options?: never;
885
+ head?: never;
886
+ patch?: never;
887
+ trace?: never;
888
+ };
889
+ "/api/v1/auth/sessions/revoke-all/": {
890
+ parameters: {
891
+ query?: never;
892
+ header?: never;
893
+ path?: never;
894
+ cookie?: never;
895
+ };
896
+ get?: never;
897
+ put?: never;
898
+ /** @description Revoke all active sessions for the current user. */
899
+ post: operations["v1_auth_sessions_revoke_all_create"];
900
+ delete?: never;
901
+ options?: never;
902
+ head?: never;
903
+ patch?: never;
904
+ trace?: never;
905
+ };
906
+ "/api/v1/auth/smileid/callback/": {
907
+ parameters: {
908
+ query?: never;
909
+ header?: never;
910
+ path?: never;
911
+ cookie?: never;
912
+ };
913
+ get?: never;
914
+ put?: never;
915
+ /**
916
+ * @description POST /api/v1/auth/smileid/callback/
917
+ * Public webhook receiver for Smile ID asynchronous job results.
918
+ */
919
+ post: operations["v1_auth_smileid_callback_create"];
920
+ delete?: never;
921
+ options?: never;
922
+ head?: never;
923
+ patch?: never;
924
+ trace?: never;
925
+ };
926
+ "/api/v1/auth/smileid/tier1/": {
927
+ parameters: {
928
+ query?: never;
929
+ header?: never;
930
+ path?: never;
931
+ cookie?: never;
932
+ };
933
+ get?: never;
934
+ put?: never;
935
+ /**
936
+ * @description POST /api/v1/auth/smileid/tier1/
937
+ * Submit NIN or BVN for electronic ID verification.
938
+ */
939
+ post: operations["v1_auth_smileid_tier1_create"];
940
+ delete?: never;
941
+ options?: never;
942
+ head?: never;
943
+ patch?: never;
944
+ trace?: never;
945
+ };
946
+ "/api/v1/auth/smileid/tier2/": {
947
+ parameters: {
948
+ query?: never;
949
+ header?: never;
950
+ path?: never;
951
+ cookie?: never;
952
+ };
953
+ get?: never;
954
+ put?: never;
955
+ /**
956
+ * @description POST /api/v1/auth/smileid/tier2/
957
+ * Submit Selfie and ID Document for biometric verification.
958
+ */
959
+ post: operations["v1_auth_smileid_tier2_create"];
960
+ delete?: never;
961
+ options?: never;
962
+ head?: never;
963
+ patch?: never;
964
+ trace?: never;
965
+ };
966
+ "/api/v1/auth/social/facebook/business/": {
967
+ parameters: {
968
+ query?: never;
969
+ header?: never;
970
+ path?: never;
971
+ cookie?: never;
972
+ };
973
+ /** @description Initiates Facebook OAuth for Business Owners — forces reauthentication. */
974
+ get: operations["v1_auth_social_facebook_business_retrieve"];
975
+ put?: never;
976
+ post?: never;
977
+ delete?: never;
978
+ options?: never;
979
+ head?: never;
980
+ patch?: never;
981
+ trace?: never;
982
+ };
983
+ "/api/v1/auth/social/google/business/": {
984
+ parameters: {
985
+ query?: never;
986
+ header?: never;
987
+ path?: never;
988
+ cookie?: never;
989
+ };
990
+ /** @description Initiates Google OAuth for Business Owners — forces account selection. */
991
+ get: operations["v1_auth_social_google_business_retrieve"];
992
+ put?: never;
993
+ post?: never;
994
+ delete?: never;
995
+ options?: never;
996
+ head?: never;
997
+ patch?: never;
998
+ trace?: never;
999
+ };
1000
+ "/api/v1/auth/social/verify/{provider}/": {
1001
+ parameters: {
1002
+ query?: never;
1003
+ header?: never;
1004
+ path?: never;
1005
+ cookie?: never;
1006
+ };
1007
+ get?: never;
1008
+ put?: never;
1009
+ /**
1010
+ * @description POST /auth/social/verify/<provider>/
1011
+ *
1012
+ * Body: { id_token: str }
1013
+ * Headers: X-Storefront-Key, X-Business-ID (see plan: Customer Storefront
1014
+ * Identity Enforcement)
1015
+ *
1016
+ * Verifies the id_token with the corresponding social provider,
1017
+ * then creates or logs in the customer and returns JWT tokens.
1018
+ */
1019
+ post: operations["v1_auth_social_verify_create"];
1020
+ delete?: never;
1021
+ options?: never;
1022
+ head?: never;
1023
+ patch?: never;
1024
+ trace?: never;
1025
+ };
1026
+ "/api/v1/auth/storefront/business-info/": {
1027
+ parameters: {
1028
+ query?: never;
1029
+ header?: never;
1030
+ path?: never;
1031
+ cookie?: never;
1032
+ };
1033
+ /**
1034
+ * @description GET /auth/storefront/business-info/ — Public, unauthenticated business
1035
+ * info for a storefront to render (e.g. footer/about section), given only
1036
+ * the storefront API key (X-Storefront-Key header). Returns an explicit
1037
+ * allow-list of public-safe fields only — never owner identity, financial
1038
+ * (settlement_currency), or internal integration/logistics fields.
1039
+ */
1040
+ get: operations["v1_auth_storefront_business_info_retrieve"];
1041
+ put?: never;
1042
+ post?: never;
1043
+ delete?: never;
1044
+ options?: never;
1045
+ head?: never;
1046
+ patch?: never;
1047
+ trace?: never;
1048
+ };
1049
+ "/api/v1/auth/token/password-confirm/": {
1050
+ parameters: {
1051
+ query?: never;
1052
+ header?: never;
1053
+ path?: never;
1054
+ cookie?: never;
1055
+ };
1056
+ get?: never;
1057
+ put?: never;
1058
+ post: operations["v1_auth_token_password_confirm_create"];
1059
+ delete?: never;
1060
+ options?: never;
1061
+ head?: never;
1062
+ patch?: never;
1063
+ trace?: never;
1064
+ };
1065
+ "/api/v1/auth/token/password-reset/": {
1066
+ parameters: {
1067
+ query?: never;
1068
+ header?: never;
1069
+ path?: never;
1070
+ cookie?: never;
1071
+ };
1072
+ get?: never;
1073
+ put?: never;
1074
+ post: operations["v1_auth_token_password_reset_create"];
1075
+ delete?: never;
1076
+ options?: never;
1077
+ head?: never;
1078
+ patch?: never;
1079
+ trace?: never;
1080
+ };
1081
+ "/api/v1/auth/token/refresh/": {
1082
+ parameters: {
1083
+ query?: never;
1084
+ header?: never;
1085
+ path?: never;
1086
+ cookie?: never;
1087
+ };
1088
+ get?: never;
1089
+ put?: never;
1090
+ /**
1091
+ * @description Takes a refresh type JSON web token and returns an access type JSON web
1092
+ * token if the refresh token is valid.
1093
+ */
1094
+ post: operations["v1_auth_token_refresh_create"];
1095
+ delete?: never;
1096
+ options?: never;
1097
+ head?: never;
1098
+ patch?: never;
1099
+ trace?: never;
1100
+ };
1101
+ "/api/v1/auth/token/revoke/": {
1102
+ parameters: {
1103
+ query?: never;
1104
+ header?: never;
1105
+ path?: never;
1106
+ cookie?: never;
1107
+ };
1108
+ get?: never;
1109
+ put?: never;
1110
+ /** @description Alias for LogoutView. */
1111
+ post: operations["v1_auth_token_revoke_create"];
1112
+ delete?: never;
1113
+ options?: never;
1114
+ head?: never;
1115
+ patch?: never;
1116
+ trace?: never;
1117
+ };
1118
+ "/api/v1/auth/token/verify/": {
1119
+ parameters: {
1120
+ query?: never;
1121
+ header?: never;
1122
+ path?: never;
1123
+ cookie?: never;
1124
+ };
1125
+ get?: never;
1126
+ put?: never;
1127
+ /**
1128
+ * @description Takes a token and indicates if it is valid. This view provides no
1129
+ * information about a token's fitness for a particular use.
1130
+ */
1131
+ post: operations["v1_auth_token_verify_create"];
1132
+ delete?: never;
1133
+ options?: never;
1134
+ head?: never;
1135
+ patch?: never;
1136
+ trace?: never;
1137
+ };
1138
+ "/api/v1/auth/user/security/": {
1139
+ parameters: {
1140
+ query?: never;
1141
+ header?: never;
1142
+ path?: never;
1143
+ cookie?: never;
1144
+ };
1145
+ get?: never;
1146
+ put?: never;
1147
+ post?: never;
1148
+ delete?: never;
1149
+ options?: never;
1150
+ head?: never;
1151
+ /** @description Update security flags for the authenticated user (MFA, Email Auth, etc.). */
1152
+ patch: operations["v1_auth_user_security_partial_update"];
1153
+ trace?: never;
1154
+ };
1155
+ "/api/v1/auth/verify-otp/": {
1156
+ parameters: {
1157
+ query?: never;
1158
+ header?: never;
1159
+ path?: never;
1160
+ cookie?: never;
1161
+ };
1162
+ get?: never;
1163
+ put?: never;
1164
+ post: operations["v1_auth_verify_otp_create"];
1165
+ delete?: never;
1166
+ options?: never;
1167
+ head?: never;
1168
+ patch?: never;
1169
+ trace?: never;
1170
+ };
1171
+ }
1172
+ export type webhooks = Record<string, never>;
1173
+ export interface components {
1174
+ schemas: {
1175
+ /** @description Writable serializer for platform-admin business type catalog management. */
1176
+ AdminBusinessType: {
1177
+ slug: string;
1178
+ label: string;
1179
+ description?: string;
1180
+ icon?: string;
1181
+ product_type?: string;
1182
+ type_flags?: unknown;
1183
+ order?: number;
1184
+ is_consumable?: boolean;
1185
+ is_active?: boolean;
1186
+ };
1187
+ /**
1188
+ * @description AdminSuspendBusinessView's request body — a documented reason is
1189
+ * mandatory (this is a policy-violation action, not a routine one; the
1190
+ * audit trail and the business's own suspension email both need real
1191
+ * content, not a blank string).
1192
+ */
1193
+ AdminSuspendBusiness: {
1194
+ reason: string;
1195
+ };
1196
+ /** @description 2-step business owner registration. */
1197
+ BusinessCreate: {
1198
+ business_name: string;
1199
+ business_type: string;
1200
+ country: string;
1201
+ business_contact_phone?: string;
1202
+ first_name: string;
1203
+ last_name: string;
1204
+ /** Format: email */
1205
+ email: string;
1206
+ agreed_to_terms: boolean;
1207
+ password?: string;
1208
+ confirm_password?: string;
1209
+ /** Format: date */
1210
+ date_of_birth: string;
1211
+ currency?: string;
1212
+ registration_code?: string;
1213
+ };
1214
+ /** @description Authenticate a business owner. */
1215
+ BusinessLogin: {
1216
+ /** Format: email */
1217
+ email: string;
1218
+ password: string;
1219
+ /** @default false */
1220
+ remember_me: boolean;
1221
+ };
1222
+ /** @description Read and update a business owner's profile. */
1223
+ BusinessOwnerProfile: {
1224
+ firstname?: string;
1225
+ lastname?: string;
1226
+ bio?: string;
1227
+ /** Format: uri */
1228
+ profile_picture?: string | null;
1229
+ phone?: string;
1230
+ country?: string;
1231
+ /** Format: date */
1232
+ date_of_birth?: string | null;
1233
+ currency_preference?: string | null;
1234
+ username?: string;
1235
+ has_completed_onboarding?: boolean;
1236
+ readonly verification_level: number;
1237
+ /** Format: date-time */
1238
+ readonly created_at: string;
1239
+ /** Format: date-time */
1240
+ readonly updated_at: string;
1241
+ };
1242
+ ChangePassword: {
1243
+ old_password?: string;
1244
+ new_password: string;
1245
+ confirm_password: string;
1246
+ };
1247
+ /** @description Writable serializer for platform-admin country catalog management. */
1248
+ Country: {
1249
+ name: string;
1250
+ /** @description ISO 3166-1 alpha-2 code */
1251
+ iso_code: string;
1252
+ /** @description E.164 dialing code without + */
1253
+ dial_code: string;
1254
+ /** @description Trunk prefix for domestic calls */
1255
+ trunk_prefix?: string;
1256
+ /** @description Minimum age for business ownership */
1257
+ min_age?: number;
1258
+ /** @description Geographic region (e.g., west-africa, east-africa) */
1259
+ region?: string | null;
1260
+ /** @description ISO 4217 currency code (e.g., NGN, USD, EUR) */
1261
+ currency?: string;
1262
+ /** @description Whether this country is supported */
1263
+ is_active?: boolean;
1264
+ };
1265
+ /**
1266
+ * @description Standard SimpleJWT TokenRefreshView creates a new access token but strips custom claims
1267
+ * unless they are explicitly re-added. We copy all non-standard claims from the refresh token
1268
+ * payload back into the new access token.
1269
+ *
1270
+ * CRITICAL: We also re-fetch the plan_tier from the payment system to ensure the JWT
1271
+ * reflects the current subscription status. This fixes the issue where users upgrade
1272
+ * their plan but their JWT still shows the old plan_tier.
1273
+ */
1274
+ CustomTokenRefresh: {
1275
+ refresh: string;
1276
+ readonly access: string;
1277
+ };
1278
+ /**
1279
+ * @description One entry in CustomerProfile.address_book (a free-form JSONField with no
1280
+ * enforced shape until now — see InternalCustomerContactView's own comment:
1281
+ * "nothing here writes or validates it"). Real gap fixed (2026-09-22):
1282
+ * the field existed and was even already read-only-exposed on
1283
+ * CustomerProfileSerializer, but no writable path existed anywhere for a
1284
+ * customer to actually populate it — kasuvia-storefront's dashboard
1285
+ * "Saved Addresses" tab was fully local mock state as a result. Field
1286
+ * names mirror kasuvia-sdk's existing `DeliveryAddress`/`ShippingLocation`
1287
+ * checkout-address shape exactly (first_name, last_name, phone, street,
1288
+ * city, state, lga, country, postal) so the same address object can flow
1289
+ * straight into checkout without remapping.
1290
+ */
1291
+ CustomerAddress: {
1292
+ readonly id: string;
1293
+ /** @default */
1294
+ label: string;
1295
+ first_name: string;
1296
+ last_name: string;
1297
+ phone: string;
1298
+ street: string;
1299
+ city: string;
1300
+ state: string;
1301
+ /** @default */
1302
+ lga: string;
1303
+ /** @default NG */
1304
+ country: string;
1305
+ /** @default */
1306
+ postal: string;
1307
+ /** @default false */
1308
+ is_default: boolean;
1309
+ /** Format: date-time */
1310
+ readonly created_at: string;
1311
+ };
1312
+ /**
1313
+ * @description Payload for POST /auth/forgot-password/customer/ — business-scoped via
1314
+ * the X-Storefront-Key + X-Business-ID headers (see plan: Customer
1315
+ * Storefront Identity Enforcement), not a tenant_id body field.
1316
+ */
1317
+ CustomerForgotPassword: {
1318
+ /** Format: email */
1319
+ email: string;
1320
+ };
1321
+ /**
1322
+ * @description Authenticate a customer for a specific storefront. The business is
1323
+ * resolved by the view from the X-Storefront-Key + X-Business-ID headers
1324
+ * (see plan: Customer Storefront Identity Enforcement) and passed in via
1325
+ * context["business"] — no tenant_id body field needed.
1326
+ */
1327
+ CustomerLogin: {
1328
+ /** Format: email */
1329
+ email: string;
1330
+ password: string;
1331
+ /** @default false */
1332
+ remember_me: boolean;
1333
+ };
1334
+ /**
1335
+ * @description Request a one-time login code for a customer (Shopify-style
1336
+ * passwordless). Business is resolved by the view from the
1337
+ * X-Storefront-Key + X-Business-ID headers (see plan: Customer Storefront
1338
+ * Identity Enforcement) — no tenant_id body field needed.
1339
+ */
1340
+ CustomerPasswordlessRequest: {
1341
+ /** Format: email */
1342
+ email: string;
1343
+ };
1344
+ /**
1345
+ * @description Verify a customer's one-time login code and issue tokens. Business is
1346
+ * resolved by the view from headers (see plan: Customer Storefront
1347
+ * Identity Enforcement) — no tenant_id body field needed.
1348
+ */
1349
+ CustomerPasswordlessVerify: {
1350
+ /** Format: email */
1351
+ email: string;
1352
+ code: string;
1353
+ };
1354
+ /**
1355
+ * @description Register a customer for a specific business storefront. The business is
1356
+ * resolved by the view from the X-Storefront-Key + X-Business-ID headers
1357
+ * (see plan: Customer Storefront Identity Enforcement) and passed in via
1358
+ * context["business"] — no tenant_id body field needed; that's the
1359
+ * headers' job now.
1360
+ */
1361
+ CustomerRegister: {
1362
+ /** @default */
1363
+ first_name: string;
1364
+ /** @default */
1365
+ last_name: string;
1366
+ /** Format: email */
1367
+ email: string;
1368
+ password: string;
1369
+ agreed_to_terms: boolean;
1370
+ };
1371
+ /**
1372
+ * @description Payload for POST /auth/reset-password/customer/ — business-scoped via
1373
+ * the X-Storefront-Key + X-Business-ID headers (see plan: Customer
1374
+ * Storefront Identity Enforcement), not a tenant_id body field.
1375
+ */
1376
+ CustomerResetPassword: {
1377
+ /** Format: email */
1378
+ email: string;
1379
+ code: string;
1380
+ new_password: string;
1381
+ };
1382
+ DeactivateAccount: {
1383
+ reason: string;
1384
+ };
1385
+ ForgotPassword: {
1386
+ /** Format: email */
1387
+ email: string;
1388
+ };
1389
+ /** @description Generic login with email and password. */
1390
+ Login: {
1391
+ /** Format: email */
1392
+ email: string;
1393
+ password: string;
1394
+ /** @default false */
1395
+ remember_me: boolean;
1396
+ };
1397
+ /** @description Writable serializer for platform-admin business type catalog management. */
1398
+ PatchedAdminBusinessType: {
1399
+ slug?: string;
1400
+ label?: string;
1401
+ description?: string;
1402
+ icon?: string;
1403
+ product_type?: string;
1404
+ type_flags?: unknown;
1405
+ order?: number;
1406
+ is_consumable?: boolean;
1407
+ is_active?: boolean;
1408
+ };
1409
+ /** @description Writable serializer for platform-admin country catalog management. */
1410
+ PatchedCountry: {
1411
+ name?: string;
1412
+ /** @description ISO 3166-1 alpha-2 code */
1413
+ iso_code?: string;
1414
+ /** @description E.164 dialing code without + */
1415
+ dial_code?: string;
1416
+ /** @description Trunk prefix for domestic calls */
1417
+ trunk_prefix?: string;
1418
+ /** @description Minimum age for business ownership */
1419
+ min_age?: number;
1420
+ /** @description Geographic region (e.g., west-africa, east-africa) */
1421
+ region?: string | null;
1422
+ /** @description ISO 4217 currency code (e.g., NGN, USD, EUR) */
1423
+ currency?: string;
1424
+ /** @description Whether this country is supported */
1425
+ is_active?: boolean;
1426
+ };
1427
+ /**
1428
+ * @description One entry in CustomerProfile.address_book (a free-form JSONField with no
1429
+ * enforced shape until now — see InternalCustomerContactView's own comment:
1430
+ * "nothing here writes or validates it"). Real gap fixed (2026-09-22):
1431
+ * the field existed and was even already read-only-exposed on
1432
+ * CustomerProfileSerializer, but no writable path existed anywhere for a
1433
+ * customer to actually populate it — kasuvia-storefront's dashboard
1434
+ * "Saved Addresses" tab was fully local mock state as a result. Field
1435
+ * names mirror kasuvia-sdk's existing `DeliveryAddress`/`ShippingLocation`
1436
+ * checkout-address shape exactly (first_name, last_name, phone, street,
1437
+ * city, state, lga, country, postal) so the same address object can flow
1438
+ * straight into checkout without remapping.
1439
+ */
1440
+ PatchedCustomerAddress: {
1441
+ readonly id?: string;
1442
+ /** @default */
1443
+ label: string;
1444
+ first_name?: string;
1445
+ last_name?: string;
1446
+ phone?: string;
1447
+ street?: string;
1448
+ city?: string;
1449
+ state?: string;
1450
+ /** @default */
1451
+ lga: string;
1452
+ /** @default NG */
1453
+ country: string;
1454
+ /** @default */
1455
+ postal: string;
1456
+ /** @default false */
1457
+ is_default: boolean;
1458
+ /** Format: date-time */
1459
+ readonly created_at?: string;
1460
+ };
1461
+ /** @description Update security/notification fields for the authenticated user. */
1462
+ PatchedUserSecurityUpdate: {
1463
+ is_google_auth_enabled?: boolean;
1464
+ is_facebook_auth_enabled?: boolean;
1465
+ is_email_auth_enabled?: boolean;
1466
+ two_factor_enabled?: boolean;
1467
+ /**
1468
+ * @description The preferred second factor method.
1469
+ *
1470
+ * * `totp` - Authenticator App (TOTP)
1471
+ * * `email` - Email Code
1472
+ * * `pin` - Security PIN
1473
+ * @enum {string}
1474
+ */
1475
+ two_factor_method?: "totp" | "email" | "pin";
1476
+ };
1477
+ ResetPassword: {
1478
+ /** Format: email */
1479
+ email: string;
1480
+ code: string;
1481
+ new_password: string;
1482
+ };
1483
+ /** @description Payload for POST /auth/forgot-password/staff/ — self-service, business-scoped. */
1484
+ StaffForgotPassword: {
1485
+ business_id: string;
1486
+ /** Format: email */
1487
+ email: string;
1488
+ };
1489
+ /** @description Authenticate a staff member. */
1490
+ StaffLogin: {
1491
+ business_id: string;
1492
+ /** Format: email */
1493
+ email: string;
1494
+ password: string;
1495
+ /** @default false */
1496
+ remember_me: boolean;
1497
+ };
1498
+ /** @description Payload for POST /auth/reset-password/staff/. */
1499
+ StaffResetPassword: {
1500
+ business_id: string;
1501
+ /** Format: email */
1502
+ email: string;
1503
+ code: string;
1504
+ new_password: string;
1505
+ };
1506
+ TokenRevoke: {
1507
+ refresh: string;
1508
+ };
1509
+ TokenVerify: {
1510
+ token: string;
1511
+ };
1512
+ /** @description Read-only user representation including profile, role, and granular permissions context. */
1513
+ User: {
1514
+ /** Format: uuid */
1515
+ readonly id: string;
1516
+ /** @description Public @handle — lowercase alphanumeric and hyphens only. */
1517
+ username: string;
1518
+ /** Format: email */
1519
+ readonly email: string;
1520
+ /** @description Determines the user's role relative to the current business context and identity mode. */
1521
+ readonly role: string;
1522
+ readonly permissions: unknown[];
1523
+ is_active?: boolean;
1524
+ is_verified?: boolean;
1525
+ has_completed_onboarding?: boolean;
1526
+ is_google_auth_enabled?: boolean;
1527
+ is_facebook_auth_enabled?: boolean;
1528
+ is_email_auth_enabled?: boolean;
1529
+ /**
1530
+ * @description Whether a real Google identity is actually associated (a
1531
+ * UserSocialAuth row exists) - distinct from is_google_auth_enabled,
1532
+ * which is only a preference flag the owner can toggle before ever
1533
+ * completing the OAuth handshake (see
1534
+ * common/utils/social_pipeline.py::validate_auth_action - the flag
1535
+ * must be True BEFORE a business owner is even allowed to attempt
1536
+ * Google login, and the real association only happens on that
1537
+ * subsequent successful attempt). Without this, the frontend has no
1538
+ * way to tell "flag flipped on but never actually connected" apart
1539
+ * from "genuinely connected".
1540
+ */
1541
+ readonly is_google_linked: boolean;
1542
+ readonly is_facebook_linked: boolean;
1543
+ two_factor_enabled?: boolean;
1544
+ /**
1545
+ * @description The preferred second factor method.
1546
+ *
1547
+ * * `totp` - Authenticator App (TOTP)
1548
+ * * `email` - Email Code
1549
+ * * `pin` - Security PIN
1550
+ * @enum {string}
1551
+ */
1552
+ two_factor_method?: "totp" | "email" | "pin";
1553
+ readonly has_password: boolean;
1554
+ readonly security_pin: boolean;
1555
+ needs_password_change?: boolean;
1556
+ /** Format: date-time */
1557
+ readonly created_at: string;
1558
+ /** Format: date-time */
1559
+ readonly updated_at: string;
1560
+ readonly profile: components["schemas"]["BusinessOwnerProfile"];
1561
+ };
1562
+ VerifyOTP: {
1563
+ /** Format: email */
1564
+ email: string;
1565
+ code: string;
1566
+ };
1567
+ };
1568
+ responses: never;
1569
+ parameters: never;
1570
+ requestBodies: never;
1571
+ headers: never;
1572
+ pathItems: never;
1573
+ }
1574
+ export type $defs = Record<string, never>;
1575
+ export interface operations {
1576
+ v1_auth_2fa_verify_create: {
1577
+ parameters: {
1578
+ query?: never;
1579
+ header?: never;
1580
+ path?: never;
1581
+ cookie?: never;
1582
+ };
1583
+ requestBody?: never;
1584
+ responses: {
1585
+ /** @description No response body */
1586
+ 200: {
1587
+ headers: {
1588
+ [name: string]: unknown;
1589
+ };
1590
+ content?: never;
1591
+ };
1592
+ };
1593
+ };
1594
+ v1_auth_business_types_retrieve: {
1595
+ parameters: {
1596
+ query?: never;
1597
+ header?: never;
1598
+ path?: never;
1599
+ cookie?: never;
1600
+ };
1601
+ requestBody?: never;
1602
+ responses: {
1603
+ /** @description No response body */
1604
+ 200: {
1605
+ headers: {
1606
+ [name: string]: unknown;
1607
+ };
1608
+ content?: never;
1609
+ };
1610
+ };
1611
+ };
1612
+ v1_auth_businesses_retrieve: {
1613
+ parameters: {
1614
+ query?: never;
1615
+ header?: never;
1616
+ path: {
1617
+ business_id: string;
1618
+ };
1619
+ cookie?: never;
1620
+ };
1621
+ requestBody?: never;
1622
+ responses: {
1623
+ /** @description No response body */
1624
+ 200: {
1625
+ headers: {
1626
+ [name: string]: unknown;
1627
+ };
1628
+ content?: never;
1629
+ };
1630
+ };
1631
+ };
1632
+ v1_auth_businesses_destroy: {
1633
+ parameters: {
1634
+ query?: never;
1635
+ header?: never;
1636
+ path: {
1637
+ business_id: string;
1638
+ };
1639
+ cookie?: never;
1640
+ };
1641
+ requestBody?: never;
1642
+ responses: {
1643
+ /** @description No response body */
1644
+ 204: {
1645
+ headers: {
1646
+ [name: string]: unknown;
1647
+ };
1648
+ content?: never;
1649
+ };
1650
+ };
1651
+ };
1652
+ v1_auth_businesses_partial_update: {
1653
+ parameters: {
1654
+ query?: never;
1655
+ header?: never;
1656
+ path: {
1657
+ business_id: string;
1658
+ };
1659
+ cookie?: never;
1660
+ };
1661
+ requestBody?: never;
1662
+ responses: {
1663
+ /** @description No response body */
1664
+ 200: {
1665
+ headers: {
1666
+ [name: string]: unknown;
1667
+ };
1668
+ content?: never;
1669
+ };
1670
+ };
1671
+ };
1672
+ v1_auth_businesses_customers_retrieve: {
1673
+ parameters: {
1674
+ query?: never;
1675
+ header?: never;
1676
+ path: {
1677
+ business_id: string;
1678
+ };
1679
+ cookie?: never;
1680
+ };
1681
+ requestBody?: never;
1682
+ responses: {
1683
+ /** @description No response body */
1684
+ 200: {
1685
+ headers: {
1686
+ [name: string]: unknown;
1687
+ };
1688
+ content?: never;
1689
+ };
1690
+ };
1691
+ };
1692
+ v1_auth_businesses_customers_retrieve_2: {
1693
+ parameters: {
1694
+ query?: never;
1695
+ header?: never;
1696
+ path: {
1697
+ business_id: string;
1698
+ customer_id: string;
1699
+ };
1700
+ cookie?: never;
1701
+ };
1702
+ requestBody?: never;
1703
+ responses: {
1704
+ /** @description No response body */
1705
+ 200: {
1706
+ headers: {
1707
+ [name: string]: unknown;
1708
+ };
1709
+ content?: never;
1710
+ };
1711
+ };
1712
+ };
1713
+ v1_auth_businesses_reactivate_create: {
1714
+ parameters: {
1715
+ query?: never;
1716
+ header?: never;
1717
+ path: {
1718
+ business_id: string;
1719
+ };
1720
+ cookie?: never;
1721
+ };
1722
+ requestBody?: never;
1723
+ responses: {
1724
+ /** @description No response body */
1725
+ 200: {
1726
+ headers: {
1727
+ [name: string]: unknown;
1728
+ };
1729
+ content?: never;
1730
+ };
1731
+ };
1732
+ };
1733
+ v1_auth_businesses_storefront_key_retrieve: {
1734
+ parameters: {
1735
+ query?: never;
1736
+ header?: never;
1737
+ path: {
1738
+ business_id: string;
1739
+ };
1740
+ cookie?: never;
1741
+ };
1742
+ requestBody?: never;
1743
+ responses: {
1744
+ /** @description No response body */
1745
+ 200: {
1746
+ headers: {
1747
+ [name: string]: unknown;
1748
+ };
1749
+ content?: never;
1750
+ };
1751
+ };
1752
+ };
1753
+ v1_auth_businesses_storefront_key_create: {
1754
+ parameters: {
1755
+ query?: never;
1756
+ header?: never;
1757
+ path: {
1758
+ business_id: string;
1759
+ };
1760
+ cookie?: never;
1761
+ };
1762
+ requestBody?: never;
1763
+ responses: {
1764
+ /** @description No response body */
1765
+ 200: {
1766
+ headers: {
1767
+ [name: string]: unknown;
1768
+ };
1769
+ content?: never;
1770
+ };
1771
+ };
1772
+ };
1773
+ v1_auth_businesses_storefront_key_destroy: {
1774
+ parameters: {
1775
+ query?: never;
1776
+ header?: never;
1777
+ path: {
1778
+ business_id: string;
1779
+ };
1780
+ cookie?: never;
1781
+ };
1782
+ requestBody?: never;
1783
+ responses: {
1784
+ /** @description No response body */
1785
+ 204: {
1786
+ headers: {
1787
+ [name: string]: unknown;
1788
+ };
1789
+ content?: never;
1790
+ };
1791
+ };
1792
+ };
1793
+ v1_auth_change_password_create: {
1794
+ parameters: {
1795
+ query?: never;
1796
+ header?: never;
1797
+ path?: never;
1798
+ cookie?: never;
1799
+ };
1800
+ requestBody: {
1801
+ content: {
1802
+ "application/json": components["schemas"]["ChangePassword"];
1803
+ "application/x-www-form-urlencoded": components["schemas"]["ChangePassword"];
1804
+ "multipart/form-data": components["schemas"]["ChangePassword"];
1805
+ };
1806
+ };
1807
+ responses: {
1808
+ /** @description No response body */
1809
+ 200: {
1810
+ headers: {
1811
+ [name: string]: unknown;
1812
+ };
1813
+ content?: never;
1814
+ };
1815
+ };
1816
+ };
1817
+ v1_auth_confirm_reactivate_create: {
1818
+ parameters: {
1819
+ query?: never;
1820
+ header?: never;
1821
+ path?: never;
1822
+ cookie?: never;
1823
+ };
1824
+ requestBody?: never;
1825
+ responses: {
1826
+ /** @description No response body */
1827
+ 200: {
1828
+ headers: {
1829
+ [name: string]: unknown;
1830
+ };
1831
+ content?: never;
1832
+ };
1833
+ };
1834
+ };
1835
+ v1_auth_countries_retrieve: {
1836
+ parameters: {
1837
+ query?: never;
1838
+ header?: never;
1839
+ path?: never;
1840
+ cookie?: never;
1841
+ };
1842
+ requestBody?: never;
1843
+ responses: {
1844
+ 200: {
1845
+ headers: {
1846
+ [name: string]: unknown;
1847
+ };
1848
+ content: {
1849
+ "application/json": unknown;
1850
+ };
1851
+ };
1852
+ };
1853
+ };
1854
+ v1_auth_countries_states_retrieve: {
1855
+ parameters: {
1856
+ query?: never;
1857
+ header?: never;
1858
+ path: {
1859
+ iso_code: string;
1860
+ };
1861
+ cookie?: never;
1862
+ };
1863
+ requestBody?: never;
1864
+ responses: {
1865
+ 200: {
1866
+ headers: {
1867
+ [name: string]: unknown;
1868
+ };
1869
+ content: {
1870
+ "application/json": unknown;
1871
+ };
1872
+ };
1873
+ };
1874
+ };
1875
+ v1_auth_customer_deactivate_create: {
1876
+ parameters: {
1877
+ query?: never;
1878
+ header?: never;
1879
+ path?: never;
1880
+ cookie?: never;
1881
+ };
1882
+ requestBody: {
1883
+ content: {
1884
+ "application/json": components["schemas"]["DeactivateAccount"];
1885
+ "application/x-www-form-urlencoded": components["schemas"]["DeactivateAccount"];
1886
+ "multipart/form-data": components["schemas"]["DeactivateAccount"];
1887
+ };
1888
+ };
1889
+ responses: {
1890
+ /** @description No response body */
1891
+ 200: {
1892
+ headers: {
1893
+ [name: string]: unknown;
1894
+ };
1895
+ content?: never;
1896
+ };
1897
+ };
1898
+ };
1899
+ v1_auth_customer_reactivate_create: {
1900
+ parameters: {
1901
+ query?: never;
1902
+ header?: never;
1903
+ path?: never;
1904
+ cookie?: never;
1905
+ };
1906
+ requestBody?: never;
1907
+ responses: {
1908
+ /** @description No response body */
1909
+ 200: {
1910
+ headers: {
1911
+ [name: string]: unknown;
1912
+ };
1913
+ content?: never;
1914
+ };
1915
+ };
1916
+ };
1917
+ v1_auth_customer_reactivate_verify_create: {
1918
+ parameters: {
1919
+ query?: never;
1920
+ header?: never;
1921
+ path?: never;
1922
+ cookie?: never;
1923
+ };
1924
+ requestBody: {
1925
+ content: {
1926
+ "application/json": components["schemas"]["VerifyOTP"];
1927
+ "application/x-www-form-urlencoded": components["schemas"]["VerifyOTP"];
1928
+ "multipart/form-data": components["schemas"]["VerifyOTP"];
1929
+ };
1930
+ };
1931
+ responses: {
1932
+ /** @description No response body */
1933
+ 200: {
1934
+ headers: {
1935
+ [name: string]: unknown;
1936
+ };
1937
+ content?: never;
1938
+ };
1939
+ };
1940
+ };
1941
+ v1_auth_deactivate_create: {
1942
+ parameters: {
1943
+ query?: never;
1944
+ header?: never;
1945
+ path?: never;
1946
+ cookie?: never;
1947
+ };
1948
+ requestBody: {
1949
+ content: {
1950
+ "application/json": components["schemas"]["DeactivateAccount"];
1951
+ "application/x-www-form-urlencoded": components["schemas"]["DeactivateAccount"];
1952
+ "multipart/form-data": components["schemas"]["DeactivateAccount"];
1953
+ };
1954
+ };
1955
+ responses: {
1956
+ /** @description No response body */
1957
+ 200: {
1958
+ headers: {
1959
+ [name: string]: unknown;
1960
+ };
1961
+ content?: never;
1962
+ };
1963
+ /** @description No response body */
1964
+ 409: {
1965
+ headers: {
1966
+ [name: string]: unknown;
1967
+ };
1968
+ content?: never;
1969
+ };
1970
+ };
1971
+ };
1972
+ v1_auth_forgot_password_create: {
1973
+ parameters: {
1974
+ query?: never;
1975
+ header?: never;
1976
+ path?: never;
1977
+ cookie?: never;
1978
+ };
1979
+ requestBody: {
1980
+ content: {
1981
+ "application/json": components["schemas"]["ForgotPassword"];
1982
+ "application/x-www-form-urlencoded": components["schemas"]["ForgotPassword"];
1983
+ "multipart/form-data": components["schemas"]["ForgotPassword"];
1984
+ };
1985
+ };
1986
+ responses: {
1987
+ /** @description No response body */
1988
+ 200: {
1989
+ headers: {
1990
+ [name: string]: unknown;
1991
+ };
1992
+ content?: never;
1993
+ };
1994
+ };
1995
+ };
1996
+ v1_auth_forgot_password_customer_create: {
1997
+ parameters: {
1998
+ query?: never;
1999
+ header?: never;
2000
+ path?: never;
2001
+ cookie?: never;
2002
+ };
2003
+ requestBody: {
2004
+ content: {
2005
+ "application/json": components["schemas"]["CustomerForgotPassword"];
2006
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerForgotPassword"];
2007
+ "multipart/form-data": components["schemas"]["CustomerForgotPassword"];
2008
+ };
2009
+ };
2010
+ responses: {
2011
+ /** @description No response body */
2012
+ 200: {
2013
+ headers: {
2014
+ [name: string]: unknown;
2015
+ };
2016
+ content?: never;
2017
+ };
2018
+ };
2019
+ };
2020
+ v1_auth_login_business_create: {
2021
+ parameters: {
2022
+ query?: never;
2023
+ header?: never;
2024
+ path?: never;
2025
+ cookie?: never;
2026
+ };
2027
+ requestBody: {
2028
+ content: {
2029
+ "application/json": components["schemas"]["BusinessLogin"];
2030
+ "application/x-www-form-urlencoded": components["schemas"]["BusinessLogin"];
2031
+ "multipart/form-data": components["schemas"]["BusinessLogin"];
2032
+ };
2033
+ };
2034
+ responses: {
2035
+ /** @description No response body */
2036
+ 200: {
2037
+ headers: {
2038
+ [name: string]: unknown;
2039
+ };
2040
+ content?: never;
2041
+ };
2042
+ };
2043
+ };
2044
+ v1_auth_login_customer_create: {
2045
+ parameters: {
2046
+ query?: never;
2047
+ header?: never;
2048
+ path?: never;
2049
+ cookie?: never;
2050
+ };
2051
+ requestBody: {
2052
+ content: {
2053
+ "application/json": components["schemas"]["CustomerLogin"];
2054
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerLogin"];
2055
+ "multipart/form-data": components["schemas"]["CustomerLogin"];
2056
+ };
2057
+ };
2058
+ responses: {
2059
+ /** @description No response body */
2060
+ 200: {
2061
+ headers: {
2062
+ [name: string]: unknown;
2063
+ };
2064
+ content?: never;
2065
+ };
2066
+ };
2067
+ };
2068
+ v1_auth_login_customer_passwordless_request_create: {
2069
+ parameters: {
2070
+ query?: never;
2071
+ header?: never;
2072
+ path?: never;
2073
+ cookie?: never;
2074
+ };
2075
+ requestBody: {
2076
+ content: {
2077
+ "application/json": components["schemas"]["CustomerPasswordlessRequest"];
2078
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerPasswordlessRequest"];
2079
+ "multipart/form-data": components["schemas"]["CustomerPasswordlessRequest"];
2080
+ };
2081
+ };
2082
+ responses: {
2083
+ /** @description No response body */
2084
+ 200: {
2085
+ headers: {
2086
+ [name: string]: unknown;
2087
+ };
2088
+ content?: never;
2089
+ };
2090
+ };
2091
+ };
2092
+ v1_auth_login_customer_passwordless_verify_create: {
2093
+ parameters: {
2094
+ query?: never;
2095
+ header?: never;
2096
+ path?: never;
2097
+ cookie?: never;
2098
+ };
2099
+ requestBody: {
2100
+ content: {
2101
+ "application/json": components["schemas"]["CustomerPasswordlessVerify"];
2102
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerPasswordlessVerify"];
2103
+ "multipart/form-data": components["schemas"]["CustomerPasswordlessVerify"];
2104
+ };
2105
+ };
2106
+ responses: {
2107
+ /** @description No response body */
2108
+ 200: {
2109
+ headers: {
2110
+ [name: string]: unknown;
2111
+ };
2112
+ content?: never;
2113
+ };
2114
+ };
2115
+ };
2116
+ v1_auth_logout_create: {
2117
+ parameters: {
2118
+ query?: never;
2119
+ header?: never;
2120
+ path?: never;
2121
+ cookie?: never;
2122
+ };
2123
+ requestBody?: never;
2124
+ responses: {
2125
+ /** @description No response body */
2126
+ 200: {
2127
+ headers: {
2128
+ [name: string]: unknown;
2129
+ };
2130
+ content?: never;
2131
+ };
2132
+ };
2133
+ };
2134
+ v1_auth_media_destroy: {
2135
+ parameters: {
2136
+ query?: never;
2137
+ header?: never;
2138
+ path: {
2139
+ media_id: string;
2140
+ };
2141
+ cookie?: never;
2142
+ };
2143
+ requestBody?: never;
2144
+ responses: {
2145
+ /** @description No response body */
2146
+ 204: {
2147
+ headers: {
2148
+ [name: string]: unknown;
2149
+ };
2150
+ content?: never;
2151
+ };
2152
+ };
2153
+ };
2154
+ v1_auth_media_confirm_upload_create: {
2155
+ parameters: {
2156
+ query?: never;
2157
+ header?: never;
2158
+ path?: never;
2159
+ cookie?: never;
2160
+ };
2161
+ requestBody?: never;
2162
+ responses: {
2163
+ /** @description No response body */
2164
+ 200: {
2165
+ headers: {
2166
+ [name: string]: unknown;
2167
+ };
2168
+ content?: never;
2169
+ };
2170
+ };
2171
+ };
2172
+ v1_auth_media_presigned_url_create: {
2173
+ parameters: {
2174
+ query?: never;
2175
+ header?: never;
2176
+ path?: never;
2177
+ cookie?: never;
2178
+ };
2179
+ requestBody?: never;
2180
+ responses: {
2181
+ /** @description No response body */
2182
+ 200: {
2183
+ headers: {
2184
+ [name: string]: unknown;
2185
+ };
2186
+ content?: never;
2187
+ };
2188
+ };
2189
+ };
2190
+ v1_auth_mfa_setup_backup_codes_create: {
2191
+ parameters: {
2192
+ query?: never;
2193
+ header?: never;
2194
+ path?: never;
2195
+ cookie?: never;
2196
+ };
2197
+ requestBody?: never;
2198
+ responses: {
2199
+ /** @description No response body */
2200
+ 200: {
2201
+ headers: {
2202
+ [name: string]: unknown;
2203
+ };
2204
+ content?: never;
2205
+ };
2206
+ };
2207
+ };
2208
+ v1_auth_mfa_setup_pin_create: {
2209
+ parameters: {
2210
+ query?: never;
2211
+ header?: never;
2212
+ path?: never;
2213
+ cookie?: never;
2214
+ };
2215
+ requestBody?: never;
2216
+ responses: {
2217
+ /** @description No response body */
2218
+ 200: {
2219
+ headers: {
2220
+ [name: string]: unknown;
2221
+ };
2222
+ content?: never;
2223
+ };
2224
+ };
2225
+ };
2226
+ v1_auth_mfa_setup_pin_destroy: {
2227
+ parameters: {
2228
+ query?: never;
2229
+ header?: never;
2230
+ path?: never;
2231
+ cookie?: never;
2232
+ };
2233
+ requestBody?: never;
2234
+ responses: {
2235
+ /** @description No response body */
2236
+ 204: {
2237
+ headers: {
2238
+ [name: string]: unknown;
2239
+ };
2240
+ content?: never;
2241
+ };
2242
+ };
2243
+ };
2244
+ v1_auth_mfa_setup_totp_retrieve: {
2245
+ parameters: {
2246
+ query?: never;
2247
+ header?: never;
2248
+ path?: never;
2249
+ cookie?: never;
2250
+ };
2251
+ requestBody?: never;
2252
+ responses: {
2253
+ /** @description No response body */
2254
+ 200: {
2255
+ headers: {
2256
+ [name: string]: unknown;
2257
+ };
2258
+ content?: never;
2259
+ };
2260
+ };
2261
+ };
2262
+ v1_auth_mfa_setup_totp_create: {
2263
+ parameters: {
2264
+ query?: never;
2265
+ header?: never;
2266
+ path?: never;
2267
+ cookie?: never;
2268
+ };
2269
+ requestBody?: never;
2270
+ responses: {
2271
+ /** @description No response body */
2272
+ 200: {
2273
+ headers: {
2274
+ [name: string]: unknown;
2275
+ };
2276
+ content?: never;
2277
+ };
2278
+ };
2279
+ };
2280
+ v1_auth_profile_retrieve: {
2281
+ parameters: {
2282
+ query?: never;
2283
+ header?: never;
2284
+ path?: never;
2285
+ cookie?: never;
2286
+ };
2287
+ requestBody?: never;
2288
+ responses: {
2289
+ /** @description No response body */
2290
+ 200: {
2291
+ headers: {
2292
+ [name: string]: unknown;
2293
+ };
2294
+ content?: never;
2295
+ };
2296
+ };
2297
+ };
2298
+ v1_auth_profile_update: {
2299
+ parameters: {
2300
+ query?: never;
2301
+ header?: never;
2302
+ path?: never;
2303
+ cookie?: never;
2304
+ };
2305
+ requestBody?: never;
2306
+ responses: {
2307
+ /** @description No response body */
2308
+ 200: {
2309
+ headers: {
2310
+ [name: string]: unknown;
2311
+ };
2312
+ content?: never;
2313
+ };
2314
+ };
2315
+ };
2316
+ v1_auth_profile_addresses_retrieve: {
2317
+ parameters: {
2318
+ query?: never;
2319
+ header?: never;
2320
+ path?: never;
2321
+ cookie?: never;
2322
+ };
2323
+ requestBody?: never;
2324
+ responses: {
2325
+ /** @description No response body */
2326
+ 200: {
2327
+ headers: {
2328
+ [name: string]: unknown;
2329
+ };
2330
+ content?: never;
2331
+ };
2332
+ };
2333
+ };
2334
+ v1_auth_profile_addresses_create: {
2335
+ parameters: {
2336
+ query?: never;
2337
+ header?: never;
2338
+ path?: never;
2339
+ cookie?: never;
2340
+ };
2341
+ requestBody: {
2342
+ content: {
2343
+ "application/json": components["schemas"]["CustomerAddress"];
2344
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerAddress"];
2345
+ "multipart/form-data": components["schemas"]["CustomerAddress"];
2346
+ };
2347
+ };
2348
+ responses: {
2349
+ 201: {
2350
+ headers: {
2351
+ [name: string]: unknown;
2352
+ };
2353
+ content: {
2354
+ "application/json": components["schemas"]["CustomerAddress"];
2355
+ };
2356
+ };
2357
+ };
2358
+ };
2359
+ v1_auth_profile_addresses_destroy: {
2360
+ parameters: {
2361
+ query?: never;
2362
+ header?: never;
2363
+ path: {
2364
+ address_id: string;
2365
+ };
2366
+ cookie?: never;
2367
+ };
2368
+ requestBody?: never;
2369
+ responses: {
2370
+ /** @description No response body */
2371
+ 204: {
2372
+ headers: {
2373
+ [name: string]: unknown;
2374
+ };
2375
+ content?: never;
2376
+ };
2377
+ };
2378
+ };
2379
+ v1_auth_profile_addresses_partial_update: {
2380
+ parameters: {
2381
+ query?: never;
2382
+ header?: never;
2383
+ path: {
2384
+ address_id: string;
2385
+ };
2386
+ cookie?: never;
2387
+ };
2388
+ requestBody?: {
2389
+ content: {
2390
+ "application/json": components["schemas"]["PatchedCustomerAddress"];
2391
+ "application/x-www-form-urlencoded": components["schemas"]["PatchedCustomerAddress"];
2392
+ "multipart/form-data": components["schemas"]["PatchedCustomerAddress"];
2393
+ };
2394
+ };
2395
+ responses: {
2396
+ 200: {
2397
+ headers: {
2398
+ [name: string]: unknown;
2399
+ };
2400
+ content: {
2401
+ "application/json": components["schemas"]["CustomerAddress"];
2402
+ };
2403
+ };
2404
+ };
2405
+ };
2406
+ v1_auth_reactivate_create: {
2407
+ parameters: {
2408
+ query?: never;
2409
+ header?: never;
2410
+ path?: never;
2411
+ cookie?: never;
2412
+ };
2413
+ requestBody: {
2414
+ content: {
2415
+ "application/json": components["schemas"]["ForgotPassword"];
2416
+ "application/x-www-form-urlencoded": components["schemas"]["ForgotPassword"];
2417
+ "multipart/form-data": components["schemas"]["ForgotPassword"];
2418
+ };
2419
+ };
2420
+ responses: {
2421
+ /** @description No response body */
2422
+ 200: {
2423
+ headers: {
2424
+ [name: string]: unknown;
2425
+ };
2426
+ content?: never;
2427
+ };
2428
+ };
2429
+ };
2430
+ v1_auth_register_business_create: {
2431
+ parameters: {
2432
+ query?: never;
2433
+ header?: never;
2434
+ path?: never;
2435
+ cookie?: never;
2436
+ };
2437
+ requestBody: {
2438
+ content: {
2439
+ "application/json": components["schemas"]["BusinessCreate"];
2440
+ "application/x-www-form-urlencoded": components["schemas"]["BusinessCreate"];
2441
+ "multipart/form-data": components["schemas"]["BusinessCreate"];
2442
+ };
2443
+ };
2444
+ responses: {
2445
+ 201: {
2446
+ headers: {
2447
+ [name: string]: unknown;
2448
+ };
2449
+ content: {
2450
+ "application/json": components["schemas"]["User"];
2451
+ };
2452
+ };
2453
+ };
2454
+ };
2455
+ v1_auth_register_customer_create: {
2456
+ parameters: {
2457
+ query?: never;
2458
+ header?: never;
2459
+ path?: never;
2460
+ cookie?: never;
2461
+ };
2462
+ requestBody: {
2463
+ content: {
2464
+ "application/json": components["schemas"]["CustomerRegister"];
2465
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerRegister"];
2466
+ "multipart/form-data": components["schemas"]["CustomerRegister"];
2467
+ };
2468
+ };
2469
+ responses: {
2470
+ /** @description No response body */
2471
+ 200: {
2472
+ headers: {
2473
+ [name: string]: unknown;
2474
+ };
2475
+ content?: never;
2476
+ };
2477
+ };
2478
+ };
2479
+ v1_auth_resend_otp_create: {
2480
+ parameters: {
2481
+ query?: never;
2482
+ header?: never;
2483
+ path?: never;
2484
+ cookie?: never;
2485
+ };
2486
+ requestBody?: never;
2487
+ responses: {
2488
+ /** @description No response body */
2489
+ 200: {
2490
+ headers: {
2491
+ [name: string]: unknown;
2492
+ };
2493
+ content?: never;
2494
+ };
2495
+ };
2496
+ };
2497
+ v1_auth_reset_password_create: {
2498
+ parameters: {
2499
+ query?: never;
2500
+ header?: never;
2501
+ path?: never;
2502
+ cookie?: never;
2503
+ };
2504
+ requestBody: {
2505
+ content: {
2506
+ "application/json": components["schemas"]["ResetPassword"];
2507
+ "application/x-www-form-urlencoded": components["schemas"]["ResetPassword"];
2508
+ "multipart/form-data": components["schemas"]["ResetPassword"];
2509
+ };
2510
+ };
2511
+ responses: {
2512
+ /** @description No response body */
2513
+ 200: {
2514
+ headers: {
2515
+ [name: string]: unknown;
2516
+ };
2517
+ content?: never;
2518
+ };
2519
+ };
2520
+ };
2521
+ v1_auth_reset_password_customer_create: {
2522
+ parameters: {
2523
+ query?: never;
2524
+ header?: never;
2525
+ path?: never;
2526
+ cookie?: never;
2527
+ };
2528
+ requestBody: {
2529
+ content: {
2530
+ "application/json": components["schemas"]["CustomerResetPassword"];
2531
+ "application/x-www-form-urlencoded": components["schemas"]["CustomerResetPassword"];
2532
+ "multipart/form-data": components["schemas"]["CustomerResetPassword"];
2533
+ };
2534
+ };
2535
+ responses: {
2536
+ /** @description No response body */
2537
+ 200: {
2538
+ headers: {
2539
+ [name: string]: unknown;
2540
+ };
2541
+ content?: never;
2542
+ };
2543
+ };
2544
+ };
2545
+ v1_auth_sessions_retrieve: {
2546
+ parameters: {
2547
+ query?: never;
2548
+ header?: never;
2549
+ path?: never;
2550
+ cookie?: never;
2551
+ };
2552
+ requestBody?: never;
2553
+ responses: {
2554
+ /** @description No response body */
2555
+ 200: {
2556
+ headers: {
2557
+ [name: string]: unknown;
2558
+ };
2559
+ content?: never;
2560
+ };
2561
+ };
2562
+ };
2563
+ v1_auth_sessions_business_retrieve: {
2564
+ parameters: {
2565
+ query?: never;
2566
+ header?: never;
2567
+ path?: never;
2568
+ cookie?: never;
2569
+ };
2570
+ requestBody?: never;
2571
+ responses: {
2572
+ /** @description No response body */
2573
+ 200: {
2574
+ headers: {
2575
+ [name: string]: unknown;
2576
+ };
2577
+ content?: never;
2578
+ };
2579
+ };
2580
+ };
2581
+ v1_auth_sessions_business_revoke_create: {
2582
+ parameters: {
2583
+ query?: never;
2584
+ header?: never;
2585
+ path?: never;
2586
+ cookie?: never;
2587
+ };
2588
+ requestBody?: never;
2589
+ responses: {
2590
+ /** @description No response body */
2591
+ 200: {
2592
+ headers: {
2593
+ [name: string]: unknown;
2594
+ };
2595
+ content?: never;
2596
+ };
2597
+ };
2598
+ };
2599
+ v1_auth_sessions_revoke_create: {
2600
+ parameters: {
2601
+ query?: never;
2602
+ header?: never;
2603
+ path?: never;
2604
+ cookie?: never;
2605
+ };
2606
+ requestBody?: never;
2607
+ responses: {
2608
+ /** @description No response body */
2609
+ 200: {
2610
+ headers: {
2611
+ [name: string]: unknown;
2612
+ };
2613
+ content?: never;
2614
+ };
2615
+ };
2616
+ };
2617
+ v1_auth_sessions_revoke_all_create: {
2618
+ parameters: {
2619
+ query?: never;
2620
+ header?: never;
2621
+ path?: never;
2622
+ cookie?: never;
2623
+ };
2624
+ requestBody?: never;
2625
+ responses: {
2626
+ /** @description No response body */
2627
+ 200: {
2628
+ headers: {
2629
+ [name: string]: unknown;
2630
+ };
2631
+ content?: never;
2632
+ };
2633
+ };
2634
+ };
2635
+ v1_auth_smileid_callback_create: {
2636
+ parameters: {
2637
+ query?: never;
2638
+ header?: never;
2639
+ path?: never;
2640
+ cookie?: never;
2641
+ };
2642
+ requestBody?: never;
2643
+ responses: {
2644
+ /** @description No response body */
2645
+ 200: {
2646
+ headers: {
2647
+ [name: string]: unknown;
2648
+ };
2649
+ content?: never;
2650
+ };
2651
+ };
2652
+ };
2653
+ v1_auth_smileid_tier1_create: {
2654
+ parameters: {
2655
+ query?: never;
2656
+ header?: never;
2657
+ path?: never;
2658
+ cookie?: never;
2659
+ };
2660
+ requestBody?: never;
2661
+ responses: {
2662
+ /** @description No response body */
2663
+ 200: {
2664
+ headers: {
2665
+ [name: string]: unknown;
2666
+ };
2667
+ content?: never;
2668
+ };
2669
+ };
2670
+ };
2671
+ v1_auth_smileid_tier2_create: {
2672
+ parameters: {
2673
+ query?: never;
2674
+ header?: never;
2675
+ path?: never;
2676
+ cookie?: never;
2677
+ };
2678
+ requestBody?: never;
2679
+ responses: {
2680
+ /** @description No response body */
2681
+ 200: {
2682
+ headers: {
2683
+ [name: string]: unknown;
2684
+ };
2685
+ content?: never;
2686
+ };
2687
+ };
2688
+ };
2689
+ v1_auth_social_facebook_business_retrieve: {
2690
+ parameters: {
2691
+ query?: never;
2692
+ header?: never;
2693
+ path?: never;
2694
+ cookie?: never;
2695
+ };
2696
+ requestBody?: never;
2697
+ responses: {
2698
+ /** @description No response body */
2699
+ 200: {
2700
+ headers: {
2701
+ [name: string]: unknown;
2702
+ };
2703
+ content?: never;
2704
+ };
2705
+ };
2706
+ };
2707
+ v1_auth_social_google_business_retrieve: {
2708
+ parameters: {
2709
+ query?: never;
2710
+ header?: never;
2711
+ path?: never;
2712
+ cookie?: never;
2713
+ };
2714
+ requestBody?: never;
2715
+ responses: {
2716
+ /** @description No response body */
2717
+ 200: {
2718
+ headers: {
2719
+ [name: string]: unknown;
2720
+ };
2721
+ content?: never;
2722
+ };
2723
+ };
2724
+ };
2725
+ v1_auth_social_verify_create: {
2726
+ parameters: {
2727
+ query?: never;
2728
+ header?: never;
2729
+ path: {
2730
+ provider: string;
2731
+ };
2732
+ cookie?: never;
2733
+ };
2734
+ requestBody?: never;
2735
+ responses: {
2736
+ /** @description No response body */
2737
+ 200: {
2738
+ headers: {
2739
+ [name: string]: unknown;
2740
+ };
2741
+ content?: never;
2742
+ };
2743
+ };
2744
+ };
2745
+ v1_auth_storefront_business_info_retrieve: {
2746
+ parameters: {
2747
+ query?: never;
2748
+ header?: never;
2749
+ path?: never;
2750
+ cookie?: never;
2751
+ };
2752
+ requestBody?: never;
2753
+ responses: {
2754
+ /** @description No response body */
2755
+ 200: {
2756
+ headers: {
2757
+ [name: string]: unknown;
2758
+ };
2759
+ content?: never;
2760
+ };
2761
+ };
2762
+ };
2763
+ v1_auth_token_password_confirm_create: {
2764
+ parameters: {
2765
+ query?: never;
2766
+ header?: never;
2767
+ path?: never;
2768
+ cookie?: never;
2769
+ };
2770
+ requestBody: {
2771
+ content: {
2772
+ "application/json": components["schemas"]["ResetPassword"];
2773
+ "application/x-www-form-urlencoded": components["schemas"]["ResetPassword"];
2774
+ "multipart/form-data": components["schemas"]["ResetPassword"];
2775
+ };
2776
+ };
2777
+ responses: {
2778
+ /** @description No response body */
2779
+ 200: {
2780
+ headers: {
2781
+ [name: string]: unknown;
2782
+ };
2783
+ content?: never;
2784
+ };
2785
+ };
2786
+ };
2787
+ v1_auth_token_password_reset_create: {
2788
+ parameters: {
2789
+ query?: never;
2790
+ header?: never;
2791
+ path?: never;
2792
+ cookie?: never;
2793
+ };
2794
+ requestBody: {
2795
+ content: {
2796
+ "application/json": components["schemas"]["ForgotPassword"];
2797
+ "application/x-www-form-urlencoded": components["schemas"]["ForgotPassword"];
2798
+ "multipart/form-data": components["schemas"]["ForgotPassword"];
2799
+ };
2800
+ };
2801
+ responses: {
2802
+ /** @description No response body */
2803
+ 200: {
2804
+ headers: {
2805
+ [name: string]: unknown;
2806
+ };
2807
+ content?: never;
2808
+ };
2809
+ };
2810
+ };
2811
+ v1_auth_token_refresh_create: {
2812
+ parameters: {
2813
+ query?: never;
2814
+ header?: never;
2815
+ path?: never;
2816
+ cookie?: never;
2817
+ };
2818
+ requestBody: {
2819
+ content: {
2820
+ "application/json": components["schemas"]["CustomTokenRefresh"];
2821
+ "application/x-www-form-urlencoded": components["schemas"]["CustomTokenRefresh"];
2822
+ "multipart/form-data": components["schemas"]["CustomTokenRefresh"];
2823
+ };
2824
+ };
2825
+ responses: {
2826
+ 200: {
2827
+ headers: {
2828
+ [name: string]: unknown;
2829
+ };
2830
+ content: {
2831
+ "application/json": components["schemas"]["CustomTokenRefresh"];
2832
+ };
2833
+ };
2834
+ };
2835
+ };
2836
+ v1_auth_token_revoke_create: {
2837
+ parameters: {
2838
+ query?: never;
2839
+ header?: never;
2840
+ path?: never;
2841
+ cookie?: never;
2842
+ };
2843
+ requestBody: {
2844
+ content: {
2845
+ "application/json": components["schemas"]["TokenRevoke"];
2846
+ "application/x-www-form-urlencoded": components["schemas"]["TokenRevoke"];
2847
+ "multipart/form-data": components["schemas"]["TokenRevoke"];
2848
+ };
2849
+ };
2850
+ responses: {
2851
+ 200: {
2852
+ headers: {
2853
+ [name: string]: unknown;
2854
+ };
2855
+ content: {
2856
+ "application/json": components["schemas"]["TokenRevoke"];
2857
+ };
2858
+ };
2859
+ };
2860
+ };
2861
+ v1_auth_token_verify_create: {
2862
+ parameters: {
2863
+ query?: never;
2864
+ header?: never;
2865
+ path?: never;
2866
+ cookie?: never;
2867
+ };
2868
+ requestBody: {
2869
+ content: {
2870
+ "application/json": components["schemas"]["TokenVerify"];
2871
+ "application/x-www-form-urlencoded": components["schemas"]["TokenVerify"];
2872
+ "multipart/form-data": components["schemas"]["TokenVerify"];
2873
+ };
2874
+ };
2875
+ responses: {
2876
+ 200: {
2877
+ headers: {
2878
+ [name: string]: unknown;
2879
+ };
2880
+ content: {
2881
+ "application/json": components["schemas"]["TokenVerify"];
2882
+ };
2883
+ };
2884
+ };
2885
+ };
2886
+ v1_auth_user_security_partial_update: {
2887
+ parameters: {
2888
+ query?: never;
2889
+ header?: never;
2890
+ path?: never;
2891
+ cookie?: never;
2892
+ };
2893
+ requestBody?: {
2894
+ content: {
2895
+ "application/json": components["schemas"]["PatchedUserSecurityUpdate"];
2896
+ "application/x-www-form-urlencoded": components["schemas"]["PatchedUserSecurityUpdate"];
2897
+ "multipart/form-data": components["schemas"]["PatchedUserSecurityUpdate"];
2898
+ };
2899
+ };
2900
+ responses: {
2901
+ 200: {
2902
+ headers: {
2903
+ [name: string]: unknown;
2904
+ };
2905
+ content: {
2906
+ "application/json": components["schemas"]["User"];
2907
+ };
2908
+ };
2909
+ };
2910
+ };
2911
+ v1_auth_verify_otp_create: {
2912
+ parameters: {
2913
+ query?: never;
2914
+ header?: never;
2915
+ path?: never;
2916
+ cookie?: never;
2917
+ };
2918
+ requestBody: {
2919
+ content: {
2920
+ "application/json": components["schemas"]["VerifyOTP"];
2921
+ "application/x-www-form-urlencoded": components["schemas"]["VerifyOTP"];
2922
+ "multipart/form-data": components["schemas"]["VerifyOTP"];
2923
+ };
2924
+ };
2925
+ responses: {
2926
+ /** @description No response body */
2927
+ 200: {
2928
+ headers: {
2929
+ [name: string]: unknown;
2930
+ };
2931
+ content?: never;
2932
+ };
2933
+ };
2934
+ };
2935
+ }