@blezgo/api-sdk 0.1.5 → 0.1.6

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