@blezgo/api-sdk 0.1.3 → 0.1.4

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 (138) hide show
  1. package/dist/account/generated.d.ts +180 -180
  2. package/dist/account/generated.d.ts.map +1 -1
  3. package/dist/activity/generated.d.ts +60 -60
  4. package/dist/activity/generated.d.ts.map +1 -1
  5. package/dist/addon/generated.d.ts +83 -83
  6. package/dist/addon/generated.d.ts.map +1 -1
  7. package/dist/admin/generated.d.ts +126 -126
  8. package/dist/admin/generated.d.ts.map +1 -1
  9. package/dist/affiliate/generated.d.ts +83 -83
  10. package/dist/affiliate/generated.d.ts.map +1 -1
  11. package/dist/analytics/generated.d.ts +30 -30
  12. package/dist/analytics/generated.d.ts.map +1 -1
  13. package/dist/announcements/generated.d.ts +64 -64
  14. package/dist/announcements/generated.d.ts.map +1 -1
  15. package/dist/apikeys/generated.d.ts +79 -79
  16. package/dist/apikeys/generated.d.ts.map +1 -1
  17. package/dist/assistance/generated.d.ts +30 -30
  18. package/dist/assistance/generated.d.ts.map +1 -1
  19. package/dist/authentication/generated.d.ts +83 -83
  20. package/dist/authentication/generated.d.ts.map +1 -1
  21. package/dist/blog/generated.d.ts +204 -204
  22. package/dist/blog/generated.d.ts.map +1 -1
  23. package/dist/bundle/generated.d.ts +147 -147
  24. package/dist/bundle/generated.d.ts.map +1 -1
  25. package/dist/cache/generated.d.ts +33 -33
  26. package/dist/cache/generated.d.ts.map +1 -1
  27. package/dist/calendar/generated.d.ts +80 -80
  28. package/dist/calendar/generated.d.ts.map +1 -1
  29. package/dist/campaigns/generated.d.ts +198 -198
  30. package/dist/campaigns/generated.d.ts.map +1 -1
  31. package/dist/cart/generated.d.ts +40 -40
  32. package/dist/cart/generated.d.ts.map +1 -1
  33. package/dist/changelog/generated.d.ts +95 -95
  34. package/dist/changelog/generated.d.ts.map +1 -1
  35. package/dist/channel/generated.d.ts +251 -251
  36. package/dist/channel/generated.d.ts.map +1 -1
  37. package/dist/company/generated.d.ts +69 -69
  38. package/dist/company/generated.d.ts.map +1 -1
  39. package/dist/conference/generated.d.ts +166 -166
  40. package/dist/conference/generated.d.ts.map +1 -1
  41. package/dist/config/generated.d.ts +54 -54
  42. package/dist/config/generated.d.ts.map +1 -1
  43. package/dist/content/generated.d.ts +477 -477
  44. package/dist/content/generated.d.ts.map +1 -1
  45. package/dist/cookies/generated.d.ts +77 -77
  46. package/dist/cookies/generated.d.ts.map +1 -1
  47. package/dist/courses/generated.d.ts +397 -397
  48. package/dist/courses/generated.d.ts.map +1 -1
  49. package/dist/custom/generated.d.ts +99 -99
  50. package/dist/custom/generated.d.ts.map +1 -1
  51. package/dist/dashboard/generated.d.ts +177 -177
  52. package/dist/dashboard/generated.d.ts.map +1 -1
  53. package/dist/elasticsearch/generated.d.ts +30 -30
  54. package/dist/elasticsearch/generated.d.ts.map +1 -1
  55. package/dist/enrollments/generated.d.ts +30 -30
  56. package/dist/enrollments/generated.d.ts.map +1 -1
  57. package/dist/errors/generated.d.ts +30 -30
  58. package/dist/errors/generated.d.ts.map +1 -1
  59. package/dist/eventconfig/generated.d.ts +94 -94
  60. package/dist/eventconfig/generated.d.ts.map +1 -1
  61. package/dist/funnels/generated.d.ts +146 -146
  62. package/dist/funnels/generated.d.ts.map +1 -1
  63. package/dist/gamification/generated.d.ts +154 -154
  64. package/dist/gamification/generated.d.ts.map +1 -1
  65. package/dist/impersonation/generated.d.ts +71 -71
  66. package/dist/impersonation/generated.d.ts.map +1 -1
  67. package/dist/inbox/generated.d.ts +140 -140
  68. package/dist/inbox/generated.d.ts.map +1 -1
  69. package/dist/internal/generated.d.ts +30 -30
  70. package/dist/internal/generated.d.ts.map +1 -1
  71. package/dist/internationalization/generated.d.ts +30 -30
  72. package/dist/internationalization/generated.d.ts.map +1 -1
  73. package/dist/invitations/generated.d.ts +123 -123
  74. package/dist/invitations/generated.d.ts.map +1 -1
  75. package/dist/meetings/generated.d.ts +337 -337
  76. package/dist/meetings/generated.d.ts.map +1 -1
  77. package/dist/metas/generated.d.ts +170 -170
  78. package/dist/metas/generated.d.ts.map +1 -1
  79. package/dist/notification/generated.d.ts +382 -382
  80. package/dist/notification/generated.d.ts.map +1 -1
  81. package/dist/notifications/generated.d.ts +30 -30
  82. package/dist/notifications/generated.d.ts.map +1 -1
  83. package/dist/onboarding/generated.d.ts +106 -106
  84. package/dist/onboarding/generated.d.ts.map +1 -1
  85. package/dist/packages/generated.d.ts +83 -83
  86. package/dist/packages/generated.d.ts.map +1 -1
  87. package/dist/payments/generated.d.ts +502 -502
  88. package/dist/payments/generated.d.ts.map +1 -1
  89. package/dist/payouts/generated.d.ts +30 -30
  90. package/dist/payouts/generated.d.ts.map +1 -1
  91. package/dist/plans/generated.d.ts +470 -470
  92. package/dist/plans/generated.d.ts.map +1 -1
  93. package/dist/pricing/generated.d.ts +87 -87
  94. package/dist/pricing/generated.d.ts.map +1 -1
  95. package/dist/products/generated.d.ts +552 -552
  96. package/dist/products/generated.d.ts.map +1 -1
  97. package/dist/profile/generated.d.ts +272 -272
  98. package/dist/profile/generated.d.ts.map +1 -1
  99. package/dist/reasons/generated.d.ts +78 -78
  100. package/dist/reasons/generated.d.ts.map +1 -1
  101. package/dist/registration/generated.d.ts +145 -145
  102. package/dist/registration/generated.d.ts.map +1 -1
  103. package/dist/reviews/generated.d.ts +47 -47
  104. package/dist/reviews/generated.d.ts.map +1 -1
  105. package/dist/role/generated.d.ts +217 -217
  106. package/dist/role/generated.d.ts.map +1 -1
  107. package/dist/scheduling/generated.d.ts +139 -139
  108. package/dist/scheduling/generated.d.ts.map +1 -1
  109. package/dist/services/generated.d.ts +989 -989
  110. package/dist/services/generated.d.ts.map +1 -1
  111. package/dist/sessions/generated.d.ts +334 -334
  112. package/dist/sessions/generated.d.ts.map +1 -1
  113. package/dist/spaces/generated.d.ts +390 -390
  114. package/dist/spaces/generated.d.ts.map +1 -1
  115. package/dist/storefront/generated.d.ts +30 -30
  116. package/dist/storefront/generated.d.ts.map +1 -1
  117. package/dist/support/generated.d.ts +1465 -1465
  118. package/dist/support/generated.d.ts.map +1 -1
  119. package/dist/sync/generated.d.ts +157 -157
  120. package/dist/sync/generated.d.ts.map +1 -1
  121. package/dist/tenant/generated.d.ts +562 -562
  122. package/dist/tenant/generated.d.ts.map +1 -1
  123. package/dist/testimonials/generated.d.ts +67 -67
  124. package/dist/testimonials/generated.d.ts.map +1 -1
  125. package/dist/tests/generated.d.ts +619 -619
  126. package/dist/tests/generated.d.ts.map +1 -1
  127. package/dist/tokens/generated.d.ts +59 -59
  128. package/dist/tokens/generated.d.ts.map +1 -1
  129. package/dist/uploads/generated.d.ts +65 -65
  130. package/dist/uploads/generated.d.ts.map +1 -1
  131. package/dist/upsell/generated.d.ts +130 -130
  132. package/dist/upsell/generated.d.ts.map +1 -1
  133. package/dist/user/generated.d.ts +123 -117
  134. package/dist/user/generated.d.ts.map +1 -1
  135. package/dist/webinars/generated.d.ts +298 -298
  136. package/dist/webinars/generated.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/test-commit.txt +1 -0
@@ -2096,222 +2096,302 @@ export type webhooks = Record<string, never>;
2096
2096
  export interface components {
2097
2097
  schemas: {
2098
2098
  /**
2099
- * CreditVoidRequest
2100
- * @description Request model for voiding a credit.
2099
+ * VariantItem
2100
+ * @description Product variant (maps to product_variants_tbl)
2101
2101
  */
2102
- CreditVoidRequest: {
2102
+ VariantItem: {
2103
2103
  /**
2104
- * Reason
2105
- * @description Reason for voiding
2104
+ * Name
2105
+ * @description Variant display name
2106
2106
  */
2107
- reason?: string | null;
2108
- };
2109
- /**
2110
- * BookingCancelRequest
2111
- * @description Request model for cancelling a booking.
2112
- */
2113
- BookingCancelRequest: {
2107
+ name: string;
2114
2108
  /**
2115
- * Cancel Reason Id
2116
- * @description Reason ID from msd_reasons_tbl
2109
+ * Sku
2110
+ * @description Stock Keeping Unit
2117
2111
  */
2118
- cancel_reason_id?: number | null;
2112
+ sku?: string | null;
2119
2113
  /**
2120
- * Cancel Reason Text
2121
- * @description Additional cancellation reason
2114
+ * Attributes
2115
+ * @description Custom attributes
2122
2116
  */
2123
- cancel_reason_text?: string | null;
2124
- };
2125
- /**
2126
- * ExpertSettingsUpdateRequest
2127
- * @description Request model for updating expert settings.
2128
- */
2129
- ExpertSettingsUpdateRequest: {
2117
+ attributes?: {
2118
+ [key: string]: unknown;
2119
+ } | null;
2130
2120
  /**
2131
- * Custom Rate
2132
- * @description Custom rate
2121
+ * Is Default
2122
+ * @description Set as default variant
2123
+ * @default false
2133
2124
  */
2134
- custom_rate?: number | string | null;
2125
+ is_default: boolean;
2135
2126
  /**
2136
- * Accepts New Bookings
2137
- * @description Accepting new bookings
2127
+ * Track Inventory
2128
+ * @description Track stock for this variant
2129
+ * @default false
2138
2130
  */
2139
- accepts_new_bookings?: boolean | null;
2131
+ track_inventory: boolean;
2140
2132
  /**
2141
- * Max Daily Bookings
2142
- * @description Max daily bookings
2133
+ * Stock Quantity
2134
+ * @description Initial stock
2143
2135
  */
2144
- max_daily_bookings?: number | null;
2136
+ stock_quantity?: number | null;
2145
2137
  /**
2146
- * Auto Confirm Bookings
2147
- * @description Auto-confirm bookings
2138
+ * Allow Backorder
2139
+ * @description Allow orders when out of stock
2140
+ * @default false
2148
2141
  */
2149
- auto_confirm_bookings?: boolean | null;
2142
+ allow_backorder: boolean;
2150
2143
  /**
2151
- * Subjects
2152
- * @description Subject codes/IDs
2144
+ * Weight
2145
+ * @description Weight in kg
2153
2146
  */
2154
- subjects?: string[] | null;
2147
+ weight?: number | null;
2155
2148
  /**
2156
- * Topics
2157
- * @description Topic codes/IDs
2149
+ * Length
2150
+ * @description Length in cm
2158
2151
  */
2159
- topics?: string[] | null;
2160
- };
2161
- /**
2162
- * ServiceSection
2163
- * @description Service-specific fields (maps to service_tbl)
2164
- */
2165
- ServiceSection: {
2152
+ length?: number | null;
2166
2153
  /**
2167
- * Service Code
2168
- * @description Unique code within org: online-tutoring, makeup-services
2154
+ * Width
2155
+ * @description Width in cm
2169
2156
  */
2170
- service_code: string;
2157
+ width?: number | null;
2171
2158
  /**
2172
- * Service Type
2173
- * @description org_service (SRV-at-org), expert_service (SRV-at-exp)
2159
+ * Height
2160
+ * @description Height in cm
2174
2161
  */
2175
- service_type: string;
2162
+ height?: number | null;
2176
2163
  /**
2177
- * Enrollment Mode
2178
- * @description open, closed, invite_only, auto_approve
2179
- * @default open
2164
+ * Display Order
2165
+ * @description Display order
2166
+ * @default 100
2180
2167
  */
2181
- enrollment_mode: string;
2168
+ display_order: number;
2182
2169
  /**
2183
- * Enrollment Requires Approval
2184
- * @description Admin must approve expert applications
2185
- * @default true
2170
+ * Metadata
2171
+ * @description Flexible metadata
2186
2172
  */
2187
- enrollment_requires_approval: boolean;
2173
+ metadata?: {
2174
+ [key: string]: unknown;
2175
+ } | null;
2176
+ };
2177
+ /**
2178
+ * ServiceSettingsRequest
2179
+ * @description Request model for service settings.
2180
+ */
2181
+ ServiceSettingsRequest: {
2188
2182
  /**
2189
- * Max Experts
2190
- * @description Maximum experts allowed (NULL = unlimited)
2183
+ * Min Booking Duration
2184
+ * @description Min duration (minutes)
2191
2185
  */
2192
- max_experts?: number | null;
2186
+ min_booking_duration?: number | null;
2193
2187
  /**
2194
- * Pricing Mode
2195
- * @description org_flat_rate, expert_defined
2196
- * @default expert_defined
2188
+ * Max Booking Duration
2189
+ * @description Max duration (minutes)
2197
2190
  */
2198
- pricing_mode: string;
2191
+ max_booking_duration?: number | null;
2199
2192
  /**
2200
- * Org Flat Rate
2201
- * @description Flat rate if pricing_mode=org_flat_rate
2193
+ * Booking Duration Step
2194
+ * @description Duration step (minutes)
2202
2195
  */
2203
- org_flat_rate?: number | null;
2196
+ booking_duration_step?: number | null;
2204
2197
  /**
2205
- * Currency
2206
- * @description Currency code: USD, EUR, INR
2207
- * @default USD
2198
+ * Booking Lead Time Value
2199
+ * @description Lead time (hours)
2208
2200
  */
2209
- currency: string;
2201
+ booking_lead_time_value?: number | null;
2202
+ /** Booking Lead Time Handler */
2203
+ booking_lead_time_handler?: string | null;
2210
2204
  /**
2211
- * Min Rate
2212
- * @description Minimum rate for experts (rate constraint)
2205
+ * Buffer Time Before
2206
+ * @description Buffer before (minutes)
2213
2207
  */
2214
- min_rate?: number | null;
2208
+ buffer_time_before?: number | null;
2215
2209
  /**
2216
- * Max Rate
2217
- * @description Maximum rate for experts (rate constraint)
2210
+ * Buffer Time After
2211
+ * @description Buffer after (minutes)
2218
2212
  */
2219
- max_rate?: number | null;
2213
+ buffer_time_after?: number | null;
2214
+ /** Avoid Back To Back */
2215
+ avoid_back_to_back?: boolean | null;
2220
2216
  /**
2221
- * Site Level
2222
- * @description True = org products (SRV-at-org), False = expert products (SRV-at-exp)
2223
- * @default true
2217
+ * Availability Window Days
2218
+ * @description Days ahead to book
2224
2219
  */
2225
- site_level: boolean;
2220
+ availability_window_days?: number | null;
2221
+ /**
2222
+ * First Slot Rounding
2223
+ * @description Round start time
2224
+ */
2225
+ first_slot_rounding?: number | null;
2226
+ /**
2227
+ * Timeslot Step Size
2228
+ * @description Slot intervals
2229
+ */
2230
+ timeslot_step_size?: number | null;
2231
+ /** Timeslot Format */
2232
+ timeslot_format?: string | null;
2233
+ /** Slot Type */
2234
+ slot_type?: string | null;
2235
+ /** Allow Multiple Booking */
2236
+ allow_multiple_booking?: boolean | null;
2237
+ /** Allow Recurring Booking */
2238
+ allow_recurring_booking?: boolean | null;
2239
+ /** Max Recurring Sessions */
2240
+ max_recurring_sessions?: number | null;
2241
+ /** Selection Format */
2242
+ selection_format?: string | null;
2243
+ /** Display Divided Slots */
2244
+ display_divided_slots?: boolean | null;
2245
+ /** Allow Out Of Availability Request */
2246
+ allow_out_of_availability_request?: boolean | null;
2247
+ /** Custom Session Title Mode */
2248
+ custom_session_title_mode?: string | null;
2249
+ /** Custom Session Title */
2250
+ custom_session_title?: string | null;
2251
+ /** Trial Enabled */
2252
+ trial_enabled?: boolean | null;
2253
+ /** Trial Duration */
2254
+ trial_duration?: number | null;
2255
+ /** Trial Price */
2256
+ trial_price?: number | string | null;
2257
+ /** Trial Limit Per Consumer */
2258
+ trial_limit_per_consumer?: number | null;
2226
2259
  };
2227
2260
  /**
2228
- * OverrideCreateRequest
2229
- * @description Request model for creating an availability override.
2261
+ * FlowStepValidationRequest
2262
+ * @description Request model for validating a flow step.
2230
2263
  */
2231
- OverrideCreateRequest: {
2232
- /**
2233
- * Override Date
2234
- * @description Date in YYYY-MM-DD format
2235
- */
2236
- override_date: string;
2237
- /** @description 'unavailable' or 'custom' */
2238
- override_type: components["schemas"]["OverrideTypeEnum"];
2264
+ FlowStepValidationRequest: {
2239
2265
  /**
2240
- * Starts At Time
2241
- * @description Start time for custom type (HH:MM)
2266
+ * Step Data
2267
+ * @description Data for this step
2242
2268
  */
2243
- starts_at_time?: string | null;
2269
+ step_data: {
2270
+ [key: string]: unknown;
2271
+ };
2272
+ };
2273
+ InvalidParam: {
2274
+ /** @example items[0].quantity */
2275
+ field?: string;
2276
+ /** @example Input should be greater than or equal to 1 */
2277
+ error?: string;
2278
+ };
2279
+ /**
2280
+ * ChannelPreference
2281
+ * @description Channel-specific preference.
2282
+ */
2283
+ ChannelPreference: {
2284
+ channel: components["schemas"]["NotificationChannelEnum"];
2244
2285
  /**
2245
- * Ends At Time
2246
- * @description End time for custom type (HH:MM)
2286
+ * Enabled
2287
+ * @default true
2247
2288
  */
2248
- ends_at_time?: string | null;
2289
+ enabled: boolean;
2249
2290
  /**
2250
- * Timezone
2251
- * @description Expert's timezone
2252
- * @default UTC
2291
+ * Quiet Hours Start
2292
+ * @description Start of quiet hours (HH:MM)
2253
2293
  */
2254
- timezone: string;
2294
+ quiet_hours_start?: string | null;
2255
2295
  /**
2256
- * Reason
2257
- * @description Reason for override
2296
+ * Quiet Hours End
2297
+ * @description End of quiet hours (HH:MM)
2258
2298
  */
2259
- reason?: string | null;
2299
+ quiet_hours_end?: string | null;
2260
2300
  };
2261
2301
  /**
2262
- * BookingSourceTypeEnum
2263
- * @description Booking source type enum.
2264
- * @enum {string}
2265
- */
2266
- BookingSourceTypeEnum: "direct_booking" | "session_pack" | "subscription" | "credit_bucket";
2267
- /**
2268
- * ExpertMatchRequest
2269
- * @description Request model for expert matching.
2302
+ * ExpertInviteRequest
2303
+ * @description Request model for inviting an expert to a service.
2270
2304
  */
2271
- ExpertMatchRequest: {
2272
- /**
2273
- * Subject Id
2274
- * @description Required subject
2275
- */
2276
- subject_id?: string | null;
2277
- /**
2278
- * Topic Id
2279
- * @description Optional topic
2280
- */
2281
- topic_id?: string | null;
2305
+ ExpertInviteRequest: {
2282
2306
  /**
2283
- * Preferred Date
2284
- * @description Preferred date (YYYY-MM-DD)
2307
+ * Expert Id
2308
+ * @description User ID of expert to invite
2285
2309
  */
2286
- preferred_date?: string | null;
2310
+ expert_id: number;
2287
2311
  /**
2288
- * Preferred Time
2289
- * @description Preferred time (HH:MM)
2312
+ * Custom Rate
2313
+ * @description Custom rate
2290
2314
  */
2291
- preferred_time?: string | null;
2315
+ custom_rate?: number | string | null;
2292
2316
  /**
2293
- * Duration Minutes
2294
- * @description Session duration
2295
- * @default 30
2317
+ * Subjects
2318
+ * @description Subject codes/IDs
2296
2319
  */
2297
- duration_minutes: number;
2320
+ subjects?: string[] | null;
2298
2321
  /**
2299
- * @description Price preference
2300
- * @default any
2322
+ * Topics
2323
+ * @description Topic codes/IDs
2301
2324
  */
2302
- price_preference: components["schemas"]["PricePreference"];
2325
+ topics?: string[] | null;
2326
+ };
2327
+ /**
2328
+ * CancellationPolicyRequest
2329
+ * @description Request model for cancellation policy.
2330
+ */
2331
+ CancellationPolicyRequest: {
2303
2332
  /**
2304
- * Min Rating
2305
- * @description Minimum rating
2333
+ * Product Code
2334
+ * @description NULL for service-wide default
2306
2335
  */
2307
- min_rating?: number | null;
2336
+ product_code?: string | null;
2337
+ /** Consumer Cancel Allowed */
2338
+ consumer_cancel_allowed?: boolean | null;
2339
+ /** Consumer Cancel Window Hours */
2340
+ consumer_cancel_window_hours?: number | null;
2341
+ /** Consumer In Window Credit */
2342
+ consumer_in_window_credit?: boolean | null;
2343
+ /** Consumer Out Window Credit */
2344
+ consumer_out_window_credit?: boolean | null;
2345
+ /** Consumer Cancel Reason Required */
2346
+ consumer_cancel_reason_required?: boolean | null;
2347
+ /** Consumer Reschedule Allowed */
2348
+ consumer_reschedule_allowed?: boolean | null;
2349
+ /** Expert Cancel Allowed */
2350
+ expert_cancel_allowed?: boolean | null;
2351
+ /** Expert Cancel Window Hours */
2352
+ expert_cancel_window_hours?: number | null;
2353
+ /** Expert In Window Credit */
2354
+ expert_in_window_credit?: boolean | null;
2355
+ /** Expert Out Window Credit */
2356
+ expert_out_window_credit?: boolean | null;
2357
+ /** Expert Reschedule Allowed */
2358
+ expert_reschedule_allowed?: boolean | null;
2359
+ /** Credit Expiry Hours */
2360
+ credit_expiry_hours?: number | null;
2361
+ /** Credit Type */
2362
+ credit_type?: string | null;
2363
+ /** Credit Transferable */
2364
+ credit_transferable?: boolean | null;
2308
2365
  };
2309
2366
  /**
2310
- * PricePreference
2311
- * @description Price preference for expert matching.
2367
+ * LocationTypeEnum
2368
+ * @description Location type enum.
2312
2369
  * @enum {string}
2313
2370
  */
2314
- PricePreference: "low" | "mid" | "high" | "any";
2371
+ LocationTypeEnum: "online" | "in_person";
2372
+ /**
2373
+ * EventPreference
2374
+ * @description Preference for a specific event type.
2375
+ */
2376
+ EventPreference: {
2377
+ event_type: components["schemas"]["EventTypeEnum"];
2378
+ /**
2379
+ * Enabled
2380
+ * @default true
2381
+ */
2382
+ enabled: boolean;
2383
+ /** Channels */
2384
+ channels?: components["schemas"]["NotificationChannelEnum"][];
2385
+ };
2386
+ Extensions: {
2387
+ /** @example GENERIC_ERROR */
2388
+ message_code?: string;
2389
+ /** @example [] */
2390
+ invalid_params?: components["schemas"]["InvalidParam"][];
2391
+ extra_data?: Record<string, never> | null;
2392
+ /** @example Detailed debug information */
2393
+ debug?: string | null;
2394
+ };
2315
2395
  /**
2316
2396
  * ServiceUpdateRequest
2317
2397
  * @description Request model for updating a service.
@@ -2348,459 +2428,362 @@ export interface components {
2348
2428
  max_rate?: number | string | null;
2349
2429
  status?: components["schemas"]["ServiceStatus"] | null;
2350
2430
  };
2351
- Extensions: {
2352
- /** @example GENERIC_ERROR */
2353
- message_code?: string;
2354
- /** @example [] */
2355
- invalid_params?: components["schemas"]["InvalidParam"][];
2356
- extra_data?: Record<string, never> | null;
2357
- /** @example Detailed debug information */
2358
- debug?: string | null;
2359
- };
2360
- /**
2361
- * ServiceProductsUpdateRequest
2362
- * @description Request model for bulk updating service products.
2363
- */
2364
- ServiceProductsUpdateRequest: {
2365
- /** Products */
2366
- products: components["schemas"]["ServiceProductRequest"][];
2367
- };
2368
2431
  /**
2369
- * VariantPrice
2370
- * @description Variant-specific pricing (maps to product_pricings_tbl with variant_id set)
2432
+ * ServiceSection
2433
+ * @description Service-specific fields (maps to service_tbl)
2371
2434
  */
2372
- VariantPrice: {
2435
+ ServiceSection: {
2373
2436
  /**
2374
- * Variant Index
2375
- * @description Index in variants array (0-based)
2437
+ * Service Code
2438
+ * @description Unique code within org: online-tutoring, makeup-services
2376
2439
  */
2377
- variant_index: number;
2440
+ service_code: string;
2378
2441
  /**
2379
- * Price Type
2380
- * @description free, one_time, subscription, monthly_plan
2442
+ * Service Type
2443
+ * @description org_service (SRV-at-org), expert_service (SRV-at-exp)
2381
2444
  */
2382
- price_type: string;
2445
+ service_type: string;
2383
2446
  /**
2384
- * Currency
2385
- * @description Currency code
2447
+ * Enrollment Mode
2448
+ * @description open, closed, invite_only, auto_approve
2449
+ * @default open
2386
2450
  */
2387
- currency: string;
2451
+ enrollment_mode: string;
2388
2452
  /**
2389
- * Amount
2390
- * @description Price amount
2453
+ * Enrollment Requires Approval
2454
+ * @description Admin must approve expert applications
2455
+ * @default true
2391
2456
  */
2392
- amount: number;
2457
+ enrollment_requires_approval: boolean;
2393
2458
  /**
2394
- * Compare At Amount
2395
- * @description Original/strike-through price
2459
+ * Max Experts
2460
+ * @description Maximum experts allowed (NULL = unlimited)
2396
2461
  */
2397
- compare_at_amount?: number | null;
2462
+ max_experts?: number | null;
2398
2463
  /**
2399
- * Interval
2400
- * @description day, week, month, year
2464
+ * Pricing Mode
2465
+ * @description org_flat_rate, expert_defined
2466
+ * @default expert_defined
2401
2467
  */
2402
- interval?: string | null;
2468
+ pricing_mode: string;
2403
2469
  /**
2404
- * Interval Count
2405
- * @description Number of intervals
2470
+ * Org Flat Rate
2471
+ * @description Flat rate if pricing_mode=org_flat_rate
2406
2472
  */
2407
- interval_count?: number | null;
2473
+ org_flat_rate?: number | null;
2408
2474
  /**
2409
- * Trial Period Days
2410
- * @description Free trial days
2475
+ * Currency
2476
+ * @description Currency code: USD, EUR, INR
2477
+ * @default USD
2411
2478
  */
2412
- trial_period_days?: number | null;
2479
+ currency: string;
2413
2480
  /**
2414
- * Initial Amount
2415
- * @description First payment amount
2481
+ * Min Rate
2482
+ * @description Minimum rate for experts (rate constraint)
2416
2483
  */
2417
- initial_amount?: number | null;
2484
+ min_rate?: number | null;
2418
2485
  /**
2419
- * Gateway
2420
- * @description stripe, razorpay, paypal, etc.
2486
+ * Max Rate
2487
+ * @description Maximum rate for experts (rate constraint)
2421
2488
  */
2422
- gateway?: string | null;
2489
+ max_rate?: number | null;
2423
2490
  /**
2424
- * Requires Payment Method Upfront
2425
- * @description Require payment method before trial
2491
+ * Site Level
2492
+ * @description True = org products (SRV-at-org), False = expert products (SRV-at-exp)
2426
2493
  * @default true
2427
2494
  */
2428
- requires_payment_method_upfront: boolean;
2495
+ site_level: boolean;
2429
2496
  };
2430
2497
  /**
2431
- * ServiceSettingsSection
2432
- * @description Service booking configuration (maps to service_settings_tbl)
2498
+ * WeeklyTemplateRequest
2499
+ * @description Request model for updating weekly availability template.
2433
2500
  */
2434
- ServiceSettingsSection: {
2501
+ WeeklyTemplateRequest: {
2435
2502
  /**
2436
- * Min Booking Duration
2437
- * @description Minimum booking duration in minutes
2438
- * @default 20
2503
+ * Timezone
2504
+ * @description Expert's timezone (IANA format)
2505
+ * @default UTC
2439
2506
  */
2440
- min_booking_duration: number;
2507
+ timezone: string;
2508
+ /** Sunday */
2509
+ sunday?: components["schemas"]["TimeSlotRequest"][] | null;
2510
+ /** Monday */
2511
+ monday?: components["schemas"]["TimeSlotRequest"][] | null;
2512
+ /** Tuesday */
2513
+ tuesday?: components["schemas"]["TimeSlotRequest"][] | null;
2514
+ /** Wednesday */
2515
+ wednesday?: components["schemas"]["TimeSlotRequest"][] | null;
2516
+ /** Thursday */
2517
+ thursday?: components["schemas"]["TimeSlotRequest"][] | null;
2518
+ /** Friday */
2519
+ friday?: components["schemas"]["TimeSlotRequest"][] | null;
2520
+ /** Saturday */
2521
+ saturday?: components["schemas"]["TimeSlotRequest"][] | null;
2522
+ };
2523
+ /**
2524
+ * ExpertMatchRequest
2525
+ * @description Request model for expert matching.
2526
+ */
2527
+ ExpertMatchRequest: {
2441
2528
  /**
2442
- * Max Booking Duration
2443
- * @description Maximum booking duration in minutes
2444
- * @default 60
2529
+ * Subject Id
2530
+ * @description Required subject
2445
2531
  */
2446
- max_booking_duration: number;
2532
+ subject_id?: string | null;
2447
2533
  /**
2448
- * Booking Duration Step
2449
- * @description Duration increment in minutes
2450
- * @default 15
2451
- */
2452
- booking_duration_step: number;
2453
- /**
2454
- * Booking Lead Time Value
2455
- * @description Hours before session required
2456
- * @default 2
2534
+ * Topic Id
2535
+ * @description Optional topic
2457
2536
  */
2458
- booking_lead_time_value: number;
2537
+ topic_id?: string | null;
2459
2538
  /**
2460
- * Booking Lead Time Handler
2461
- * @description Who controls lead time: org, expert
2462
- * @default org
2539
+ * Preferred Date
2540
+ * @description Preferred date (YYYY-MM-DD)
2463
2541
  */
2464
- booking_lead_time_handler: string;
2542
+ preferred_date?: string | null;
2465
2543
  /**
2466
- * Buffer Time Before
2467
- * @description Minutes gap before session
2468
- * @default 0
2544
+ * Preferred Time
2545
+ * @description Preferred time (HH:MM)
2469
2546
  */
2470
- buffer_time_before: number;
2547
+ preferred_time?: string | null;
2471
2548
  /**
2472
- * Buffer Time After
2473
- * @description Minutes gap after session
2474
- * @default 0
2549
+ * Duration Minutes
2550
+ * @description Session duration
2551
+ * @default 30
2475
2552
  */
2476
- buffer_time_after: number;
2553
+ duration_minutes: number;
2477
2554
  /**
2478
- * Avoid Back To Back
2479
- * @description Enforce buffer between sessions
2480
- * @default false
2555
+ * @description Price preference
2556
+ * @default any
2481
2557
  */
2482
- avoid_back_to_back: boolean;
2558
+ price_preference: components["schemas"]["PricePreference"];
2483
2559
  /**
2484
- * Availability Window Days
2485
- * @description Max days ahead consumer can book
2486
- * @default 90
2560
+ * Min Rating
2561
+ * @description Minimum rating
2487
2562
  */
2488
- availability_window_days: number;
2563
+ min_rating?: number | null;
2564
+ };
2565
+ /**
2566
+ * BookingCreateRequest
2567
+ * @description Request model for creating a booking.
2568
+ */
2569
+ BookingCreateRequest: {
2489
2570
  /**
2490
- * First Slot Rounding
2491
- * @description Round first available slot to nearest X minutes
2492
- * @default 15
2571
+ * Service Id
2572
+ * @description External service ID
2493
2573
  */
2494
- first_slot_rounding: number;
2574
+ service_id: string;
2495
2575
  /**
2496
- * Allow Recurring Bookings
2497
- * @description Allow recurring bookings
2498
- * @default false
2576
+ * Expert Id
2577
+ * @description Expert user ID
2499
2578
  */
2500
- allow_recurring_bookings: boolean;
2579
+ expert_id: number;
2501
2580
  /**
2502
- * Max Recurring Sessions
2503
- * @description Max sessions in recurring series
2581
+ * Starts At
2582
+ * @description Start datetime in ISO format (UTC)
2504
2583
  */
2505
- max_recurring_sessions?: number | null;
2584
+ starts_at: string;
2506
2585
  /**
2507
- * Enable Trial Sessions
2508
- * @description Enable trial/sample sessions
2509
- * @default false
2586
+ * Duration Minutes
2587
+ * @description Session duration in minutes
2510
2588
  */
2511
- enable_trial_sessions: boolean;
2589
+ duration_minutes: number;
2512
2590
  /**
2513
- * Trial Session Duration
2514
- * @description Trial session duration in minutes
2591
+ * Timezone
2592
+ * @description Consumer's timezone
2593
+ * @default UTC
2515
2594
  */
2516
- trial_session_duration?: number | null;
2595
+ timezone: string;
2517
2596
  /**
2518
- * Trial Session Price
2519
- * @description Trial session price (0 for free)
2597
+ * Title
2598
+ * @description Session title
2520
2599
  */
2521
- trial_session_price?: number | null;
2522
- };
2523
- /**
2524
- * EventPreference
2525
- * @description Preference for a specific event type.
2526
- */
2527
- EventPreference: {
2528
- event_type: components["schemas"]["EventTypeEnum"];
2600
+ title?: string | null;
2529
2601
  /**
2530
- * Enabled
2531
- * @default true
2602
+ * Subject Id
2603
+ * @description Subject ID
2532
2604
  */
2533
- enabled: boolean;
2534
- /** Channels */
2535
- channels?: components["schemas"]["NotificationChannelEnum"][];
2536
- };
2537
- /**
2538
- * PricingSection
2539
- * @description Pricing configuration (optional - can have product price, variant prices, or both)
2540
- */
2541
- PricingSection: {
2542
- /** @description Base product price (no variant) */
2543
- product_price?: components["schemas"]["ProductPrice"] | null;
2605
+ subject_id?: number | null;
2544
2606
  /**
2545
- * Variant Prices
2546
- * @description Variant-specific prices
2607
+ * Topic Id
2608
+ * @description Topic ID
2547
2609
  */
2548
- variant_prices?: components["schemas"]["VariantPrice"][] | null;
2549
- };
2550
- /**
2551
- * VariantItem
2552
- * @description Product variant (maps to product_variants_tbl)
2553
- */
2554
- VariantItem: {
2610
+ topic_id?: number | null;
2555
2611
  /**
2556
- * Name
2557
- * @description Variant display name
2612
+ * Notes
2613
+ * @description Consumer notes
2558
2614
  */
2559
- name: string;
2615
+ notes?: string | null;
2560
2616
  /**
2561
- * Sku
2562
- * @description Stock Keeping Unit
2617
+ * @description Location type
2618
+ * @default online
2563
2619
  */
2564
- sku?: string | null;
2620
+ location_type: components["schemas"]["LocationTypeEnum"];
2565
2621
  /**
2566
- * Attributes
2567
- * @description Custom attributes
2622
+ * Location Details
2623
+ * @description Location details (address for in-person)
2568
2624
  */
2569
- attributes?: {
2625
+ location_details?: {
2570
2626
  [key: string]: unknown;
2571
2627
  } | null;
2572
2628
  /**
2573
- * Is Default
2574
- * @description Set as default variant
2575
- * @default false
2576
- */
2577
- is_default: boolean;
2578
- /**
2579
- * Track Inventory
2580
- * @description Track stock for this variant
2581
- * @default false
2629
+ * @description Booking source type
2630
+ * @default direct_booking
2582
2631
  */
2583
- track_inventory: boolean;
2632
+ booking_source_type: components["schemas"]["BookingSourceTypeEnum"];
2584
2633
  /**
2585
- * Stock Quantity
2586
- * @description Initial stock
2634
+ * Booking Source Id
2635
+ * @description Source ID (pack_id, subscription_id)
2587
2636
  */
2588
- stock_quantity?: number | null;
2637
+ booking_source_id?: number | null;
2589
2638
  /**
2590
- * Allow Backorder
2591
- * @description Allow orders when out of stock
2639
+ * Is Trial
2640
+ * @description Is this a trial session?
2592
2641
  * @default false
2593
2642
  */
2594
- allow_backorder: boolean;
2595
- /**
2596
- * Weight
2597
- * @description Weight in kg
2598
- */
2599
- weight?: number | null;
2643
+ is_trial: boolean;
2644
+ };
2645
+ /**
2646
+ * PricePreference
2647
+ * @description Price preference for expert matching.
2648
+ * @enum {string}
2649
+ */
2650
+ PricePreference: "low" | "mid" | "high" | "any";
2651
+ /**
2652
+ * IdentitySection
2653
+ * @description Localized product content (maps to product_identity_tbl)
2654
+ */
2655
+ IdentitySection: {
2600
2656
  /**
2601
- * Length
2602
- * @description Length in cm
2657
+ * Locale
2658
+ * @description Locale: en-US, es-PR, fr-FR, pt-BR, etc.
2659
+ * @default en-US
2603
2660
  */
2604
- length?: number | null;
2661
+ locale: string;
2605
2662
  /**
2606
- * Width
2607
- * @description Width in cm
2663
+ * Title
2664
+ * @description Product title
2608
2665
  */
2609
- width?: number | null;
2666
+ title: string;
2610
2667
  /**
2611
- * Height
2612
- * @description Height in cm
2668
+ * Subtitle
2669
+ * @description Product subtitle
2613
2670
  */
2614
- height?: number | null;
2671
+ subtitle?: string | null;
2615
2672
  /**
2616
- * Display Order
2617
- * @description Display order
2618
- * @default 100
2673
+ * Description
2674
+ * @description Full product description
2619
2675
  */
2620
- display_order: number;
2676
+ description?: string | null;
2621
2677
  /**
2622
- * Metadata
2623
- * @description Flexible metadata
2678
+ * Short Description
2679
+ * @description Short description for listings/previews
2624
2680
  */
2625
- metadata?: {
2626
- [key: string]: unknown;
2627
- } | null;
2681
+ short_description?: string | null;
2628
2682
  };
2629
2683
  /**
2630
- * ExpertApplyRequest
2631
- * @description Request model for expert applying to a service.
2684
+ * ServiceType
2685
+ * @description Service type enum.
2686
+ * @enum {string}
2632
2687
  */
2633
- ExpertApplyRequest: {
2688
+ ServiceType: "org_service" | "expert_service";
2689
+ /**
2690
+ * OverrideCreateRequest
2691
+ * @description Request model for creating an availability override.
2692
+ */
2693
+ OverrideCreateRequest: {
2634
2694
  /**
2635
- * Custom Rate
2636
- * @description Custom rate if allowed
2695
+ * Override Date
2696
+ * @description Date in YYYY-MM-DD format
2637
2697
  */
2638
- custom_rate?: number | string | null;
2698
+ override_date: string;
2699
+ /** @description 'unavailable' or 'custom' */
2700
+ override_type: components["schemas"]["OverrideTypeEnum"];
2639
2701
  /**
2640
- * Subjects
2641
- * @description Subject codes/IDs
2702
+ * Starts At Time
2703
+ * @description Start time for custom type (HH:MM)
2642
2704
  */
2643
- subjects?: string[] | null;
2705
+ starts_at_time?: string | null;
2644
2706
  /**
2645
- * Topics
2646
- * @description Topic codes/IDs
2707
+ * Ends At Time
2708
+ * @description End time for custom type (HH:MM)
2647
2709
  */
2648
- topics?: string[] | null;
2649
- };
2650
- /**
2651
- * FlowStepValidationRequest
2652
- * @description Request model for validating a flow step.
2653
- */
2654
- FlowStepValidationRequest: {
2655
- /**
2656
- * Step Data
2657
- * @description Data for this step
2658
- */
2659
- step_data: {
2660
- [key: string]: unknown;
2661
- };
2662
- };
2663
- /**
2664
- * SlotCheckRequest
2665
- * @description Request model for checking a specific slot.
2666
- */
2667
- SlotCheckRequest: {
2668
- /**
2669
- * Expert Id
2670
- * @description Expert user ID
2671
- */
2672
- expert_id: number;
2710
+ ends_at_time?: string | null;
2673
2711
  /**
2674
- * Starts At
2675
- * @description Start datetime in ISO format (UTC)
2712
+ * Timezone
2713
+ * @description Expert's timezone
2714
+ * @default UTC
2676
2715
  */
2677
- starts_at: string;
2716
+ timezone: string;
2678
2717
  /**
2679
- * Duration Minutes
2680
- * @description Session duration in minutes
2718
+ * Reason
2719
+ * @description Reason for override
2681
2720
  */
2682
- duration_minutes: number;
2683
- };
2684
- /**
2685
- * @example {
2686
- * "status": "success",
2687
- * "message": "Operation successful",
2688
- * "message_code": "api_suc_20001",
2689
- * "data": {},
2690
- * "metadata": {
2691
- * "timestamp": "2026-03-26T10:00:00.000Z",
2692
- * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
2693
- * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
2694
- * "version": "v1",
2695
- * "executionTime": 42,
2696
- * "language": "en-US"
2697
- * }
2698
- * }
2699
- */
2700
- StandardResponse: {
2701
- /** @example success */
2702
- status?: string;
2703
- data?: Record<string, never> | null;
2704
- /** @example Operation successful */
2705
- message?: string | null;
2706
- /** @example api_suc_20001 */
2707
- message_code?: string | null;
2708
- metadata?: Record<string, never> | null;
2709
- error?: components["schemas"]["ErrorResponse"];
2721
+ reason?: string | null;
2710
2722
  };
2711
2723
  /**
2712
- * NotificationPreferencesRequest
2713
- * @description Request model for updating notification preferences.
2724
+ * BookingCompleteRequest
2725
+ * @description Request model for completing a booking.
2714
2726
  */
2715
- NotificationPreferencesRequest: {
2727
+ BookingCompleteRequest: {
2716
2728
  /**
2717
- * Timezone
2718
- * @description User timezone (IANA format)
2729
+ * Actual Duration Minutes
2730
+ * @description Actual session duration
2719
2731
  */
2720
- timezone?: string | null;
2732
+ actual_duration_minutes?: number | null;
2721
2733
  /**
2722
- * Language
2723
- * @description Preferred language code
2734
+ * Consumer Attended
2735
+ * @description Consumer attended
2724
2736
  */
2725
- language?: string | null;
2737
+ consumer_attended?: boolean | null;
2726
2738
  /**
2727
- * Global Enabled
2728
- * @description Master toggle for all notifications
2739
+ * Expert Attended
2740
+ * @description Expert attended
2729
2741
  */
2730
- global_enabled?: boolean | null;
2731
- /** Channel Preferences */
2732
- channel_preferences?: components["schemas"]["ChannelPreference"][] | null;
2733
- /** Event Preferences */
2734
- event_preferences?: components["schemas"]["EventPreference"][] | null;
2742
+ expert_attended?: boolean | null;
2735
2743
  };
2736
- /**
2737
- * ServiceType
2738
- * @description Service type enum.
2739
- * @enum {string}
2740
- */
2741
- ServiceType: "org_service" | "expert_service";
2742
2744
  /**
2743
2745
  * ServiceStatus
2744
2746
  * @description Service status enum.
2745
2747
  * @enum {string}
2746
2748
  */
2747
2749
  ServiceStatus: "draft" | "active" | "paused" | "archived";
2748
- InvalidParam: {
2749
- /** @example items[0].quantity */
2750
- field?: string;
2751
- /** @example Input should be greater than or equal to 1 */
2752
- error?: string;
2753
- };
2754
2750
  /**
2755
- * WebhookCreateRequest
2756
- * @description Request model for creating a webhook.
2751
+ * NotificationChannelEnum
2752
+ * @description Notification channel enum.
2753
+ * @enum {string}
2757
2754
  */
2758
- WebhookCreateRequest: {
2759
- /**
2760
- * Url
2761
- * @description Webhook endpoint URL
2762
- */
2763
- url: string;
2764
- /**
2765
- * Events
2766
- * @description Events to subscribe to
2767
- */
2768
- events: components["schemas"]["EventTypeEnum"][];
2769
- /**
2770
- * Secret
2771
- * @description Secret for webhook signature
2772
- */
2773
- secret?: string | null;
2774
- /**
2775
- * Is Active
2776
- * @description Whether webhook is active
2777
- * @default true
2778
- */
2779
- is_active: boolean;
2780
- /** Description */
2781
- description?: string | null;
2782
- };
2755
+ NotificationChannelEnum: "email" | "sms" | "push" | "inapp" | "webhook";
2783
2756
  /**
2784
- * ExpertFeeType
2785
- * @description Expert fee type enum.
2757
+ * EnrollmentMode
2758
+ * @description Expert enrollment mode enum.
2786
2759
  * @enum {string}
2787
2760
  */
2788
- ExpertFeeType: "free" | "one_time" | "subscription";
2761
+ EnrollmentMode: "open" | "closed" | "invite_only" | "auto_approve";
2789
2762
  /**
2790
- * ExpertInviteRequest
2791
- * @description Request model for inviting an expert to a service.
2763
+ * ExpertSettingsUpdateRequest
2764
+ * @description Request model for updating expert settings.
2792
2765
  */
2793
- ExpertInviteRequest: {
2794
- /**
2795
- * Expert Id
2796
- * @description User ID of expert to invite
2797
- */
2798
- expert_id: number;
2766
+ ExpertSettingsUpdateRequest: {
2799
2767
  /**
2800
2768
  * Custom Rate
2801
2769
  * @description Custom rate
2802
2770
  */
2803
2771
  custom_rate?: number | string | null;
2772
+ /**
2773
+ * Accepts New Bookings
2774
+ * @description Accepting new bookings
2775
+ */
2776
+ accepts_new_bookings?: boolean | null;
2777
+ /**
2778
+ * Max Daily Bookings
2779
+ * @description Max daily bookings
2780
+ */
2781
+ max_daily_bookings?: number | null;
2782
+ /**
2783
+ * Auto Confirm Bookings
2784
+ * @description Auto-confirm bookings
2785
+ */
2786
+ auto_confirm_bookings?: boolean | null;
2804
2787
  /**
2805
2788
  * Subjects
2806
2789
  * @description Subject codes/IDs
@@ -2812,6 +2795,39 @@ export interface components {
2812
2795
  */
2813
2796
  topics?: string[] | null;
2814
2797
  };
2798
+ /**
2799
+ * BookingSourceTypeEnum
2800
+ * @description Booking source type enum.
2801
+ * @enum {string}
2802
+ */
2803
+ BookingSourceTypeEnum: "direct_booking" | "session_pack" | "subscription" | "credit_bucket";
2804
+ /**
2805
+ * @example {
2806
+ * "status": "success",
2807
+ * "message": "Operation successful",
2808
+ * "message_code": "api_suc_20001",
2809
+ * "data": {},
2810
+ * "metadata": {
2811
+ * "timestamp": "2026-03-26T10:00:00.000Z",
2812
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
2813
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
2814
+ * "version": "v1",
2815
+ * "executionTime": 42,
2816
+ * "language": "en-US"
2817
+ * }
2818
+ * }
2819
+ */
2820
+ StandardResponse: {
2821
+ /** @example success */
2822
+ status?: string;
2823
+ data?: Record<string, never> | null;
2824
+ /** @example Operation successful */
2825
+ message?: string | null;
2826
+ /** @example api_suc_20001 */
2827
+ message_code?: string | null;
2828
+ metadata?: Record<string, never> | null;
2829
+ error?: components["schemas"]["ErrorResponse"];
2830
+ };
2815
2831
  /**
2816
2832
  * MediaItem
2817
2833
  * @description Single media file item
@@ -2884,225 +2900,123 @@ export interface components {
2884
2900
  is_primary: boolean;
2885
2901
  };
2886
2902
  /**
2887
- * ServiceProductRequest
2888
- * @description Request model for a single product configuration.
2903
+ * OverrideTypeEnum
2904
+ * @description Override type enum.
2905
+ * @enum {string}
2889
2906
  */
2890
- ServiceProductRequest: {
2907
+ OverrideTypeEnum: "unavailable" | "custom";
2908
+ /**
2909
+ * SendNotificationRequest
2910
+ * @description Request model for sending a manual notification.
2911
+ */
2912
+ SendNotificationRequest: {
2913
+ /** @description Event type to trigger */
2914
+ event_type: components["schemas"]["EventTypeEnum"];
2891
2915
  /**
2892
- * Product Code
2893
- * @description Product code
2916
+ * Recipient Type
2917
+ * @description Recipient type: consumer, expert, or admin
2894
2918
  */
2895
- product_code: string;
2919
+ recipient_type: string;
2896
2920
  /**
2897
- * Is Enabled
2898
- * @description Enable status
2899
- * @default true
2921
+ * Recipient Id
2922
+ * @description User ID of recipient
2900
2923
  */
2901
- is_enabled: boolean;
2924
+ recipient_id: number;
2902
2925
  /**
2903
- * Display Order
2904
- * @default 100
2926
+ * Booking Id
2927
+ * @description Related booking ID
2905
2928
  */
2906
- display_order: number;
2929
+ booking_id?: string | null;
2907
2930
  /**
2908
- * Product Id
2909
- * @description Link to product_tbl
2931
+ * Channels
2932
+ * @description Override channels (uses defaults if not provided)
2910
2933
  */
2911
- product_id?: number | null;
2912
- /** Custom Settings */
2913
- custom_settings?: {
2934
+ channels?: components["schemas"]["NotificationChannelEnum"][] | null;
2935
+ /**
2936
+ * Extra Data
2937
+ * @description Additional data for templates
2938
+ */
2939
+ extra_data?: {
2914
2940
  [key: string]: unknown;
2915
2941
  } | null;
2916
2942
  };
2917
2943
  /**
2918
- * ServiceProductCreateRequest
2919
- * @description Service creation request - inherits common fields, adds service-specific sections
2920
- * @example {
2921
- * "identity": {
2922
- * "locale": "en-US",
2923
- * "title": "Online Tutoring Service"
2924
- * },
2925
- * "pricing": {
2926
- * "product_price": {
2927
- * "amount": 25,
2928
- * "currency": "USD",
2929
- * "price_type": "one_time"
2930
- * }
2931
- * },
2932
- * "product": {
2933
- * "is_digital": true,
2934
- * "status": "draft",
2935
- * "visibility": "public"
2936
- * },
2937
- * "service": {
2938
- * "enrollment_mode": "open",
2939
- * "max_rate": 100,
2940
- * "min_rate": 15,
2941
- * "pricing_mode": "expert_defined",
2942
- * "service_code": "online-tutoring",
2943
- * "service_type": "expert_service"
2944
- * },
2945
- * "service_settings": {
2946
- * "availability_window_days": 60,
2947
- * "booking_duration_step": 30,
2948
- * "max_booking_duration": 120,
2949
- * "min_booking_duration": 30
2950
- * }
2951
- * }
2944
+ * MediaSection
2945
+ * @description Product media files - direct media data
2952
2946
  */
2953
- ServiceProductCreateRequest: {
2954
- /** @description Base product configuration */
2955
- product: components["schemas"]["ProductSection"];
2956
- /** @description Localized content (title, description) */
2957
- identity: components["schemas"]["IdentitySection"];
2958
- /** @description Pre-uploaded image IDs */
2959
- media?: components["schemas"]["MediaSection"] | null;
2960
- /**
2961
- * Tags
2962
- * @description Tag IDs to associate with product
2963
- */
2964
- tags?: number[] | null;
2947
+ MediaSection: {
2965
2948
  /**
2966
- * Variants
2967
- * @description Product variants (optional)
2949
+ * Media Items
2950
+ * @description List of media files to attach to product
2968
2951
  */
2969
- variants?: components["schemas"]["VariantItem"][] | null;
2970
- /** @description Pricing for product and variants */
2971
- pricing?: components["schemas"]["PricingSection"] | null;
2972
- /** @description Service-specific configuration */
2973
- service: components["schemas"]["ServiceSection"];
2974
- /** @description Service booking settings */
2975
- service_settings: components["schemas"]["ServiceSettingsSection"];
2952
+ media_items?: components["schemas"]["MediaItem"][] | null;
2976
2953
  };
2977
2954
  /**
2978
- * SendNotificationRequest
2979
- * @description Request model for sending a manual notification.
2955
+ * BookingCancelRequest
2956
+ * @description Request model for cancelling a booking.
2980
2957
  */
2981
- SendNotificationRequest: {
2982
- /** @description Event type to trigger */
2983
- event_type: components["schemas"]["EventTypeEnum"];
2984
- /**
2985
- * Recipient Type
2986
- * @description Recipient type: consumer, expert, or admin
2987
- */
2988
- recipient_type: string;
2989
- /**
2990
- * Recipient Id
2991
- * @description User ID of recipient
2992
- */
2993
- recipient_id: number;
2994
- /**
2995
- * Booking Id
2996
- * @description Related booking ID
2997
- */
2998
- booking_id?: string | null;
2999
- /**
3000
- * Channels
3001
- * @description Override channels (uses defaults if not provided)
3002
- */
3003
- channels?: components["schemas"]["NotificationChannelEnum"][] | null;
2958
+ BookingCancelRequest: {
3004
2959
  /**
3005
- * Extra Data
3006
- * @description Additional data for templates
2960
+ * Cancel Reason Id
2961
+ * @description Reason ID from msd_reasons_tbl
3007
2962
  */
3008
- extra_data?: {
3009
- [key: string]: unknown;
3010
- } | null;
3011
- };
3012
- /** Body_updateServiceApplication */
3013
- Body_updateServiceApplication: {
2963
+ cancel_reason_id?: number | null;
3014
2964
  /**
3015
- * Action
3016
- * @description approve or reject
2965
+ * Cancel Reason Text
2966
+ * @description Additional cancellation reason
3017
2967
  */
3018
- action: string;
2968
+ cancel_reason_text?: string | null;
3019
2969
  };
3020
2970
  /**
3021
- * BookingCreateRequest
3022
- * @description Request model for creating a booking.
2971
+ * ExpertApplyRequest
2972
+ * @description Request model for expert applying to a service.
3023
2973
  */
3024
- BookingCreateRequest: {
3025
- /**
3026
- * Service Id
3027
- * @description External service ID
3028
- */
3029
- service_id: string;
3030
- /**
3031
- * Expert Id
3032
- * @description Expert user ID
3033
- */
3034
- expert_id: number;
3035
- /**
3036
- * Starts At
3037
- * @description Start datetime in ISO format (UTC)
3038
- */
3039
- starts_at: string;
3040
- /**
3041
- * Duration Minutes
3042
- * @description Session duration in minutes
3043
- */
3044
- duration_minutes: number;
3045
- /**
3046
- * Timezone
3047
- * @description Consumer's timezone
3048
- * @default UTC
3049
- */
3050
- timezone: string;
3051
- /**
3052
- * Title
3053
- * @description Session title
3054
- */
3055
- title?: string | null;
3056
- /**
3057
- * Subject Id
3058
- * @description Subject ID
3059
- */
3060
- subject_id?: number | null;
2974
+ ExpertApplyRequest: {
3061
2975
  /**
3062
- * Topic Id
3063
- * @description Topic ID
2976
+ * Custom Rate
2977
+ * @description Custom rate if allowed
3064
2978
  */
3065
- topic_id?: number | null;
2979
+ custom_rate?: number | string | null;
3066
2980
  /**
3067
- * Notes
3068
- * @description Consumer notes
2981
+ * Subjects
2982
+ * @description Subject codes/IDs
3069
2983
  */
3070
- notes?: string | null;
2984
+ subjects?: string[] | null;
3071
2985
  /**
3072
- * @description Location type
3073
- * @default online
2986
+ * Topics
2987
+ * @description Topic codes/IDs
3074
2988
  */
3075
- location_type: components["schemas"]["LocationTypeEnum"];
2989
+ topics?: string[] | null;
2990
+ };
2991
+ /**
2992
+ * WebhookCreateRequest
2993
+ * @description Request model for creating a webhook.
2994
+ */
2995
+ WebhookCreateRequest: {
3076
2996
  /**
3077
- * Location Details
3078
- * @description Location details (address for in-person)
2997
+ * Url
2998
+ * @description Webhook endpoint URL
3079
2999
  */
3080
- location_details?: {
3081
- [key: string]: unknown;
3082
- } | null;
3000
+ url: string;
3083
3001
  /**
3084
- * @description Booking source type
3085
- * @default direct_booking
3002
+ * Events
3003
+ * @description Events to subscribe to
3086
3004
  */
3087
- booking_source_type: components["schemas"]["BookingSourceTypeEnum"];
3005
+ events: components["schemas"]["EventTypeEnum"][];
3088
3006
  /**
3089
- * Booking Source Id
3090
- * @description Source ID (pack_id, subscription_id)
3007
+ * Secret
3008
+ * @description Secret for webhook signature
3091
3009
  */
3092
- booking_source_id?: number | null;
3010
+ secret?: string | null;
3093
3011
  /**
3094
- * Is Trial
3095
- * @description Is this a trial session?
3096
- * @default false
3012
+ * Is Active
3013
+ * @description Whether webhook is active
3014
+ * @default true
3097
3015
  */
3098
- is_trial: boolean;
3016
+ is_active: boolean;
3017
+ /** Description */
3018
+ description?: string | null;
3099
3019
  };
3100
- /**
3101
- * PricingMode
3102
- * @description Service pricing mode enum.
3103
- * @enum {string}
3104
- */
3105
- PricingMode: "org_flat_rate" | "expert_defined";
3106
3020
  /**
3107
3021
  * ProductPrice
3108
3022
  * @description Base product pricing (maps to product_pricings_tbl with variant_id=NULL)
@@ -3161,280 +3075,97 @@ export interface components {
3161
3075
  requires_payment_method_upfront: boolean;
3162
3076
  };
3163
3077
  /**
3164
- * ServiceCreateRequest
3165
- * @description Request model for creating a service.
3078
+ * ServiceSettingsSection
3079
+ * @description Service booking configuration (maps to service_settings_tbl)
3166
3080
  */
3167
- ServiceCreateRequest: {
3081
+ ServiceSettingsSection: {
3168
3082
  /**
3169
- * Service Code
3170
- * @description Unique code within org: online-tutoring, makeup-services
3083
+ * Min Booking Duration
3084
+ * @description Minimum booking duration in minutes
3085
+ * @default 20
3171
3086
  */
3172
- service_code: string;
3173
- /** @description org_service (SRV-at-org) or expert_service (SRV-at-exp) */
3174
- service_type: components["schemas"]["ServiceType"];
3087
+ min_booking_duration: number;
3175
3088
  /**
3176
- * Title
3177
- * @description Display title
3089
+ * Max Booking Duration
3090
+ * @description Maximum booking duration in minutes
3091
+ * @default 60
3178
3092
  */
3179
- title: string;
3093
+ max_booking_duration: number;
3180
3094
  /**
3181
- * Description
3182
- * @description Full description
3095
+ * Booking Duration Step
3096
+ * @description Duration increment in minutes
3097
+ * @default 15
3183
3098
  */
3184
- description?: string | null;
3099
+ booking_duration_step: number;
3185
3100
  /**
3186
- * Short Description
3187
- * @description Short description
3101
+ * Booking Lead Time Value
3102
+ * @description Hours before session required
3103
+ * @default 2
3188
3104
  */
3189
- short_description?: string | null;
3105
+ booking_lead_time_value: number;
3190
3106
  /**
3191
- * Icon
3192
- * @description Icon class
3107
+ * Booking Lead Time Handler
3108
+ * @description Who controls lead time: org, expert
3109
+ * @default org
3193
3110
  */
3194
- icon?: string | null;
3111
+ booking_lead_time_handler: string;
3195
3112
  /**
3196
- * Banner Url
3197
- * @description Banner image URL
3113
+ * Buffer Time Before
3114
+ * @description Minutes gap before session
3115
+ * @default 0
3198
3116
  */
3199
- banner_url?: string | null;
3117
+ buffer_time_before: number;
3200
3118
  /**
3201
- * Display Order
3202
- * @description Sort order
3203
- * @default 100
3119
+ * Buffer Time After
3120
+ * @description Minutes gap after session
3121
+ * @default 0
3204
3122
  */
3205
- display_order: number;
3123
+ buffer_time_after: number;
3206
3124
  /**
3207
- * @description Expert enrollment mode
3208
- * @default open
3209
- */
3210
- enrollment_mode: components["schemas"]["EnrollmentMode"];
3211
- /**
3212
- * Enrollment Requires Approval
3213
- * @description Admin must approve applications
3214
- * @default true
3215
- */
3216
- enrollment_requires_approval: boolean;
3217
- /**
3218
- * Max Experts
3219
- * @description Max experts allowed
3220
- */
3221
- max_experts?: number | null;
3222
- /**
3223
- * @description Fee type for experts
3224
- * @default free
3225
- */
3226
- expert_fee_type: components["schemas"]["ExpertFeeType"];
3227
- /**
3228
- * Expert Fee Product Id
3229
- * @description Product ID for enrollment fee
3230
- */
3231
- expert_fee_product_id?: number | null;
3232
- /**
3233
- * @description Pricing mode
3234
- * @default expert_defined
3235
- */
3236
- pricing_mode: components["schemas"]["PricingMode"];
3237
- /**
3238
- * Org Flat Rate
3239
- * @description Flat rate if org_flat_rate mode
3240
- */
3241
- org_flat_rate?: number | string | null;
3242
- /**
3243
- * Currency
3244
- * @description Currency code
3245
- * @default USD
3246
- */
3247
- currency: string;
3248
- /**
3249
- * Min Rate
3250
- * @description Minimum expert rate
3251
- */
3252
- min_rate?: number | string | null;
3253
- /**
3254
- * Max Rate
3255
- * @description Maximum expert rate
3256
- */
3257
- max_rate?: number | string | null;
3258
- /**
3259
- * Company Id
3260
- * @description Company ID for multi-company orgs
3261
- */
3262
- company_id?: number | null;
3263
- };
3264
- /**
3265
- * MediaSection
3266
- * @description Product media files - direct media data
3267
- */
3268
- MediaSection: {
3269
- /**
3270
- * Media Items
3271
- * @description List of media files to attach to product
3272
- */
3273
- media_items?: components["schemas"]["MediaItem"][] | null;
3274
- };
3275
- /**
3276
- * OverrideTypeEnum
3277
- * @description Override type enum.
3278
- * @enum {string}
3279
- */
3280
- OverrideTypeEnum: "unavailable" | "custom";
3281
- ErrorResponse: {
3282
- /** @example about:blank */
3283
- type?: string;
3284
- /** @example GENERIC_ERROR */
3285
- code?: string;
3286
- /** @example Client Error */
3287
- title?: string;
3288
- /** @example 400 */
3289
- status?: number;
3290
- /** @example An error occurred */
3291
- detail?: string;
3292
- /** @example /v1/cart/items */
3293
- instance?: string;
3294
- extensions?: components["schemas"]["Extensions"];
3295
- };
3296
- /**
3297
- * LocationTypeEnum
3298
- * @description Location type enum.
3299
- * @enum {string}
3300
- */
3301
- LocationTypeEnum: "online" | "in_person";
3302
- /**
3303
- * NotificationChannelEnum
3304
- * @description Notification channel enum.
3305
- * @enum {string}
3306
- */
3307
- NotificationChannelEnum: "email" | "sms" | "push" | "inapp" | "webhook";
3308
- /**
3309
- * IdentitySection
3310
- * @description Localized product content (maps to product_identity_tbl)
3311
- */
3312
- IdentitySection: {
3313
- /**
3314
- * Locale
3315
- * @description Locale: en-US, es-PR, fr-FR, pt-BR, etc.
3316
- * @default en-US
3317
- */
3318
- locale: string;
3319
- /**
3320
- * Title
3321
- * @description Product title
3322
- */
3323
- title: string;
3324
- /**
3325
- * Subtitle
3326
- * @description Product subtitle
3327
- */
3328
- subtitle?: string | null;
3329
- /**
3330
- * Description
3331
- * @description Full product description
3332
- */
3333
- description?: string | null;
3334
- /**
3335
- * Short Description
3336
- * @description Short description for listings/previews
3337
- */
3338
- short_description?: string | null;
3339
- };
3340
- /**
3341
- * TimeSlotRequest
3342
- * @description Request model for a single time slot.
3343
- */
3344
- TimeSlotRequest: {
3345
- /**
3346
- * Starts At Time
3347
- * @description Start time in HH:MM format
3348
- */
3349
- starts_at_time: string;
3350
- /**
3351
- * Ends At Time
3352
- * @description End time in HH:MM format
3353
- */
3354
- ends_at_time: string;
3355
- };
3356
- /**
3357
- * ServiceSettingsRequest
3358
- * @description Request model for service settings.
3359
- */
3360
- ServiceSettingsRequest: {
3361
- /**
3362
- * Min Booking Duration
3363
- * @description Min duration (minutes)
3364
- */
3365
- min_booking_duration?: number | null;
3366
- /**
3367
- * Max Booking Duration
3368
- * @description Max duration (minutes)
3125
+ * Avoid Back To Back
3126
+ * @description Enforce buffer between sessions
3127
+ * @default false
3369
3128
  */
3370
- max_booking_duration?: number | null;
3129
+ avoid_back_to_back: boolean;
3371
3130
  /**
3372
- * Booking Duration Step
3373
- * @description Duration step (minutes)
3131
+ * Availability Window Days
3132
+ * @description Max days ahead consumer can book
3133
+ * @default 90
3374
3134
  */
3375
- booking_duration_step?: number | null;
3135
+ availability_window_days: number;
3376
3136
  /**
3377
- * Booking Lead Time Value
3378
- * @description Lead time (hours)
3137
+ * First Slot Rounding
3138
+ * @description Round first available slot to nearest X minutes
3139
+ * @default 15
3379
3140
  */
3380
- booking_lead_time_value?: number | null;
3381
- /** Booking Lead Time Handler */
3382
- booking_lead_time_handler?: string | null;
3141
+ first_slot_rounding: number;
3383
3142
  /**
3384
- * Buffer Time Before
3385
- * @description Buffer before (minutes)
3143
+ * Allow Recurring Bookings
3144
+ * @description Allow recurring bookings
3145
+ * @default false
3386
3146
  */
3387
- buffer_time_before?: number | null;
3147
+ allow_recurring_bookings: boolean;
3388
3148
  /**
3389
- * Buffer Time After
3390
- * @description Buffer after (minutes)
3149
+ * Max Recurring Sessions
3150
+ * @description Max sessions in recurring series
3391
3151
  */
3392
- buffer_time_after?: number | null;
3393
- /** Avoid Back To Back */
3394
- avoid_back_to_back?: boolean | null;
3152
+ max_recurring_sessions?: number | null;
3395
3153
  /**
3396
- * Availability Window Days
3397
- * @description Days ahead to book
3154
+ * Enable Trial Sessions
3155
+ * @description Enable trial/sample sessions
3156
+ * @default false
3398
3157
  */
3399
- availability_window_days?: number | null;
3158
+ enable_trial_sessions: boolean;
3400
3159
  /**
3401
- * First Slot Rounding
3402
- * @description Round start time
3160
+ * Trial Session Duration
3161
+ * @description Trial session duration in minutes
3403
3162
  */
3404
- first_slot_rounding?: number | null;
3163
+ trial_session_duration?: number | null;
3405
3164
  /**
3406
- * Timeslot Step Size
3407
- * @description Slot intervals
3165
+ * Trial Session Price
3166
+ * @description Trial session price (0 for free)
3408
3167
  */
3409
- timeslot_step_size?: number | null;
3410
- /** Timeslot Format */
3411
- timeslot_format?: string | null;
3412
- /** Slot Type */
3413
- slot_type?: string | null;
3414
- /** Allow Multiple Booking */
3415
- allow_multiple_booking?: boolean | null;
3416
- /** Allow Recurring Booking */
3417
- allow_recurring_booking?: boolean | null;
3418
- /** Max Recurring Sessions */
3419
- max_recurring_sessions?: number | null;
3420
- /** Selection Format */
3421
- selection_format?: string | null;
3422
- /** Display Divided Slots */
3423
- display_divided_slots?: boolean | null;
3424
- /** Allow Out Of Availability Request */
3425
- allow_out_of_availability_request?: boolean | null;
3426
- /** Custom Session Title Mode */
3427
- custom_session_title_mode?: string | null;
3428
- /** Custom Session Title */
3429
- custom_session_title?: string | null;
3430
- /** Trial Enabled */
3431
- trial_enabled?: boolean | null;
3432
- /** Trial Duration */
3433
- trial_duration?: number | null;
3434
- /** Trial Price */
3435
- trial_price?: number | string | null;
3436
- /** Trial Limit Per Consumer */
3437
- trial_limit_per_consumer?: number | null;
3168
+ trial_session_price?: number | null;
3438
3169
  };
3439
3170
  /**
3440
3171
  * ProductSection
@@ -3488,136 +3219,405 @@ export interface components {
3488
3219
  featured: boolean;
3489
3220
  };
3490
3221
  /**
3491
- * EventTypeEnum
3492
- * @description Booking event type enum.
3493
- * @enum {string}
3494
- */
3495
- EventTypeEnum: "booking_created" | "booking_confirmed" | "booking_reminder_24h" | "booking_reminder_1h" | "booking_started" | "booking_completed" | "booking_cancelled_by_consumer" | "booking_cancelled_by_expert" | "booking_cancelled_by_admin" | "booking_rescheduled" | "booking_no_show_consumer" | "booking_no_show_expert" | "credit_issued" | "credit_expiring" | "credit_expired" | "credit_used" | "expert_application_received" | "expert_application_approved" | "expert_application_rejected" | "expert_invited" | "expert_activated" | "expert_suspended";
3496
- /**
3497
- * WeeklyTemplateRequest
3498
- * @description Request model for updating weekly availability template.
3222
+ * PricingSection
3223
+ * @description Pricing configuration (optional - can have product price, variant prices, or both)
3499
3224
  */
3500
- WeeklyTemplateRequest: {
3225
+ PricingSection: {
3226
+ /** @description Base product price (no variant) */
3227
+ product_price?: components["schemas"]["ProductPrice"] | null;
3501
3228
  /**
3502
- * Timezone
3503
- * @description Expert's timezone (IANA format)
3504
- * @default UTC
3229
+ * Variant Prices
3230
+ * @description Variant-specific prices
3505
3231
  */
3506
- timezone: string;
3507
- /** Sunday */
3508
- sunday?: components["schemas"]["TimeSlotRequest"][] | null;
3509
- /** Monday */
3510
- monday?: components["schemas"]["TimeSlotRequest"][] | null;
3511
- /** Tuesday */
3512
- tuesday?: components["schemas"]["TimeSlotRequest"][] | null;
3513
- /** Wednesday */
3514
- wednesday?: components["schemas"]["TimeSlotRequest"][] | null;
3515
- /** Thursday */
3516
- thursday?: components["schemas"]["TimeSlotRequest"][] | null;
3517
- /** Friday */
3518
- friday?: components["schemas"]["TimeSlotRequest"][] | null;
3519
- /** Saturday */
3520
- saturday?: components["schemas"]["TimeSlotRequest"][] | null;
3232
+ variant_prices?: components["schemas"]["VariantPrice"][] | null;
3521
3233
  };
3522
3234
  /**
3523
- * ChannelPreference
3524
- * @description Channel-specific preference.
3235
+ * ServiceProductRequest
3236
+ * @description Request model for a single product configuration.
3525
3237
  */
3526
- ChannelPreference: {
3527
- channel: components["schemas"]["NotificationChannelEnum"];
3238
+ ServiceProductRequest: {
3528
3239
  /**
3529
- * Enabled
3240
+ * Product Code
3241
+ * @description Product code
3242
+ */
3243
+ product_code: string;
3244
+ /**
3245
+ * Is Enabled
3246
+ * @description Enable status
3530
3247
  * @default true
3531
3248
  */
3532
- enabled: boolean;
3249
+ is_enabled: boolean;
3533
3250
  /**
3534
- * Quiet Hours Start
3535
- * @description Start of quiet hours (HH:MM)
3251
+ * Display Order
3252
+ * @default 100
3536
3253
  */
3537
- quiet_hours_start?: string | null;
3254
+ display_order: number;
3538
3255
  /**
3539
- * Quiet Hours End
3540
- * @description End of quiet hours (HH:MM)
3256
+ * Product Id
3257
+ * @description Link to product_tbl
3541
3258
  */
3542
- quiet_hours_end?: string | null;
3259
+ product_id?: number | null;
3260
+ /** Custom Settings */
3261
+ custom_settings?: {
3262
+ [key: string]: unknown;
3263
+ } | null;
3543
3264
  };
3544
3265
  /**
3545
- * BookingRescheduleRequest
3546
- * @description Request model for rescheduling a booking.
3266
+ * CreditVoidRequest
3267
+ * @description Request model for voiding a credit.
3547
3268
  */
3548
- BookingRescheduleRequest: {
3269
+ CreditVoidRequest: {
3549
3270
  /**
3550
- * New Starts At
3551
- * @description New start datetime in ISO format (UTC)
3271
+ * Reason
3272
+ * @description Reason for voiding
3552
3273
  */
3553
- new_starts_at: string;
3274
+ reason?: string | null;
3554
3275
  };
3555
3276
  /**
3556
- * BookingCompleteRequest
3557
- * @description Request model for completing a booking.
3277
+ * NotificationPreferencesRequest
3278
+ * @description Request model for updating notification preferences.
3558
3279
  */
3559
- BookingCompleteRequest: {
3280
+ NotificationPreferencesRequest: {
3560
3281
  /**
3561
- * Actual Duration Minutes
3562
- * @description Actual session duration
3282
+ * Timezone
3283
+ * @description User timezone (IANA format)
3563
3284
  */
3564
- actual_duration_minutes?: number | null;
3285
+ timezone?: string | null;
3565
3286
  /**
3566
- * Consumer Attended
3567
- * @description Consumer attended
3287
+ * Language
3288
+ * @description Preferred language code
3568
3289
  */
3569
- consumer_attended?: boolean | null;
3290
+ language?: string | null;
3570
3291
  /**
3571
- * Expert Attended
3572
- * @description Expert attended
3292
+ * Global Enabled
3293
+ * @description Master toggle for all notifications
3573
3294
  */
3574
- expert_attended?: boolean | null;
3295
+ global_enabled?: boolean | null;
3296
+ /** Channel Preferences */
3297
+ channel_preferences?: components["schemas"]["ChannelPreference"][] | null;
3298
+ /** Event Preferences */
3299
+ event_preferences?: components["schemas"]["EventPreference"][] | null;
3575
3300
  };
3576
3301
  /**
3577
- * CancellationPolicyRequest
3578
- * @description Request model for cancellation policy.
3302
+ * ServiceProductsUpdateRequest
3303
+ * @description Request model for bulk updating service products.
3579
3304
  */
3580
- CancellationPolicyRequest: {
3305
+ ServiceProductsUpdateRequest: {
3306
+ /** Products */
3307
+ products: components["schemas"]["ServiceProductRequest"][];
3308
+ };
3309
+ /**
3310
+ * ServiceProductCreateRequest
3311
+ * @description Service creation request - inherits common fields, adds service-specific sections
3312
+ * @example {
3313
+ * "identity": {
3314
+ * "locale": "en-US",
3315
+ * "title": "Online Tutoring Service"
3316
+ * },
3317
+ * "pricing": {
3318
+ * "product_price": {
3319
+ * "amount": 25,
3320
+ * "currency": "USD",
3321
+ * "price_type": "one_time"
3322
+ * }
3323
+ * },
3324
+ * "product": {
3325
+ * "is_digital": true,
3326
+ * "status": "draft",
3327
+ * "visibility": "public"
3328
+ * },
3329
+ * "service": {
3330
+ * "enrollment_mode": "open",
3331
+ * "max_rate": 100,
3332
+ * "min_rate": 15,
3333
+ * "pricing_mode": "expert_defined",
3334
+ * "service_code": "online-tutoring",
3335
+ * "service_type": "expert_service"
3336
+ * },
3337
+ * "service_settings": {
3338
+ * "availability_window_days": 60,
3339
+ * "booking_duration_step": 30,
3340
+ * "max_booking_duration": 120,
3341
+ * "min_booking_duration": 30
3342
+ * }
3343
+ * }
3344
+ */
3345
+ ServiceProductCreateRequest: {
3346
+ /** @description Base product configuration */
3347
+ product: components["schemas"]["ProductSection"];
3348
+ /** @description Localized content (title, description) */
3349
+ identity: components["schemas"]["IdentitySection"];
3350
+ /** @description Pre-uploaded image IDs */
3351
+ media?: components["schemas"]["MediaSection"] | null;
3581
3352
  /**
3582
- * Product Code
3583
- * @description NULL for service-wide default
3353
+ * Tags
3354
+ * @description Tag IDs to associate with product
3584
3355
  */
3585
- product_code?: string | null;
3586
- /** Consumer Cancel Allowed */
3587
- consumer_cancel_allowed?: boolean | null;
3588
- /** Consumer Cancel Window Hours */
3589
- consumer_cancel_window_hours?: number | null;
3590
- /** Consumer In Window Credit */
3591
- consumer_in_window_credit?: boolean | null;
3592
- /** Consumer Out Window Credit */
3593
- consumer_out_window_credit?: boolean | null;
3594
- /** Consumer Cancel Reason Required */
3595
- consumer_cancel_reason_required?: boolean | null;
3596
- /** Consumer Reschedule Allowed */
3597
- consumer_reschedule_allowed?: boolean | null;
3598
- /** Expert Cancel Allowed */
3599
- expert_cancel_allowed?: boolean | null;
3600
- /** Expert Cancel Window Hours */
3601
- expert_cancel_window_hours?: number | null;
3602
- /** Expert In Window Credit */
3603
- expert_in_window_credit?: boolean | null;
3604
- /** Expert Out Window Credit */
3605
- expert_out_window_credit?: boolean | null;
3606
- /** Expert Reschedule Allowed */
3607
- expert_reschedule_allowed?: boolean | null;
3608
- /** Credit Expiry Hours */
3609
- credit_expiry_hours?: number | null;
3610
- /** Credit Type */
3611
- credit_type?: string | null;
3612
- /** Credit Transferable */
3613
- credit_transferable?: boolean | null;
3356
+ tags?: number[] | null;
3357
+ /**
3358
+ * Variants
3359
+ * @description Product variants (optional)
3360
+ */
3361
+ variants?: components["schemas"]["VariantItem"][] | null;
3362
+ /** @description Pricing for product and variants */
3363
+ pricing?: components["schemas"]["PricingSection"] | null;
3364
+ /** @description Service-specific configuration */
3365
+ service: components["schemas"]["ServiceSection"];
3366
+ /** @description Service booking settings */
3367
+ service_settings: components["schemas"]["ServiceSettingsSection"];
3614
3368
  };
3615
3369
  /**
3616
- * EnrollmentMode
3617
- * @description Expert enrollment mode enum.
3370
+ * ExpertFeeType
3371
+ * @description Expert fee type enum.
3618
3372
  * @enum {string}
3619
3373
  */
3620
- EnrollmentMode: "open" | "closed" | "invite_only" | "auto_approve";
3374
+ ExpertFeeType: "free" | "one_time" | "subscription";
3375
+ /**
3376
+ * TimeSlotRequest
3377
+ * @description Request model for a single time slot.
3378
+ */
3379
+ TimeSlotRequest: {
3380
+ /**
3381
+ * Starts At Time
3382
+ * @description Start time in HH:MM format
3383
+ */
3384
+ starts_at_time: string;
3385
+ /**
3386
+ * Ends At Time
3387
+ * @description End time in HH:MM format
3388
+ */
3389
+ ends_at_time: string;
3390
+ };
3391
+ /**
3392
+ * ServiceCreateRequest
3393
+ * @description Request model for creating a service.
3394
+ */
3395
+ ServiceCreateRequest: {
3396
+ /**
3397
+ * Service Code
3398
+ * @description Unique code within org: online-tutoring, makeup-services
3399
+ */
3400
+ service_code: string;
3401
+ /** @description org_service (SRV-at-org) or expert_service (SRV-at-exp) */
3402
+ service_type: components["schemas"]["ServiceType"];
3403
+ /**
3404
+ * Title
3405
+ * @description Display title
3406
+ */
3407
+ title: string;
3408
+ /**
3409
+ * Description
3410
+ * @description Full description
3411
+ */
3412
+ description?: string | null;
3413
+ /**
3414
+ * Short Description
3415
+ * @description Short description
3416
+ */
3417
+ short_description?: string | null;
3418
+ /**
3419
+ * Icon
3420
+ * @description Icon class
3421
+ */
3422
+ icon?: string | null;
3423
+ /**
3424
+ * Banner Url
3425
+ * @description Banner image URL
3426
+ */
3427
+ banner_url?: string | null;
3428
+ /**
3429
+ * Display Order
3430
+ * @description Sort order
3431
+ * @default 100
3432
+ */
3433
+ display_order: number;
3434
+ /**
3435
+ * @description Expert enrollment mode
3436
+ * @default open
3437
+ */
3438
+ enrollment_mode: components["schemas"]["EnrollmentMode"];
3439
+ /**
3440
+ * Enrollment Requires Approval
3441
+ * @description Admin must approve applications
3442
+ * @default true
3443
+ */
3444
+ enrollment_requires_approval: boolean;
3445
+ /**
3446
+ * Max Experts
3447
+ * @description Max experts allowed
3448
+ */
3449
+ max_experts?: number | null;
3450
+ /**
3451
+ * @description Fee type for experts
3452
+ * @default free
3453
+ */
3454
+ expert_fee_type: components["schemas"]["ExpertFeeType"];
3455
+ /**
3456
+ * Expert Fee Product Id
3457
+ * @description Product ID for enrollment fee
3458
+ */
3459
+ expert_fee_product_id?: number | null;
3460
+ /**
3461
+ * @description Pricing mode
3462
+ * @default expert_defined
3463
+ */
3464
+ pricing_mode: components["schemas"]["PricingMode"];
3465
+ /**
3466
+ * Org Flat Rate
3467
+ * @description Flat rate if org_flat_rate mode
3468
+ */
3469
+ org_flat_rate?: number | string | null;
3470
+ /**
3471
+ * Currency
3472
+ * @description Currency code
3473
+ * @default USD
3474
+ */
3475
+ currency: string;
3476
+ /**
3477
+ * Min Rate
3478
+ * @description Minimum expert rate
3479
+ */
3480
+ min_rate?: number | string | null;
3481
+ /**
3482
+ * Max Rate
3483
+ * @description Maximum expert rate
3484
+ */
3485
+ max_rate?: number | string | null;
3486
+ /**
3487
+ * Company Id
3488
+ * @description Company ID for multi-company orgs
3489
+ */
3490
+ company_id?: number | null;
3491
+ };
3492
+ /**
3493
+ * EventTypeEnum
3494
+ * @description Booking event type enum.
3495
+ * @enum {string}
3496
+ */
3497
+ EventTypeEnum: "booking_created" | "booking_confirmed" | "booking_reminder_24h" | "booking_reminder_1h" | "booking_started" | "booking_completed" | "booking_cancelled_by_consumer" | "booking_cancelled_by_expert" | "booking_cancelled_by_admin" | "booking_rescheduled" | "booking_no_show_consumer" | "booking_no_show_expert" | "credit_issued" | "credit_expiring" | "credit_expired" | "credit_used" | "expert_application_received" | "expert_application_approved" | "expert_application_rejected" | "expert_invited" | "expert_activated" | "expert_suspended";
3498
+ /** Body_updateServiceApplication */
3499
+ Body_updateServiceApplication: {
3500
+ /**
3501
+ * Action
3502
+ * @description approve or reject
3503
+ */
3504
+ action: string;
3505
+ };
3506
+ /**
3507
+ * PricingMode
3508
+ * @description Service pricing mode enum.
3509
+ * @enum {string}
3510
+ */
3511
+ PricingMode: "org_flat_rate" | "expert_defined";
3512
+ /**
3513
+ * SlotCheckRequest
3514
+ * @description Request model for checking a specific slot.
3515
+ */
3516
+ SlotCheckRequest: {
3517
+ /**
3518
+ * Expert Id
3519
+ * @description Expert user ID
3520
+ */
3521
+ expert_id: number;
3522
+ /**
3523
+ * Starts At
3524
+ * @description Start datetime in ISO format (UTC)
3525
+ */
3526
+ starts_at: string;
3527
+ /**
3528
+ * Duration Minutes
3529
+ * @description Session duration in minutes
3530
+ */
3531
+ duration_minutes: number;
3532
+ };
3533
+ /**
3534
+ * VariantPrice
3535
+ * @description Variant-specific pricing (maps to product_pricings_tbl with variant_id set)
3536
+ */
3537
+ VariantPrice: {
3538
+ /**
3539
+ * Variant Index
3540
+ * @description Index in variants array (0-based)
3541
+ */
3542
+ variant_index: number;
3543
+ /**
3544
+ * Price Type
3545
+ * @description free, one_time, subscription, monthly_plan
3546
+ */
3547
+ price_type: string;
3548
+ /**
3549
+ * Currency
3550
+ * @description Currency code
3551
+ */
3552
+ currency: string;
3553
+ /**
3554
+ * Amount
3555
+ * @description Price amount
3556
+ */
3557
+ amount: number;
3558
+ /**
3559
+ * Compare At Amount
3560
+ * @description Original/strike-through price
3561
+ */
3562
+ compare_at_amount?: number | null;
3563
+ /**
3564
+ * Interval
3565
+ * @description day, week, month, year
3566
+ */
3567
+ interval?: string | null;
3568
+ /**
3569
+ * Interval Count
3570
+ * @description Number of intervals
3571
+ */
3572
+ interval_count?: number | null;
3573
+ /**
3574
+ * Trial Period Days
3575
+ * @description Free trial days
3576
+ */
3577
+ trial_period_days?: number | null;
3578
+ /**
3579
+ * Initial Amount
3580
+ * @description First payment amount
3581
+ */
3582
+ initial_amount?: number | null;
3583
+ /**
3584
+ * Gateway
3585
+ * @description stripe, razorpay, paypal, etc.
3586
+ */
3587
+ gateway?: string | null;
3588
+ /**
3589
+ * Requires Payment Method Upfront
3590
+ * @description Require payment method before trial
3591
+ * @default true
3592
+ */
3593
+ requires_payment_method_upfront: boolean;
3594
+ };
3595
+ /**
3596
+ * BookingRescheduleRequest
3597
+ * @description Request model for rescheduling a booking.
3598
+ */
3599
+ BookingRescheduleRequest: {
3600
+ /**
3601
+ * New Starts At
3602
+ * @description New start datetime in ISO format (UTC)
3603
+ */
3604
+ new_starts_at: string;
3605
+ };
3606
+ ErrorResponse: {
3607
+ /** @example about:blank */
3608
+ type?: string;
3609
+ /** @example GENERIC_ERROR */
3610
+ code?: string;
3611
+ /** @example Client Error */
3612
+ title?: string;
3613
+ /** @example 400 */
3614
+ status?: number;
3615
+ /** @example An error occurred */
3616
+ detail?: string;
3617
+ /** @example /v1/cart/items */
3618
+ instance?: string;
3619
+ extensions?: components["schemas"]["Extensions"];
3620
+ };
3621
3621
  };
3622
3622
  responses: never;
3623
3623
  parameters: never;