@growsober/types 1.0.13 → 1.0.15

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.
@@ -243,6 +243,40 @@ export interface paths {
243
243
  patch?: never;
244
244
  trace?: never;
245
245
  };
246
+ "/users/me/phone/send-otp": {
247
+ parameters: {
248
+ query?: never;
249
+ header?: never;
250
+ path?: never;
251
+ cookie?: never;
252
+ };
253
+ get?: never;
254
+ put?: never;
255
+ /** Send OTP to verify phone number for current user */
256
+ post: operations["UsersController_sendPhoneOtp"];
257
+ delete?: never;
258
+ options?: never;
259
+ head?: never;
260
+ patch?: never;
261
+ trace?: never;
262
+ };
263
+ "/users/me/phone/verify-otp": {
264
+ parameters: {
265
+ query?: never;
266
+ header?: never;
267
+ path?: never;
268
+ cookie?: never;
269
+ };
270
+ get?: never;
271
+ put?: never;
272
+ /** Verify OTP and update phone number for current user */
273
+ post: operations["UsersController_verifyPhoneOtp"];
274
+ delete?: never;
275
+ options?: never;
276
+ head?: never;
277
+ patch?: never;
278
+ trace?: never;
279
+ };
246
280
  "/users/{id}/public": {
247
281
  parameters: {
248
282
  query?: never;
@@ -501,176 +535,6 @@ export interface paths {
501
535
  patch?: never;
502
536
  trace?: never;
503
537
  };
504
- "/businesses": {
505
- parameters: {
506
- query?: never;
507
- header?: never;
508
- path?: never;
509
- cookie?: never;
510
- };
511
- /** Get all business partners with pagination and filters */
512
- get: operations["BusinessesController_findAll"];
513
- put?: never;
514
- post?: never;
515
- delete?: never;
516
- options?: never;
517
- head?: never;
518
- patch?: never;
519
- trace?: never;
520
- };
521
- "/businesses/featured": {
522
- parameters: {
523
- query?: never;
524
- header?: never;
525
- path?: never;
526
- cookie?: never;
527
- };
528
- /** Get featured business partners */
529
- get: operations["BusinessesController_getFeatured"];
530
- put?: never;
531
- post?: never;
532
- delete?: never;
533
- options?: never;
534
- head?: never;
535
- patch?: never;
536
- trace?: never;
537
- };
538
- "/businesses/nearby": {
539
- parameters: {
540
- query?: never;
541
- header?: never;
542
- path?: never;
543
- cookie?: never;
544
- };
545
- /** Get businesses near a location */
546
- get: operations["BusinessesController_getNearby"];
547
- put?: never;
548
- post?: never;
549
- delete?: never;
550
- options?: never;
551
- head?: never;
552
- patch?: never;
553
- trace?: never;
554
- };
555
- "/businesses/{idOrSlug}": {
556
- parameters: {
557
- query?: never;
558
- header?: never;
559
- path?: never;
560
- cookie?: never;
561
- };
562
- /** Get business details by ID or slug */
563
- get: operations["BusinessesController_findByIdOrSlug"];
564
- put?: never;
565
- post?: never;
566
- delete?: never;
567
- options?: never;
568
- head?: never;
569
- patch?: never;
570
- trace?: never;
571
- };
572
- "/businesses/{idOrSlug}/offers": {
573
- parameters: {
574
- query?: never;
575
- header?: never;
576
- path?: never;
577
- cookie?: never;
578
- };
579
- /** Get offers for a specific business */
580
- get: operations["BusinessesController_getBusinessOffers"];
581
- put?: never;
582
- post?: never;
583
- delete?: never;
584
- options?: never;
585
- head?: never;
586
- patch?: never;
587
- trace?: never;
588
- };
589
- "/businesses/{idOrSlug}/events": {
590
- parameters: {
591
- query?: never;
592
- header?: never;
593
- path?: never;
594
- cookie?: never;
595
- };
596
- /** Get upcoming events at a specific business/venue */
597
- get: operations["BusinessesController_getBusinessEvents"];
598
- put?: never;
599
- post?: never;
600
- delete?: never;
601
- options?: never;
602
- head?: never;
603
- patch?: never;
604
- trace?: never;
605
- };
606
- "/offers": {
607
- parameters: {
608
- query?: never;
609
- header?: never;
610
- path?: never;
611
- cookie?: never;
612
- };
613
- /** Get all active offers */
614
- get: operations["OffersController_findAll"];
615
- put?: never;
616
- post?: never;
617
- delete?: never;
618
- options?: never;
619
- head?: never;
620
- patch?: never;
621
- trace?: never;
622
- };
623
- "/offers/{id}": {
624
- parameters: {
625
- query?: never;
626
- header?: never;
627
- path?: never;
628
- cookie?: never;
629
- };
630
- /** Get offer details by ID */
631
- get: operations["OffersController_findById"];
632
- put?: never;
633
- post?: never;
634
- delete?: never;
635
- options?: never;
636
- head?: never;
637
- patch?: never;
638
- trace?: never;
639
- };
640
- "/offers/{id}/redeem": {
641
- parameters: {
642
- query?: never;
643
- header?: never;
644
- path?: never;
645
- cookie?: never;
646
- };
647
- get?: never;
648
- put?: never;
649
- /** Redeem an offer */
650
- post: operations["OffersController_redeemOffer"];
651
- delete?: never;
652
- options?: never;
653
- head?: never;
654
- patch?: never;
655
- trace?: never;
656
- };
657
- "/offers/{id}/can-redeem": {
658
- parameters: {
659
- query?: never;
660
- header?: never;
661
- path?: never;
662
- cookie?: never;
663
- };
664
- /** Check if current user can redeem an offer */
665
- get: operations["OffersController_checkCanRedeem"];
666
- put?: never;
667
- post?: never;
668
- delete?: never;
669
- options?: never;
670
- head?: never;
671
- patch?: never;
672
- trace?: never;
673
- };
674
538
  "/subscriptions/plans": {
675
539
  parameters: {
676
540
  query?: never;
@@ -1283,14 +1147,14 @@ export interface paths {
1283
1147
  patch?: never;
1284
1148
  trace?: never;
1285
1149
  };
1286
- "/api/v1/rewards/business/{businessId}": {
1150
+ "/api/v1/rewards/venue/{venueId}": {
1287
1151
  parameters: {
1288
1152
  query?: never;
1289
1153
  header?: never;
1290
1154
  path?: never;
1291
1155
  cookie?: never;
1292
1156
  };
1293
- get: operations["PartnerRewardsController_getRewardsForBusiness"];
1157
+ get: operations["PartnerRewardsController_getRewardsForVenue"];
1294
1158
  put?: never;
1295
1159
  post?: never;
1296
1160
  delete?: never;
@@ -1363,23 +1227,23 @@ export interface paths {
1363
1227
  patch?: never;
1364
1228
  trace?: never;
1365
1229
  };
1366
- "/api/v1/businesses/{businessId}/rewards": {
1230
+ "/api/v1/venues/{venueId}/partner-rewards": {
1367
1231
  parameters: {
1368
1232
  query?: never;
1369
1233
  header?: never;
1370
1234
  path?: never;
1371
1235
  cookie?: never;
1372
1236
  };
1373
- get: operations["BusinessRewardsController_getBusinessRewards"];
1237
+ get: operations["PartnerVenueRewardsController_getVenueRewards"];
1374
1238
  put?: never;
1375
- post: operations["BusinessRewardsController_createReward"];
1239
+ post: operations["PartnerVenueRewardsController_createReward"];
1376
1240
  delete?: never;
1377
1241
  options?: never;
1378
1242
  head?: never;
1379
1243
  patch?: never;
1380
1244
  trace?: never;
1381
1245
  };
1382
- "/api/v1/businesses/{businessId}/rewards/{rewardId}": {
1246
+ "/api/v1/venues/{venueId}/partner-rewards/{rewardId}": {
1383
1247
  parameters: {
1384
1248
  query?: never;
1385
1249
  header?: never;
@@ -1392,7 +1256,7 @@ export interface paths {
1392
1256
  delete?: never;
1393
1257
  options?: never;
1394
1258
  head?: never;
1395
- patch: operations["BusinessRewardsController_updateReward"];
1259
+ patch: operations["PartnerVenueRewardsController_updateReward"];
1396
1260
  trace?: never;
1397
1261
  };
1398
1262
  "/rewards/available": {
@@ -1639,6 +1503,74 @@ export interface paths {
1639
1503
  patch: operations["CreatorRewardsController_updateReward"];
1640
1504
  trace?: never;
1641
1505
  };
1506
+ "/offers": {
1507
+ parameters: {
1508
+ query?: never;
1509
+ header?: never;
1510
+ path?: never;
1511
+ cookie?: never;
1512
+ };
1513
+ /** Get all active offers */
1514
+ get: operations["OffersController_findAll"];
1515
+ put?: never;
1516
+ post?: never;
1517
+ delete?: never;
1518
+ options?: never;
1519
+ head?: never;
1520
+ patch?: never;
1521
+ trace?: never;
1522
+ };
1523
+ "/offers/{id}": {
1524
+ parameters: {
1525
+ query?: never;
1526
+ header?: never;
1527
+ path?: never;
1528
+ cookie?: never;
1529
+ };
1530
+ /** Get offer details by ID */
1531
+ get: operations["OffersController_findById"];
1532
+ put?: never;
1533
+ post?: never;
1534
+ delete?: never;
1535
+ options?: never;
1536
+ head?: never;
1537
+ patch?: never;
1538
+ trace?: never;
1539
+ };
1540
+ "/offers/{id}/redeem": {
1541
+ parameters: {
1542
+ query?: never;
1543
+ header?: never;
1544
+ path?: never;
1545
+ cookie?: never;
1546
+ };
1547
+ get?: never;
1548
+ put?: never;
1549
+ /** Redeem an offer */
1550
+ post: operations["OffersController_redeemOffer"];
1551
+ delete?: never;
1552
+ options?: never;
1553
+ head?: never;
1554
+ patch?: never;
1555
+ trace?: never;
1556
+ };
1557
+ "/offers/{id}/can-redeem": {
1558
+ parameters: {
1559
+ query?: never;
1560
+ header?: never;
1561
+ path?: never;
1562
+ cookie?: never;
1563
+ };
1564
+ /** Check if current user can redeem an offer */
1565
+ get: operations["OffersController_checkCanRedeem"];
1566
+ put?: never;
1567
+ post?: never;
1568
+ delete?: never;
1569
+ options?: never;
1570
+ head?: never;
1571
+ patch?: never;
1572
+ trace?: never;
1573
+ };
1642
1574
  "/hubs": {
1643
1575
  parameters: {
1644
1576
  query?: never;
@@ -2128,15 +2060,15 @@ export interface paths {
2128
2060
  patch?: never;
2129
2061
  trace?: never;
2130
2062
  };
2131
- "/venues": {
2063
+ "/venues/me": {
2132
2064
  parameters: {
2133
2065
  query?: never;
2134
2066
  header?: never;
2135
2067
  path?: never;
2136
2068
  cookie?: never;
2137
2069
  };
2138
- /** Get all venues with pagination and filters */
2139
- get: operations["VenuesController_findAll"];
2070
+ /** Get venues owned/managed by current user */
2071
+ get: operations["VenuesController_getMyVenues"];
2140
2072
  put?: never;
2141
2073
  post?: never;
2142
2074
  delete?: never;
@@ -2145,16 +2077,52 @@ export interface paths {
2145
2077
  patch?: never;
2146
2078
  trace?: never;
2147
2079
  };
2148
- "/venues/featured": {
2080
+ "/venues": {
2149
2081
  parameters: {
2150
2082
  query?: never;
2151
2083
  header?: never;
2152
2084
  path?: never;
2153
2085
  cookie?: never;
2154
2086
  };
2155
- /** Get featured venues */
2156
- get: operations["VenuesController_getFeatured"];
2157
- put?: never;
2087
+ /** Get all venues with pagination and filters */
2088
+ get: operations["VenuesController_findAll"];
2089
+ put?: never;
2090
+ /** Create a new venue */
2091
+ post: operations["VenuesController_create"];
2092
+ delete?: never;
2093
+ options?: never;
2094
+ head?: never;
2095
+ patch?: never;
2096
+ trace?: never;
2097
+ };
2098
+ "/venues/{id}": {
2099
+ parameters: {
2100
+ query?: never;
2101
+ header?: never;
2102
+ path?: never;
2103
+ cookie?: never;
2104
+ };
2105
+ get?: never;
2106
+ /** Update a venue */
2107
+ put: operations["VenuesController_update"];
2108
+ post?: never;
2109
+ /** Delete a venue */
2110
+ delete: operations["VenuesController_delete"];
2111
+ options?: never;
2112
+ head?: never;
2113
+ patch?: never;
2114
+ trace?: never;
2115
+ };
2116
+ "/venues/featured": {
2117
+ parameters: {
2118
+ query?: never;
2119
+ header?: never;
2120
+ path?: never;
2121
+ cookie?: never;
2122
+ };
2123
+ /** Get featured venues */
2124
+ get: operations["VenuesController_getFeatured"];
2125
+ put?: never;
2158
2126
  post?: never;
2159
2127
  delete?: never;
2160
2128
  options?: never;
@@ -2179,15 +2147,15 @@ export interface paths {
2179
2147
  patch?: never;
2180
2148
  trace?: never;
2181
2149
  };
2182
- "/venues/{id}": {
2150
+ "/venues/{idOrSlug}": {
2183
2151
  parameters: {
2184
2152
  query?: never;
2185
2153
  header?: never;
2186
2154
  path?: never;
2187
2155
  cookie?: never;
2188
2156
  };
2189
- /** Get venue details by ID */
2190
- get: operations["VenuesController_findById"];
2157
+ /** Get venue details by ID or slug */
2158
+ get: operations["VenuesController_findByIdOrSlug"];
2191
2159
  put?: never;
2192
2160
  post?: never;
2193
2161
  delete?: never;
@@ -2231,7 +2199,7 @@ export interface paths {
2231
2199
  patch?: never;
2232
2200
  trace?: never;
2233
2201
  };
2234
- "/venues/{id}/events": {
2202
+ "/venues/{idOrSlug}/events": {
2235
2203
  parameters: {
2236
2204
  query?: never;
2237
2205
  header?: never;
@@ -2843,59 +2811,6 @@ export interface paths {
2843
2811
  patch?: never;
2844
2812
  trace?: never;
2845
2813
  };
2846
- "/admin/businesses": {
2847
- parameters: {
2848
- query?: never;
2849
- header?: never;
2850
- path?: never;
2851
- cookie?: never;
2852
- };
2853
- /** List all businesses */
2854
- get: operations["AdminBusinessesController_findAll"];
2855
- put?: never;
2856
- /** Create business */
2857
- post: operations["AdminBusinessesController_create"];
2858
- delete?: never;
2859
- options?: never;
2860
- head?: never;
2861
- patch?: never;
2862
- trace?: never;
2863
- };
2864
- "/admin/businesses/{id}": {
2865
- parameters: {
2866
- query?: never;
2867
- header?: never;
2868
- path?: never;
2869
- cookie?: never;
2870
- };
2871
- get?: never;
2872
- /** Update business */
2873
- put: operations["AdminBusinessesController_update"];
2874
- post?: never;
2875
- /** Delete business */
2876
- delete: operations["AdminBusinessesController_delete"];
2877
- options?: never;
2878
- head?: never;
2879
- patch?: never;
2880
- trace?: never;
2881
- };
2882
- "/admin/businesses/{id}/offers": {
2883
- parameters: {
2884
- query?: never;
2885
- header?: never;
2886
- path?: never;
2887
- cookie?: never;
2888
- };
2889
- get?: never;
2890
- put?: never;
2891
- /** Create offer for business */
2892
- post: operations["AdminBusinessesController_createOffer"];
2893
- delete?: never;
2894
- options?: never;
2895
- head?: never;
2896
- patch?: never;
2897
- trace?: never;
2898
- };
2899
2814
  "/admin/analytics/overview": {
2900
2815
  parameters: {
2901
2816
  query?: never;
@@ -4301,7 +4216,7 @@ export interface paths {
4301
4216
  patch?: never;
4302
4217
  trace?: never;
4303
4218
  };
4304
- "/map/businesses": {
4219
+ "/map/venues": {
4305
4220
  parameters: {
4306
4221
  query?: never;
4307
4222
  header?: never;
@@ -4309,10 +4224,10 @@ export interface paths {
4309
4224
  cookie?: never;
4310
4225
  };
4311
4226
  /**
4312
- * Get businesses/venues on map
4313
- * @description Returns active businesses with location data. Shows partner venues, AF-friendly spots, and more. Supports filtering by radius from a center point.
4227
+ * Get venues on map
4228
+ * @description Returns active venues with location data. Shows founding partner venues, AF-friendly spots, and more. Supports filtering by radius from a center point.
4314
4229
  */
4315
- get: operations["MapController_getMapBusinesses"];
4230
+ get: operations["MapController_getMapVenues"];
4316
4231
  put?: never;
4317
4232
  post?: never;
4318
4233
  delete?: never;
@@ -5322,6 +5237,37 @@ export interface components {
5322
5237
  /** @example true */
5323
5238
  onboardingComplete?: boolean;
5324
5239
  };
5240
+ UserSendOtpDto: {
5241
+ /**
5242
+ * @description Phone number to send OTP to (E.164 format recommended)
5243
+ * @example +14155551234
5244
+ */
5245
+ phone: string;
5246
+ /**
5247
+ * @description Channel to send OTP through
5248
+ * @default sms
5249
+ * @enum {string}
5250
+ */
5251
+ channel: "sms" | "call";
5252
+ };
5253
+ UserOtpSentResponseDto: {
5254
+ /** @description Whether OTP was sent successfully */
5255
+ success: boolean;
5256
+ /** @description Masked phone number */
5257
+ phone: string;
5258
+ };
5259
+ UserVerifyOtpDto: {
5260
+ /**
5261
+ * @description Phone number that received the OTP
5262
+ * @example +14155551234
5263
+ */
5264
+ phone: string;
5265
+ /**
5266
+ * @description 6-digit OTP code
5267
+ * @example 123456
5268
+ */
5269
+ code: string;
5270
+ };
5325
5271
  UserPublicResponseDto: {
5326
5272
  /** @example user-123 */
5327
5273
  id: string;
@@ -5544,377 +5490,88 @@ export interface components {
5544
5490
  */
5545
5491
  updatedAt: string;
5546
5492
  };
5547
- BusinessResponseDto: {
5548
- /** @example business-123 */
5493
+ SubscriptionResponseDto: {
5494
+ /**
5495
+ * @description Subscription ID
5496
+ * @example sub_1234567890
5497
+ */
5549
5498
  id: string;
5550
- /** @example growsober */
5551
- appId: string;
5552
- /** @example The Sober Spot */
5553
- name: string;
5554
- /** @example the-sober-spot */
5555
- slug?: Record<string, never>;
5556
- /** @example A cozy coffee shop with amazing mocktails */
5557
- description?: Record<string, never>;
5558
5499
  /**
5559
- * @example COFFEE_SHOP
5500
+ * @description User ID
5501
+ * @example user-123
5502
+ */
5503
+ userId: string;
5504
+ /**
5505
+ * @description Subscription tier
5506
+ * @example PREMIUM
5560
5507
  * @enum {string}
5561
5508
  */
5562
- type: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
5563
- /** @example true */
5564
- hasAfDrinks: boolean;
5565
- /** @example false */
5566
- isAfVenue: boolean;
5509
+ tier: "FREE" | "PREMIUM";
5567
5510
  /**
5568
- * @example [
5569
- * "Great mocktail menu",
5570
- * "Quiet atmosphere"
5571
- * ]
5511
+ * @description Subscription status
5512
+ * @example ACTIVE
5513
+ * @enum {string}
5572
5514
  */
5573
- afHighlights: string[];
5574
- /** @example 123 Main Street, Berlin */
5575
- address?: Record<string, never>;
5576
- /** @example city-uuid */
5577
- cityId?: Record<string, never>;
5578
- /** @example 52.52 */
5579
- locationLat?: Record<string, never>;
5580
- /** @example 13.405 */
5581
- locationLong?: Record<string, never>;
5582
- /** @example +49 30 12345678 */
5583
- phone?: Record<string, never>;
5584
- /** @example hello@soberspot.com */
5585
- email?: Record<string, never>;
5586
- /** @example https://soberspot.com */
5587
- website?: Record<string, never>;
5588
- /** @example https://instagram.com/soberspot */
5589
- instagramUrl?: Record<string, never>;
5590
- /** @example https://example.com/logo.jpg */
5591
- profileImage?: Record<string, never>;
5592
- /** @example https://example.com/banner.jpg */
5593
- bannerImage?: Record<string, never>;
5515
+ status: "ACTIVE" | "TRIALING" | "PAST_DUE" | "CANCELLED" | "PAUSED";
5594
5516
  /**
5595
- * @example [
5596
- * "https://example.com/photo1.jpg",
5597
- * "https://example.com/photo2.jpg"
5598
- * ]
5517
+ * @description Stripe customer ID
5518
+ * @example cus_1234567890
5599
5519
  */
5600
- photos: string[];
5520
+ stripeCustomerId?: Record<string, never>;
5601
5521
  /**
5602
- * @example {
5603
- * "mon": "09:00-17:00",
5604
- * "tue": "09:00-17:00",
5605
- * "sat": "10:00-15:00"
5606
- * }
5522
+ * @description Stripe subscription ID
5523
+ * @example sub_1234567890
5607
5524
  */
5608
- openingHours?: Record<string, never>;
5609
- /** @example true */
5610
- isActive: boolean;
5611
- /** @example false */
5612
- isVerified: boolean;
5613
- /** @example false */
5614
- isFeatured: boolean;
5615
- /** @example true */
5616
- isPartner: boolean;
5525
+ stripeSubscriptionId?: Record<string, never>;
5617
5526
  /**
5618
- * Format: date-time
5619
- * @example 2024-01-01T00:00:00.000Z
5527
+ * @description Stripe price ID
5528
+ * @example price_1234567890
5620
5529
  */
5621
- createdAt: string;
5530
+ stripePriceId?: Record<string, never>;
5622
5531
  /**
5623
- * Format: date-time
5532
+ * @description Current billing period start date
5624
5533
  * @example 2024-01-01T00:00:00.000Z
5625
5534
  */
5626
- updatedAt: string;
5627
- };
5628
- OfferResponseDto: {
5629
- /** @example offer-123 */
5630
- id: string;
5631
- /** @example business-123 */
5632
- businessId: string;
5633
- /** @example 20% off all mocktails */
5634
- title: string;
5635
- /** @example Show your GrowSober app to get 20% off */
5636
- description?: Record<string, never>;
5535
+ currentPeriodStart?: Record<string, never>;
5637
5536
  /**
5638
- * @example PERCENTAGE
5639
- * @enum {string}
5537
+ * @description Current billing period end date
5538
+ * @example 2024-02-01T00:00:00.000Z
5640
5539
  */
5641
- discountType?: "PERCENTAGE" | "FIXED_AMOUNT" | "FREE_ITEM" | "BOGO";
5642
- /** @example 20.00 */
5643
- discountValue?: Record<string, never>;
5644
- /** @example GROWSOBER20 */
5645
- discountCode?: Record<string, never>;
5540
+ currentPeriodEnd?: Record<string, never>;
5646
5541
  /**
5647
- * Format: date-time
5542
+ * @description Whether subscription will cancel at end of period
5543
+ * @example false
5544
+ */
5545
+ cancelAtPeriodEnd: boolean;
5546
+ /**
5547
+ * @description Cancellation date
5548
+ * @example 2024-01-15T00:00:00.000Z
5549
+ */
5550
+ cancelledAt?: Record<string, never>;
5551
+ /**
5552
+ * @description Trial start date
5648
5553
  * @example 2024-01-01T00:00:00.000Z
5649
5554
  */
5650
- validFrom: string;
5651
- /** @example 2024-12-31T23:59:59.000Z */
5652
- validTo?: Record<string, never>;
5653
- /** @example Valid for dine-in only. Cannot be combined with other offers. */
5654
- terms?: Record<string, never>;
5655
- /** @example 100 */
5656
- maxRedemptions?: Record<string, never>;
5657
- /** @example 25 */
5658
- redemptionCount: number;
5659
- /** @example 1 */
5660
- perUserLimit?: Record<string, never>;
5661
- /** @example false */
5662
- premiumOnly: boolean;
5663
- /** @example true */
5664
- isActive: boolean;
5555
+ trialStart?: Record<string, never>;
5556
+ /**
5557
+ * @description Trial end date
5558
+ * @example 2024-01-14T00:00:00.000Z
5559
+ */
5560
+ trialEnd?: Record<string, never>;
5561
+ /**
5562
+ * @description Whether user has already used their trial
5563
+ * @example false
5564
+ */
5565
+ hadTrial: boolean;
5665
5566
  /**
5666
5567
  * Format: date-time
5568
+ * @description Subscription creation date
5667
5569
  * @example 2024-01-01T00:00:00.000Z
5668
5570
  */
5669
5571
  createdAt: string;
5670
5572
  /**
5671
5573
  * Format: date-time
5672
- * @example 2024-01-01T00:00:00.000Z
5673
- */
5674
- updatedAt: string;
5675
- };
5676
- EventCityDto: {
5677
- /** @example city-uuid */
5678
- id: string;
5679
- /** @example Lisbon */
5680
- name: string;
5681
- /** @example Portugal */
5682
- country: string;
5683
- };
5684
- EventVenueDto: {
5685
- /** @example venue-uuid */
5686
- id: string;
5687
- /** @example The Coffee Place */
5688
- name: string;
5689
- /** @example the-coffee-place */
5690
- slug: string;
5691
- /** @example https://example.com/image.jpg */
5692
- profileImage?: string;
5693
- };
5694
- EventCreatorDto: {
5695
- /** @example creator-uuid */
5696
- id: string;
5697
- /** @example John Doe */
5698
- displayName: string;
5699
- /** @example john-doe */
5700
- slug: string;
5701
- /** @example https://example.com/avatar.jpg */
5702
- avatarUrl?: string;
5703
- };
5704
- EventBrandDto: {
5705
- /** @example brand-uuid */
5706
- id: string;
5707
- /** @example Wellness Co */
5708
- name: string;
5709
- /** @example wellness-co */
5710
- slug: string;
5711
- /** @example https://example.com/logo.png */
5712
- logoUrl?: string;
5713
- };
5714
- EventResponseDto: {
5715
- /** @example event-123 */
5716
- id: string;
5717
- /** @example Morning Coffee & Connection */
5718
- title: string;
5719
- /** @example morning-coffee-and-connection */
5720
- slug?: Record<string, never>;
5721
- /** @example Join us for a morning coffee */
5722
- description?: Record<string, never>;
5723
- /** @example https://example.com/banner.jpg */
5724
- bannerImage?: Record<string, never>;
5725
- /**
5726
- * Format: date-time
5727
- * @example 2024-03-15T10:00:00.000Z
5728
- */
5729
- startDate: string;
5730
- /** @example 2024-03-15T12:00:00.000Z */
5731
- endDate?: Record<string, never>;
5732
- /** @example Europe/Berlin */
5733
- timezone?: Record<string, never>;
5734
- /** @example false */
5735
- isRecurring: boolean;
5736
- /** @example FREQ=WEEKLY;BYDAY=SA */
5737
- recurrenceRule?: Record<string, never>;
5738
- /** @example The Coffee Place */
5739
- locationName?: Record<string, never>;
5740
- /** @example Alexanderplatz 1, Berlin */
5741
- locationAddress?: Record<string, never>;
5742
- /** @example 52.52 */
5743
- locationLat?: Record<string, never>;
5744
- /** @example 13.405 */
5745
- locationLong?: Record<string, never>;
5746
- /** @example city-uuid */
5747
- cityId?: Record<string, never>;
5748
- /** @example false */
5749
- isOnline: boolean;
5750
- /** @example https://zoom.us/j/123456789 */
5751
- onlineUrl?: Record<string, never>;
5752
- /** @example 20 */
5753
- totalSpots: number;
5754
- /** @example 15 */
5755
- availableSpots: number;
5756
- /** @example true */
5757
- isFree: boolean;
5758
- /** @example 10.00 */
5759
- price?: Record<string, never>;
5760
- /** @example EUR */
5761
- currency: string;
5762
- /** @example hub-uuid */
5763
- hubId?: Record<string, never>;
5764
- /**
5765
- * @description Venue where event takes place
5766
- * @example venue-uuid
5767
- */
5768
- venueId?: Record<string, never>;
5769
- /**
5770
- * @description Creator/facilitator of the event
5771
- * @example creator-uuid
5772
- */
5773
- creatorId?: Record<string, never>;
5774
- /**
5775
- * @description Sponsor brand of the event
5776
- * @example brand-uuid
5777
- */
5778
- sponsorBrandId?: Record<string, never>;
5779
- /**
5780
- * @description Type of gathering
5781
- * @enum {string}
5782
- */
5783
- gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
5784
- /** @enum {string} */
5785
- visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
5786
- /** @example false */
5787
- requiresApproval: boolean;
5788
- /** @example true */
5789
- allowWaitlist: boolean;
5790
- /** @example https://chat.whatsapp.com/... */
5791
- whatsappGroup?: Record<string, never>;
5792
- /** @example https://eventbrite.com/... */
5793
- externalUrl?: Record<string, never>;
5794
- /** @enum {string} */
5795
- status: "DRAFT" | "PUBLISHED" | "CANCELLED" | "COMPLETED";
5796
- /** @example false */
5797
- isFeatured: boolean;
5798
- /** @example false */
5799
- isCancelled: boolean;
5800
- /** @example false */
5801
- isAmbient: boolean;
5802
- /**
5803
- * @description Ambient event category
5804
- * @example COFFEE
5805
- */
5806
- ambientCategory?: Record<string, never>;
5807
- /**
5808
- * @description Event vibe/atmosphere
5809
- * @enum {string}
5810
- */
5811
- vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
5812
- /** @description City where event takes place */
5813
- city?: components["schemas"]["EventCityDto"];
5814
- /** @description Venue where event takes place */
5815
- venue?: components["schemas"]["EventVenueDto"];
5816
- /** @description Creator/facilitator of the event */
5817
- creator?: components["schemas"]["EventCreatorDto"];
5818
- /** @description Sponsor brand of the event */
5819
- sponsorBrand?: components["schemas"]["EventBrandDto"];
5820
- /** @example 5 */
5821
- bookingCount: number;
5822
- /** @example 3 */
5823
- checkinCount: number;
5824
- /**
5825
- * Format: date-time
5826
- * @example 2024-01-01T00:00:00.000Z
5827
- */
5828
- createdAt: string;
5829
- /** @example 2024-01-01T00:00:00.000Z */
5830
- publishedAt?: Record<string, never>;
5831
- };
5832
- RedeemOfferDto: {
5833
- /** @example Any additional notes or verification code */
5834
- notes?: string;
5835
- };
5836
- SubscriptionResponseDto: {
5837
- /**
5838
- * @description Subscription ID
5839
- * @example sub_1234567890
5840
- */
5841
- id: string;
5842
- /**
5843
- * @description User ID
5844
- * @example user-123
5845
- */
5846
- userId: string;
5847
- /**
5848
- * @description Subscription tier
5849
- * @example PREMIUM
5850
- * @enum {string}
5851
- */
5852
- tier: "FREE" | "PREMIUM";
5853
- /**
5854
- * @description Subscription status
5855
- * @example ACTIVE
5856
- * @enum {string}
5857
- */
5858
- status: "ACTIVE" | "TRIALING" | "PAST_DUE" | "CANCELLED" | "PAUSED";
5859
- /**
5860
- * @description Stripe customer ID
5861
- * @example cus_1234567890
5862
- */
5863
- stripeCustomerId?: Record<string, never>;
5864
- /**
5865
- * @description Stripe subscription ID
5866
- * @example sub_1234567890
5867
- */
5868
- stripeSubscriptionId?: Record<string, never>;
5869
- /**
5870
- * @description Stripe price ID
5871
- * @example price_1234567890
5872
- */
5873
- stripePriceId?: Record<string, never>;
5874
- /**
5875
- * @description Current billing period start date
5876
- * @example 2024-01-01T00:00:00.000Z
5877
- */
5878
- currentPeriodStart?: Record<string, never>;
5879
- /**
5880
- * @description Current billing period end date
5881
- * @example 2024-02-01T00:00:00.000Z
5882
- */
5883
- currentPeriodEnd?: Record<string, never>;
5884
- /**
5885
- * @description Whether subscription will cancel at end of period
5886
- * @example false
5887
- */
5888
- cancelAtPeriodEnd: boolean;
5889
- /**
5890
- * @description Cancellation date
5891
- * @example 2024-01-15T00:00:00.000Z
5892
- */
5893
- cancelledAt?: Record<string, never>;
5894
- /**
5895
- * @description Trial start date
5896
- * @example 2024-01-01T00:00:00.000Z
5897
- */
5898
- trialStart?: Record<string, never>;
5899
- /**
5900
- * @description Trial end date
5901
- * @example 2024-01-14T00:00:00.000Z
5902
- */
5903
- trialEnd?: Record<string, never>;
5904
- /**
5905
- * @description Whether user has already used their trial
5906
- * @example false
5907
- */
5908
- hadTrial: boolean;
5909
- /**
5910
- * Format: date-time
5911
- * @description Subscription creation date
5912
- * @example 2024-01-01T00:00:00.000Z
5913
- */
5914
- createdAt: string;
5915
- /**
5916
- * Format: date-time
5917
- * @description Last update date
5574
+ * @description Last update date
5918
5575
  * @example 2024-01-01T00:00:00.000Z
5919
5576
  */
5920
5577
  updatedAt: string;
@@ -6693,26 +6350,78 @@ export interface components {
6693
6350
  */
6694
6351
  isActive?: boolean;
6695
6352
  };
6696
- CreateHubDto: {
6697
- /** @example Berlin Sober Squad */
6698
- name: string;
6699
- /** @example berlin-sober-squad */
6700
- slug?: string;
6701
- /** @example A community for sober-curious people in Berlin */
6702
- description?: string;
6703
- /** @example https://example.com/banner.jpg */
6704
- bannerImage?: string;
6705
- /** @example https://example.com/profile.jpg */
6706
- profileImage?: string;
6707
- /** @example city-uuid */
6708
- cityId?: string;
6709
- /** @example Alexanderplatz 1, Berlin */
6710
- address?: string;
6711
- /** @example 52.52 */
6712
- locationLat?: number;
6713
- /** @example 13.405 */
6714
- locationLong?: number;
6715
- /** @example https://chat.whatsapp.com/... */
6353
+ OfferResponseDto: {
6354
+ /** @example offer-123 */
6355
+ id: string;
6356
+ /** @example venue-123 */
6357
+ venueId: string;
6358
+ /** @example 20% off all mocktails */
6359
+ title: string;
6360
+ /** @example Show your GrowSober app to get 20% off */
6361
+ description?: Record<string, never>;
6362
+ /**
6363
+ * @example PERCENTAGE
6364
+ * @enum {string}
6365
+ */
6366
+ discountType?: "PERCENTAGE" | "FIXED_AMOUNT" | "FREE_ITEM" | "BOGO";
6367
+ /** @example 20.00 */
6368
+ discountValue?: Record<string, never>;
6369
+ /** @example GROWSOBER20 */
6370
+ discountCode?: Record<string, never>;
6371
+ /**
6372
+ * Format: date-time
6373
+ * @example 2024-01-01T00:00:00.000Z
6374
+ */
6375
+ validFrom: string;
6376
+ /** @example 2024-12-31T23:59:59.000Z */
6377
+ validTo?: Record<string, never>;
6378
+ /** @example Valid for dine-in only. Cannot be combined with other offers. */
6379
+ terms?: Record<string, never>;
6380
+ /** @example 100 */
6381
+ maxRedemptions?: Record<string, never>;
6382
+ /** @example 25 */
6383
+ redemptionCount: number;
6384
+ /** @example 1 */
6385
+ perUserLimit?: Record<string, never>;
6386
+ /** @example false */
6387
+ premiumOnly: boolean;
6388
+ /** @example true */
6389
+ isActive: boolean;
6390
+ /**
6391
+ * Format: date-time
6392
+ * @example 2024-01-01T00:00:00.000Z
6393
+ */
6394
+ createdAt: string;
6395
+ /**
6396
+ * Format: date-time
6397
+ * @example 2024-01-01T00:00:00.000Z
6398
+ */
6399
+ updatedAt: string;
6400
+ };
6401
+ RedeemOfferDto: {
6402
+ /** @example Any additional notes or verification code */
6403
+ notes?: string;
6404
+ };
6405
+ CreateHubDto: {
6406
+ /** @example Berlin Sober Squad */
6407
+ name: string;
6408
+ /** @example berlin-sober-squad */
6409
+ slug?: string;
6410
+ /** @example A community for sober-curious people in Berlin */
6411
+ description?: string;
6412
+ /** @example https://example.com/banner.jpg */
6413
+ bannerImage?: string;
6414
+ /** @example https://example.com/profile.jpg */
6415
+ profileImage?: string;
6416
+ /** @example city-uuid */
6417
+ cityId?: string;
6418
+ /** @example Alexanderplatz 1, Berlin */
6419
+ address?: string;
6420
+ /** @example 52.52 */
6421
+ locationLat?: number;
6422
+ /** @example 13.405 */
6423
+ locationLong?: number;
6424
+ /** @example https://chat.whatsapp.com/... */
6716
6425
  whatsappGroup?: string;
6717
6426
  /** @example https://instagram.com/berlinsobersquad */
6718
6427
  instagramUrl?: string;
@@ -6893,6 +6602,162 @@ export interface components {
6893
6602
  */
6894
6603
  vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
6895
6604
  };
6605
+ EventCityDto: {
6606
+ /** @example city-uuid */
6607
+ id: string;
6608
+ /** @example Lisbon */
6609
+ name: string;
6610
+ /** @example Portugal */
6611
+ country: string;
6612
+ };
6613
+ EventVenueDto: {
6614
+ /** @example venue-uuid */
6615
+ id: string;
6616
+ /** @example The Coffee Place */
6617
+ name: string;
6618
+ /** @example the-coffee-place */
6619
+ slug: string;
6620
+ /** @example https://example.com/image.jpg */
6621
+ profileImage?: string;
6622
+ };
6623
+ EventCreatorDto: {
6624
+ /** @example creator-uuid */
6625
+ id: string;
6626
+ /** @example John Doe */
6627
+ displayName: string;
6628
+ /** @example john-doe */
6629
+ slug: string;
6630
+ /** @example https://example.com/avatar.jpg */
6631
+ avatarUrl?: string;
6632
+ };
6633
+ EventBrandDto: {
6634
+ /** @example brand-uuid */
6635
+ id: string;
6636
+ /** @example Wellness Co */
6637
+ name: string;
6638
+ /** @example wellness-co */
6639
+ slug: string;
6640
+ /** @example https://example.com/logo.png */
6641
+ logoUrl?: string;
6642
+ };
6643
+ EventResponseDto: {
6644
+ /** @example event-123 */
6645
+ id: string;
6646
+ /** @example Morning Coffee & Connection */
6647
+ title: string;
6648
+ /** @example morning-coffee-and-connection */
6649
+ slug?: Record<string, never>;
6650
+ /** @example Join us for a morning coffee */
6651
+ description?: Record<string, never>;
6652
+ /** @example https://example.com/banner.jpg */
6653
+ bannerImage?: Record<string, never>;
6654
+ /**
6655
+ * Format: date-time
6656
+ * @example 2024-03-15T10:00:00.000Z
6657
+ */
6658
+ startDate: string;
6659
+ /** @example 2024-03-15T12:00:00.000Z */
6660
+ endDate?: Record<string, never>;
6661
+ /** @example Europe/Berlin */
6662
+ timezone?: Record<string, never>;
6663
+ /** @example false */
6664
+ isRecurring: boolean;
6665
+ /** @example FREQ=WEEKLY;BYDAY=SA */
6666
+ recurrenceRule?: Record<string, never>;
6667
+ /** @example The Coffee Place */
6668
+ locationName?: Record<string, never>;
6669
+ /** @example Alexanderplatz 1, Berlin */
6670
+ locationAddress?: Record<string, never>;
6671
+ /** @example 52.52 */
6672
+ locationLat?: Record<string, never>;
6673
+ /** @example 13.405 */
6674
+ locationLong?: Record<string, never>;
6675
+ /** @example city-uuid */
6676
+ cityId?: Record<string, never>;
6677
+ /** @example false */
6678
+ isOnline: boolean;
6679
+ /** @example https://zoom.us/j/123456789 */
6680
+ onlineUrl?: Record<string, never>;
6681
+ /** @example 20 */
6682
+ totalSpots: number;
6683
+ /** @example 15 */
6684
+ availableSpots: number;
6685
+ /** @example true */
6686
+ isFree: boolean;
6687
+ /** @example 10.00 */
6688
+ price?: Record<string, never>;
6689
+ /** @example EUR */
6690
+ currency: string;
6691
+ /** @example hub-uuid */
6692
+ hubId?: Record<string, never>;
6693
+ /**
6694
+ * @description Venue where event takes place
6695
+ * @example venue-uuid
6696
+ */
6697
+ venueId?: Record<string, never>;
6698
+ /**
6699
+ * @description Creator/facilitator of the event
6700
+ * @example creator-uuid
6701
+ */
6702
+ creatorId?: Record<string, never>;
6703
+ /**
6704
+ * @description Sponsor brand of the event
6705
+ * @example brand-uuid
6706
+ */
6707
+ sponsorBrandId?: Record<string, never>;
6708
+ /**
6709
+ * @description Type of gathering
6710
+ * @enum {string}
6711
+ */
6712
+ gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
6713
+ /** @enum {string} */
6714
+ visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
6715
+ /** @example false */
6716
+ requiresApproval: boolean;
6717
+ /** @example true */
6718
+ allowWaitlist: boolean;
6719
+ /** @example https://chat.whatsapp.com/... */
6720
+ whatsappGroup?: Record<string, never>;
6721
+ /** @example https://eventbrite.com/... */
6722
+ externalUrl?: Record<string, never>;
6723
+ /** @enum {string} */
6724
+ status: "DRAFT" | "PUBLISHED" | "CANCELLED" | "COMPLETED";
6725
+ /** @example false */
6726
+ isFeatured: boolean;
6727
+ /** @example false */
6728
+ isCancelled: boolean;
6729
+ /** @example false */
6730
+ isAmbient: boolean;
6731
+ /**
6732
+ * @description Ambient event category
6733
+ * @example COFFEE
6734
+ */
6735
+ ambientCategory?: Record<string, never>;
6736
+ /**
6737
+ * @description Event vibe/atmosphere
6738
+ * @enum {string}
6739
+ */
6740
+ vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
6741
+ /** @description City where event takes place */
6742
+ city?: components["schemas"]["EventCityDto"];
6743
+ /** @description Venue where event takes place */
6744
+ venue?: components["schemas"]["EventVenueDto"];
6745
+ /** @description Creator/facilitator of the event */
6746
+ creator?: components["schemas"]["EventCreatorDto"];
6747
+ /** @description Sponsor brand of the event */
6748
+ sponsorBrand?: components["schemas"]["EventBrandDto"];
6749
+ /** @example 5 */
6750
+ bookingCount: number;
6751
+ /** @example 3 */
6752
+ checkinCount: number;
6753
+ /**
6754
+ * Format: date-time
6755
+ * @example 2024-01-01T00:00:00.000Z
6756
+ */
6757
+ createdAt: string;
6758
+ /** @example 2024-01-01T00:00:00.000Z */
6759
+ publishedAt?: Record<string, never>;
6760
+ };
6896
6761
  UpdateEventDto: {
6897
6762
  /** @example Morning Coffee & Connection */
6898
6763
  title?: string;
@@ -7103,30 +6968,144 @@ export interface components {
7103
6968
  */
7104
6969
  updatedAt: string;
7105
6970
  };
7106
- VenueOwnerUserDto: {
7107
- /** @example user-123 */
7108
- id: string;
7109
- /** @example John Doe */
7110
- name?: Record<string, never>;
7111
- /** @example john@example.com */
7112
- email?: Record<string, never>;
7113
- /** @example https://example.com/avatar.jpg */
7114
- profileImage?: Record<string, never>;
7115
- };
7116
- VenueOwnerResponseDto: {
7117
- /** @example owner-123 */
7118
- id: string;
7119
- /** @example venue-123 */
7120
- venueId: string;
7121
- /** @example user-123 */
7122
- userId: string;
6971
+ CreateVenueDto: {
6972
+ /** @example The Sober Spot */
6973
+ name: string;
6974
+ /** @example the-sober-spot */
6975
+ slug: string;
6976
+ /** @example A cozy coffee shop with amazing mocktails */
6977
+ description?: string;
7123
6978
  /**
7124
- * @example OWNER
6979
+ * @example COFFEE_SHOP
7125
6980
  * @enum {string}
7126
6981
  */
7127
- role: "OWNER" | "MANAGER";
7128
- user?: components["schemas"]["VenueOwnerUserDto"];
7129
- /**
6982
+ type: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
6983
+ /** @example true */
6984
+ hasAfDrinks?: boolean;
6985
+ /** @example false */
6986
+ isAfVenue?: boolean;
6987
+ /**
6988
+ * @example [
6989
+ * "Great mocktail menu",
6990
+ * "Quiet atmosphere"
6991
+ * ]
6992
+ */
6993
+ afHighlights?: string[];
6994
+ /** @example 123 Main Street, Lisbon */
6995
+ address?: string;
6996
+ /** @example city-uuid */
6997
+ cityId?: string;
6998
+ /** @example 38.7223 */
6999
+ locationLat?: number;
7000
+ /** @example -9.1393 */
7001
+ locationLong?: number;
7002
+ /** @example +351 21 123 4567 */
7003
+ phone?: string;
7004
+ /** @example hello@soberspot.com */
7005
+ email?: string;
7006
+ /** @example https://soberspot.com */
7007
+ website?: string;
7008
+ /** @example @soberspot */
7009
+ instagram?: string;
7010
+ /** @example https://example.com/logo.jpg */
7011
+ profileImage?: string;
7012
+ /** @example https://example.com/banner.jpg */
7013
+ bannerImage?: string;
7014
+ /**
7015
+ * @example [
7016
+ * "https://example.com/photo1.jpg"
7017
+ * ]
7018
+ */
7019
+ photos?: string[];
7020
+ /**
7021
+ * @example {
7022
+ * "mon": "09:00-17:00",
7023
+ * "tue": "09:00-17:00"
7024
+ * }
7025
+ */
7026
+ openingHours?: Record<string, never>;
7027
+ };
7028
+ UpdateVenueDto: {
7029
+ /** @example The Sober Spot */
7030
+ name?: string;
7031
+ /** @example the-sober-spot */
7032
+ slug?: string;
7033
+ /** @example A cozy coffee shop with amazing mocktails */
7034
+ description?: string;
7035
+ /**
7036
+ * @example COFFEE_SHOP
7037
+ * @enum {string}
7038
+ */
7039
+ type?: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
7040
+ /** @example true */
7041
+ hasAfDrinks?: boolean;
7042
+ /** @example false */
7043
+ isAfVenue?: boolean;
7044
+ /**
7045
+ * @example [
7046
+ * "Great mocktail menu",
7047
+ * "Quiet atmosphere"
7048
+ * ]
7049
+ */
7050
+ afHighlights?: string[];
7051
+ /** @example 123 Main Street, Lisbon */
7052
+ address?: string;
7053
+ /** @example city-uuid */
7054
+ cityId?: string;
7055
+ /** @example 38.7223 */
7056
+ locationLat?: number;
7057
+ /** @example -9.1393 */
7058
+ locationLong?: number;
7059
+ /** @example +351 21 123 4567 */
7060
+ phone?: string;
7061
+ /** @example hello@soberspot.com */
7062
+ email?: string;
7063
+ /** @example https://soberspot.com */
7064
+ website?: string;
7065
+ /** @example @soberspot */
7066
+ instagram?: string;
7067
+ /** @example https://example.com/logo.jpg */
7068
+ profileImage?: string;
7069
+ /** @example https://example.com/banner.jpg */
7070
+ bannerImage?: string;
7071
+ /**
7072
+ * @example [
7073
+ * "https://example.com/photo1.jpg"
7074
+ * ]
7075
+ */
7076
+ photos?: string[];
7077
+ /**
7078
+ * @example {
7079
+ * "mon": "09:00-17:00",
7080
+ * "tue": "09:00-17:00"
7081
+ * }
7082
+ */
7083
+ openingHours?: Record<string, never>;
7084
+ };
7085
+ VenueOwnerUserDto: {
7086
+ /** @example user-123 */
7087
+ id: string;
7088
+ /** @example John Doe */
7089
+ name?: Record<string, never>;
7090
+ /** @example john@example.com */
7091
+ email?: Record<string, never>;
7092
+ /** @example https://example.com/avatar.jpg */
7093
+ profileImage?: Record<string, never>;
7094
+ };
7095
+ VenueOwnerResponseDto: {
7096
+ /** @example owner-123 */
7097
+ id: string;
7098
+ /** @example venue-123 */
7099
+ venueId: string;
7100
+ /** @example user-123 */
7101
+ userId: string;
7102
+ /**
7103
+ * @example OWNER
7104
+ * @enum {string}
7105
+ */
7106
+ role: "OWNER" | "MANAGER";
7107
+ user?: components["schemas"]["VenueOwnerUserDto"];
7108
+ /**
7130
7109
  * Format: date-time
7131
7110
  * @example 2024-01-01T00:00:00.000Z
7132
7111
  */
@@ -7660,50 +7639,6 @@ export interface components {
7660
7639
  */
7661
7640
  authorName?: string;
7662
7641
  };
7663
- AdminCreateBusinessDto: {
7664
- /**
7665
- * @description Business name
7666
- * @example The Good Life Cafe
7667
- */
7668
- name: string;
7669
- /**
7670
- * @description Business description
7671
- * @example Amazing alcohol-free cafe in the heart of London
7672
- */
7673
- description?: string;
7674
- /**
7675
- * @description Business type
7676
- * @enum {string}
7677
- */
7678
- type: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
7679
- /**
7680
- * @description Has alcohol-free drinks
7681
- * @default true
7682
- */
7683
- hasAfDrinks: boolean;
7684
- /**
7685
- * @description Completely alcohol-free venue
7686
- * @default false
7687
- */
7688
- isAfVenue: boolean;
7689
- /** @description City ID */
7690
- cityId?: string;
7691
- /**
7692
- * @description Address
7693
- * @example 123 Main St, London
7694
- */
7695
- address?: string;
7696
- /**
7697
- * @description Partner status
7698
- * @default false
7699
- */
7700
- isPartner: boolean;
7701
- /**
7702
- * @description Featured status
7703
- * @default false
7704
- */
7705
- isFeatured: boolean;
7706
- };
7707
7642
  AdminOverviewStatsDto: {
7708
7643
  /** @description Total number of users */
7709
7644
  totalUsers: number;
@@ -7719,8 +7654,8 @@ export interface components {
7719
7654
  upcomingEvents: number;
7720
7655
  /** @description Total bookings */
7721
7656
  totalBookings: number;
7722
- /** @description Total businesses */
7723
- totalBusinesses: number;
7657
+ /** @description Total venues */
7658
+ totalVenues: number;
7724
7659
  /** @description Total library content */
7725
7660
  totalContent: number;
7726
7661
  };
@@ -9615,6 +9550,11 @@ export interface components {
9615
9550
  deliveryMethod: "VIDEO_CALL" | "PHONE_CALL" | "IN_PERSON" | "HYBRID";
9616
9551
  /** @example London, UK */
9617
9552
  locationDetails?: string;
9553
+ /**
9554
+ * @description Venue that offers this product
9555
+ * @example venue-uuid
9556
+ */
9557
+ venueId?: string;
9618
9558
  };
9619
9559
  UpdateProductDto: {
9620
9560
  /** @example 1:1 Coaching Session */
@@ -9664,6 +9604,11 @@ export interface components {
9664
9604
  deliveryMethod?: "VIDEO_CALL" | "PHONE_CALL" | "IN_PERSON" | "HYBRID";
9665
9605
  /** @example London, UK */
9666
9606
  locationDetails?: string;
9607
+ /**
9608
+ * @description Venue that offers this product
9609
+ * @example venue-uuid
9610
+ */
9611
+ venueId?: string;
9667
9612
  /** @example true */
9668
9613
  isActive?: boolean;
9669
9614
  /** @example false */
@@ -10285,6 +10230,75 @@ export interface operations {
10285
10230
  };
10286
10231
  };
10287
10232
  };
10233
+ UsersController_sendPhoneOtp: {
10234
+ parameters: {
10235
+ query?: never;
10236
+ header?: never;
10237
+ path?: never;
10238
+ cookie?: never;
10239
+ };
10240
+ requestBody: {
10241
+ content: {
10242
+ "application/json": components["schemas"]["UserSendOtpDto"];
10243
+ };
10244
+ };
10245
+ responses: {
10246
+ /** @description OTP sent successfully */
10247
+ 200: {
10248
+ headers: {
10249
+ [name: string]: unknown;
10250
+ };
10251
+ content: {
10252
+ "application/json": components["schemas"]["UserOtpSentResponseDto"];
10253
+ };
10254
+ };
10255
+ /** @description Phone number already in use */
10256
+ 409: {
10257
+ headers: {
10258
+ [name: string]: unknown;
10259
+ };
10260
+ content?: never;
10261
+ };
10262
+ };
10263
+ };
10264
+ UsersController_verifyPhoneOtp: {
10265
+ parameters: {
10266
+ query?: never;
10267
+ header?: never;
10268
+ path?: never;
10269
+ cookie?: never;
10270
+ };
10271
+ requestBody: {
10272
+ content: {
10273
+ "application/json": components["schemas"]["UserVerifyOtpDto"];
10274
+ };
10275
+ };
10276
+ responses: {
10277
+ /** @description Phone number verified and updated */
10278
+ 200: {
10279
+ headers: {
10280
+ [name: string]: unknown;
10281
+ };
10282
+ content: {
10283
+ "application/json": components["schemas"]["UserResponseDto"];
10284
+ };
10285
+ };
10286
+ /** @description Invalid verification code */
10287
+ 400: {
10288
+ headers: {
10289
+ [name: string]: unknown;
10290
+ };
10291
+ content?: never;
10292
+ };
10293
+ /** @description Phone number already in use */
10294
+ 409: {
10295
+ headers: {
10296
+ [name: string]: unknown;
10297
+ };
10298
+ content?: never;
10299
+ };
10300
+ };
10301
+ };
10288
10302
  UsersController_getPublicProfile: {
10289
10303
  parameters: {
10290
10304
  query?: never;
@@ -10644,319 +10658,12 @@ export interface operations {
10644
10658
  };
10645
10659
  /** @description Premium subscription required */
10646
10660
  403: {
10647
- headers: {
10648
- [name: string]: unknown;
10649
- };
10650
- content?: never;
10651
- };
10652
- /** @description Content not found */
10653
- 404: {
10654
- headers: {
10655
- [name: string]: unknown;
10656
- };
10657
- content?: never;
10658
- };
10659
- };
10660
- };
10661
- LibraryController_markAsCompleted: {
10662
- parameters: {
10663
- query?: never;
10664
- header?: never;
10665
- path: {
10666
- /** @description Content ID */
10667
- id: string;
10668
- };
10669
- cookie?: never;
10670
- };
10671
- requestBody?: never;
10672
- responses: {
10673
- /** @description Content marked as completed */
10674
- 200: {
10675
- headers: {
10676
- [name: string]: unknown;
10677
- };
10678
- content: {
10679
- "application/json": components["schemas"]["LibraryProgressResponseDto"];
10680
- };
10681
- };
10682
- /** @description Premium subscription required */
10683
- 403: {
10684
- headers: {
10685
- [name: string]: unknown;
10686
- };
10687
- content?: never;
10688
- };
10689
- /** @description Content not found */
10690
- 404: {
10691
- headers: {
10692
- [name: string]: unknown;
10693
- };
10694
- content?: never;
10695
- };
10696
- };
10697
- };
10698
- LibraryController_toggleLike: {
10699
- parameters: {
10700
- query?: never;
10701
- header?: never;
10702
- path: {
10703
- /** @description Content ID */
10704
- id: string;
10705
- };
10706
- cookie?: never;
10707
- };
10708
- requestBody?: never;
10709
- responses: {
10710
- /** @description Content liked/unliked */
10711
- 200: {
10712
- headers: {
10713
- [name: string]: unknown;
10714
- };
10715
- content: {
10716
- "application/json": components["schemas"]["LibraryProgressResponseDto"];
10717
- };
10718
- };
10719
- /** @description Premium subscription required */
10720
- 403: {
10721
- headers: {
10722
- [name: string]: unknown;
10723
- };
10724
- content?: never;
10725
- };
10726
- /** @description Content not found */
10727
- 404: {
10728
- headers: {
10729
- [name: string]: unknown;
10730
- };
10731
- content?: never;
10732
- };
10733
- };
10734
- };
10735
- LibraryController_addBookmark: {
10736
- parameters: {
10737
- query?: never;
10738
- header?: never;
10739
- path: {
10740
- /** @description Content ID */
10741
- id: string;
10742
- };
10743
- cookie?: never;
10744
- };
10745
- requestBody?: never;
10746
- responses: {
10747
- /** @description Content bookmarked */
10748
- 200: {
10749
- headers: {
10750
- [name: string]: unknown;
10751
- };
10752
- content: {
10753
- "application/json": components["schemas"]["LibraryProgressResponseDto"];
10754
- };
10755
- };
10756
- /** @description Premium subscription required */
10757
- 403: {
10758
- headers: {
10759
- [name: string]: unknown;
10760
- };
10761
- content?: never;
10762
- };
10763
- /** @description Content not found */
10764
- 404: {
10765
- headers: {
10766
- [name: string]: unknown;
10767
- };
10768
- content?: never;
10769
- };
10770
- };
10771
- };
10772
- LibraryController_removeBookmark: {
10773
- parameters: {
10774
- query?: never;
10775
- header?: never;
10776
- path: {
10777
- /** @description Content ID */
10778
- id: string;
10779
- };
10780
- cookie?: never;
10781
- };
10782
- requestBody?: never;
10783
- responses: {
10784
- /** @description Bookmark removed */
10785
- 200: {
10786
- headers: {
10787
- [name: string]: unknown;
10788
- };
10789
- content: {
10790
- "application/json": components["schemas"]["LibraryProgressResponseDto"];
10791
- };
10792
- };
10793
- /** @description Content not found */
10794
- 404: {
10795
- headers: {
10796
- [name: string]: unknown;
10797
- };
10798
- content?: never;
10799
- };
10800
- };
10801
- };
10802
- BusinessesController_findAll: {
10803
- parameters: {
10804
- query?: {
10805
- /** @description Page number */
10806
- page?: number;
10807
- /** @description Items per page */
10808
- limit?: number;
10809
- /** @description Search by name or description */
10810
- search?: string;
10811
- /** @description Filter by city ID */
10812
- cityId?: string;
10813
- /** @description Filter by business type */
10814
- type?: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
10815
- /** @description Filter businesses with AF drinks */
10816
- hasAfDrinks?: boolean;
10817
- /** @description Filter AF-only venues */
10818
- isAfVenue?: boolean;
10819
- /** @description Filter featured businesses only */
10820
- isFeatured?: boolean;
10821
- /** @description Filter partner businesses only */
10822
- isPartner?: boolean;
10823
- /** @description Latitude for nearby search */
10824
- lat?: number;
10825
- /** @description Longitude for nearby search */
10826
- long?: number;
10827
- /** @description Radius in kilometers for nearby search */
10828
- radius?: number;
10829
- /** @description Sort field */
10830
- sortBy?: string;
10831
- /** @description Sort order */
10832
- sortOrder?: string;
10833
- };
10834
- header?: never;
10835
- path?: never;
10836
- cookie?: never;
10837
- };
10838
- requestBody?: never;
10839
- responses: {
10840
- /** @description List of business partners */
10841
- 200: {
10842
- headers: {
10843
- [name: string]: unknown;
10844
- };
10845
- content?: never;
10846
- };
10847
- };
10848
- };
10849
- BusinessesController_getFeatured: {
10850
- parameters: {
10851
- query?: {
10852
- /** @description Number of businesses to return */
10853
- limit?: number;
10854
- };
10855
- header?: never;
10856
- path?: never;
10857
- cookie?: never;
10858
- };
10859
- requestBody?: never;
10860
- responses: {
10861
- /** @description List of featured business partners */
10862
- 200: {
10863
- headers: {
10864
- [name: string]: unknown;
10865
- };
10866
- content: {
10867
- "application/json": components["schemas"]["BusinessResponseDto"][];
10868
- };
10869
- };
10870
- };
10871
- };
10872
- BusinessesController_getNearby: {
10873
- parameters: {
10874
- query: {
10875
- /** @description Latitude */
10876
- lat: number;
10877
- /** @description Longitude */
10878
- long: number;
10879
- /** @description Search radius in kilometers */
10880
- radius?: number;
10881
- /** @description Number of businesses to return */
10882
- limit?: number;
10883
- };
10884
- header?: never;
10885
- path?: never;
10886
- cookie?: never;
10887
- };
10888
- requestBody?: never;
10889
- responses: {
10890
- /** @description List of nearby businesses */
10891
- 200: {
10892
- headers: {
10893
- [name: string]: unknown;
10894
- };
10895
- content: {
10896
- "application/json": components["schemas"]["BusinessResponseDto"][];
10897
- };
10898
- };
10899
- /** @description Invalid coordinates */
10900
- 400: {
10901
- headers: {
10902
- [name: string]: unknown;
10903
- };
10904
- content?: never;
10905
- };
10906
- };
10907
- };
10908
- BusinessesController_findByIdOrSlug: {
10909
- parameters: {
10910
- query?: never;
10911
- header?: never;
10912
- path: {
10913
- /** @description Business ID (UUID) or slug */
10914
- idOrSlug: string;
10915
- };
10916
- cookie?: never;
10917
- };
10918
- requestBody?: never;
10919
- responses: {
10920
- /** @description Business details */
10921
- 200: {
10922
- headers: {
10923
- [name: string]: unknown;
10924
- };
10925
- content: {
10926
- "application/json": components["schemas"]["BusinessResponseDto"];
10927
- };
10928
- };
10929
- /** @description Business not found */
10930
- 404: {
10931
- headers: {
10932
- [name: string]: unknown;
10933
- };
10934
- content?: never;
10935
- };
10936
- };
10937
- };
10938
- BusinessesController_getBusinessOffers: {
10939
- parameters: {
10940
- query?: never;
10941
- header?: never;
10942
- path: {
10943
- /** @description Business ID or slug */
10944
- idOrSlug: string;
10945
- };
10946
- cookie?: never;
10947
- };
10948
- requestBody?: never;
10949
- responses: {
10950
- /** @description List of business offers */
10951
- 200: {
10952
- headers: {
10953
- [name: string]: unknown;
10954
- };
10955
- content: {
10956
- "application/json": components["schemas"]["OfferResponseDto"][];
10661
+ headers: {
10662
+ [name: string]: unknown;
10957
10663
  };
10664
+ content?: never;
10958
10665
  };
10959
- /** @description Business not found */
10666
+ /** @description Content not found */
10960
10667
  404: {
10961
10668
  headers: {
10962
10669
  [name: string]: unknown;
@@ -10965,84 +10672,72 @@ export interface operations {
10965
10672
  };
10966
10673
  };
10967
10674
  };
10968
- BusinessesController_getBusinessEvents: {
10675
+ LibraryController_markAsCompleted: {
10969
10676
  parameters: {
10970
- query?: {
10971
- /** @description Number of events to return */
10972
- limit?: number;
10973
- };
10677
+ query?: never;
10974
10678
  header?: never;
10975
10679
  path: {
10976
- /** @description Business ID or slug */
10977
- idOrSlug: string;
10680
+ /** @description Content ID */
10681
+ id: string;
10978
10682
  };
10979
10683
  cookie?: never;
10980
10684
  };
10981
10685
  requestBody?: never;
10982
10686
  responses: {
10983
- /** @description List of upcoming events at this venue */
10687
+ /** @description Content marked as completed */
10984
10688
  200: {
10985
10689
  headers: {
10986
10690
  [name: string]: unknown;
10987
10691
  };
10988
10692
  content: {
10989
- "application/json": components["schemas"]["EventResponseDto"][];
10693
+ "application/json": components["schemas"]["LibraryProgressResponseDto"];
10990
10694
  };
10991
10695
  };
10992
- /** @description Business not found */
10993
- 404: {
10696
+ /** @description Premium subscription required */
10697
+ 403: {
10994
10698
  headers: {
10995
10699
  [name: string]: unknown;
10996
10700
  };
10997
10701
  content?: never;
10998
10702
  };
10999
- };
11000
- };
11001
- OffersController_findAll: {
11002
- parameters: {
11003
- query?: {
11004
- /** @description Number of offers to return */
11005
- limit?: number;
11006
- };
11007
- header?: never;
11008
- path?: never;
11009
- cookie?: never;
11010
- };
11011
- requestBody?: never;
11012
- responses: {
11013
- /** @description List of active offers */
11014
- 200: {
10703
+ /** @description Content not found */
10704
+ 404: {
11015
10705
  headers: {
11016
10706
  [name: string]: unknown;
11017
10707
  };
11018
- content: {
11019
- "application/json": components["schemas"]["OfferResponseDto"][];
11020
- };
10708
+ content?: never;
11021
10709
  };
11022
10710
  };
11023
10711
  };
11024
- OffersController_findById: {
10712
+ LibraryController_toggleLike: {
11025
10713
  parameters: {
11026
10714
  query?: never;
11027
10715
  header?: never;
11028
10716
  path: {
11029
- /** @description Offer ID */
10717
+ /** @description Content ID */
11030
10718
  id: string;
11031
10719
  };
11032
10720
  cookie?: never;
11033
10721
  };
11034
10722
  requestBody?: never;
11035
10723
  responses: {
11036
- /** @description Offer details */
10724
+ /** @description Content liked/unliked */
11037
10725
  200: {
11038
10726
  headers: {
11039
10727
  [name: string]: unknown;
11040
10728
  };
11041
10729
  content: {
11042
- "application/json": components["schemas"]["OfferResponseDto"];
10730
+ "application/json": components["schemas"]["LibraryProgressResponseDto"];
11043
10731
  };
11044
10732
  };
11045
- /** @description Offer not found */
10733
+ /** @description Premium subscription required */
10734
+ 403: {
10735
+ headers: {
10736
+ [name: string]: unknown;
10737
+ };
10738
+ content?: never;
10739
+ };
10740
+ /** @description Content not found */
11046
10741
  404: {
11047
10742
  headers: {
11048
10743
  [name: string]: unknown;
@@ -11051,44 +10746,35 @@ export interface operations {
11051
10746
  };
11052
10747
  };
11053
10748
  };
11054
- OffersController_redeemOffer: {
10749
+ LibraryController_addBookmark: {
11055
10750
  parameters: {
11056
10751
  query?: never;
11057
10752
  header?: never;
11058
10753
  path: {
11059
- /** @description Offer ID */
10754
+ /** @description Content ID */
11060
10755
  id: string;
11061
10756
  };
11062
10757
  cookie?: never;
11063
10758
  };
11064
- requestBody: {
11065
- content: {
11066
- "application/json": components["schemas"]["RedeemOfferDto"];
11067
- };
11068
- };
10759
+ requestBody?: never;
11069
10760
  responses: {
11070
- /** @description Offer redeemed successfully */
11071
- 201: {
10761
+ /** @description Content bookmarked */
10762
+ 200: {
11072
10763
  headers: {
11073
10764
  [name: string]: unknown;
11074
10765
  };
11075
- content?: never;
11076
- };
11077
- /** @description Offer expired, limit reached, or invalid */
11078
- 400: {
11079
- headers: {
11080
- [name: string]: unknown;
10766
+ content: {
10767
+ "application/json": components["schemas"]["LibraryProgressResponseDto"];
11081
10768
  };
11082
- content?: never;
11083
10769
  };
11084
- /** @description Premium membership required */
10770
+ /** @description Premium subscription required */
11085
10771
  403: {
11086
10772
  headers: {
11087
10773
  [name: string]: unknown;
11088
10774
  };
11089
10775
  content?: never;
11090
10776
  };
11091
- /** @description Offer not found */
10777
+ /** @description Content not found */
11092
10778
  404: {
11093
10779
  headers: {
11094
10780
  [name: string]: unknown;
@@ -11097,20 +10783,29 @@ export interface operations {
11097
10783
  };
11098
10784
  };
11099
10785
  };
11100
- OffersController_checkCanRedeem: {
10786
+ LibraryController_removeBookmark: {
11101
10787
  parameters: {
11102
10788
  query?: never;
11103
10789
  header?: never;
11104
10790
  path: {
11105
- /** @description Offer ID */
10791
+ /** @description Content ID */
11106
10792
  id: string;
11107
10793
  };
11108
10794
  cookie?: never;
11109
10795
  };
11110
10796
  requestBody?: never;
11111
10797
  responses: {
11112
- /** @description Redemption eligibility status */
10798
+ /** @description Bookmark removed */
11113
10799
  200: {
10800
+ headers: {
10801
+ [name: string]: unknown;
10802
+ };
10803
+ content: {
10804
+ "application/json": components["schemas"]["LibraryProgressResponseDto"];
10805
+ };
10806
+ };
10807
+ /** @description Content not found */
10808
+ 404: {
11114
10809
  headers: {
11115
10810
  [name: string]: unknown;
11116
10811
  };
@@ -12182,12 +11877,12 @@ export interface operations {
12182
11877
  };
12183
11878
  };
12184
11879
  };
12185
- PartnerRewardsController_getRewardsForBusiness: {
11880
+ PartnerRewardsController_getRewardsForVenue: {
12186
11881
  parameters: {
12187
11882
  query?: never;
12188
11883
  header?: never;
12189
11884
  path: {
12190
- businessId: string;
11885
+ venueId: string;
12191
11886
  };
12192
11887
  cookie?: never;
12193
11888
  };
@@ -12271,12 +11966,12 @@ export interface operations {
12271
11966
  };
12272
11967
  };
12273
11968
  };
12274
- BusinessRewardsController_getBusinessRewards: {
11969
+ PartnerVenueRewardsController_getVenueRewards: {
12275
11970
  parameters: {
12276
11971
  query?: never;
12277
11972
  header?: never;
12278
11973
  path: {
12279
- businessId: string;
11974
+ venueId: string;
12280
11975
  };
12281
11976
  cookie?: never;
12282
11977
  };
@@ -12290,12 +11985,12 @@ export interface operations {
12290
11985
  };
12291
11986
  };
12292
11987
  };
12293
- BusinessRewardsController_createReward: {
11988
+ PartnerVenueRewardsController_createReward: {
12294
11989
  parameters: {
12295
11990
  query?: never;
12296
11991
  header?: never;
12297
11992
  path: {
12298
- businessId: string;
11993
+ venueId: string;
12299
11994
  };
12300
11995
  cookie?: never;
12301
11996
  };
@@ -12309,12 +12004,12 @@ export interface operations {
12309
12004
  };
12310
12005
  };
12311
12006
  };
12312
- BusinessRewardsController_updateReward: {
12007
+ PartnerVenueRewardsController_updateReward: {
12313
12008
  parameters: {
12314
12009
  query?: never;
12315
12010
  header?: never;
12316
12011
  path: {
12317
- businessId: string;
12012
+ venueId: string;
12318
12013
  rewardId: string;
12319
12014
  };
12320
12015
  cookie?: never;
@@ -12745,51 +12440,186 @@ export interface operations {
12745
12440
  };
12746
12441
  requestBody: {
12747
12442
  content: {
12748
- "application/json": components["schemas"]["CreateRewardDto"];
12443
+ "application/json": components["schemas"]["CreateRewardDto"];
12444
+ };
12445
+ };
12446
+ responses: {
12447
+ /** @description Reward created */
12448
+ 201: {
12449
+ headers: {
12450
+ [name: string]: unknown;
12451
+ };
12452
+ content: {
12453
+ "application/json": components["schemas"]["RewardResponseDto"];
12454
+ };
12455
+ };
12456
+ /** @description Not authorized */
12457
+ 403: {
12458
+ headers: {
12459
+ [name: string]: unknown;
12460
+ };
12461
+ content?: never;
12462
+ };
12463
+ };
12464
+ };
12465
+ CreatorRewardsController_deleteReward: {
12466
+ parameters: {
12467
+ query?: never;
12468
+ header?: never;
12469
+ path: {
12470
+ /** @description Reward ID */
12471
+ rewardId: string;
12472
+ /** @description Creator ID */
12473
+ creatorId: unknown;
12474
+ };
12475
+ cookie?: never;
12476
+ };
12477
+ requestBody?: never;
12478
+ responses: {
12479
+ /** @description Reward deleted */
12480
+ 200: {
12481
+ headers: {
12482
+ [name: string]: unknown;
12483
+ };
12484
+ content?: never;
12485
+ };
12486
+ /** @description Not authorized */
12487
+ 403: {
12488
+ headers: {
12489
+ [name: string]: unknown;
12490
+ };
12491
+ content?: never;
12492
+ };
12493
+ };
12494
+ };
12495
+ CreatorRewardsController_updateReward: {
12496
+ parameters: {
12497
+ query?: never;
12498
+ header?: never;
12499
+ path: {
12500
+ /** @description Reward ID */
12501
+ rewardId: string;
12502
+ /** @description Creator ID */
12503
+ creatorId: unknown;
12504
+ };
12505
+ cookie?: never;
12506
+ };
12507
+ requestBody: {
12508
+ content: {
12509
+ "application/json": components["schemas"]["UpdateRewardDto"];
12510
+ };
12511
+ };
12512
+ responses: {
12513
+ /** @description Reward updated */
12514
+ 200: {
12515
+ headers: {
12516
+ [name: string]: unknown;
12517
+ };
12518
+ content: {
12519
+ "application/json": components["schemas"]["RewardResponseDto"];
12520
+ };
12521
+ };
12522
+ /** @description Not authorized */
12523
+ 403: {
12524
+ headers: {
12525
+ [name: string]: unknown;
12526
+ };
12527
+ content?: never;
12528
+ };
12529
+ };
12530
+ };
12531
+ OffersController_findAll: {
12532
+ parameters: {
12533
+ query?: {
12534
+ /** @description Number of offers to return */
12535
+ limit?: number;
12536
+ };
12537
+ header?: never;
12538
+ path?: never;
12539
+ cookie?: never;
12540
+ };
12541
+ requestBody?: never;
12542
+ responses: {
12543
+ /** @description List of active offers */
12544
+ 200: {
12545
+ headers: {
12546
+ [name: string]: unknown;
12547
+ };
12548
+ content: {
12549
+ "application/json": components["schemas"]["OfferResponseDto"][];
12550
+ };
12551
+ };
12552
+ };
12553
+ };
12554
+ OffersController_findById: {
12555
+ parameters: {
12556
+ query?: never;
12557
+ header?: never;
12558
+ path: {
12559
+ /** @description Offer ID */
12560
+ id: string;
12561
+ };
12562
+ cookie?: never;
12563
+ };
12564
+ requestBody?: never;
12565
+ responses: {
12566
+ /** @description Offer details */
12567
+ 200: {
12568
+ headers: {
12569
+ [name: string]: unknown;
12570
+ };
12571
+ content: {
12572
+ "application/json": components["schemas"]["OfferResponseDto"];
12573
+ };
12574
+ };
12575
+ /** @description Offer not found */
12576
+ 404: {
12577
+ headers: {
12578
+ [name: string]: unknown;
12579
+ };
12580
+ content?: never;
12581
+ };
12582
+ };
12583
+ };
12584
+ OffersController_redeemOffer: {
12585
+ parameters: {
12586
+ query?: never;
12587
+ header?: never;
12588
+ path: {
12589
+ /** @description Offer ID */
12590
+ id: string;
12591
+ };
12592
+ cookie?: never;
12593
+ };
12594
+ requestBody: {
12595
+ content: {
12596
+ "application/json": components["schemas"]["RedeemOfferDto"];
12749
12597
  };
12750
12598
  };
12751
12599
  responses: {
12752
- /** @description Reward created */
12600
+ /** @description Offer redeemed successfully */
12753
12601
  201: {
12754
12602
  headers: {
12755
12603
  [name: string]: unknown;
12756
12604
  };
12757
- content: {
12758
- "application/json": components["schemas"]["RewardResponseDto"];
12759
- };
12605
+ content?: never;
12760
12606
  };
12761
- /** @description Not authorized */
12762
- 403: {
12607
+ /** @description Offer expired, limit reached, or invalid */
12608
+ 400: {
12763
12609
  headers: {
12764
12610
  [name: string]: unknown;
12765
12611
  };
12766
12612
  content?: never;
12767
12613
  };
12768
- };
12769
- };
12770
- CreatorRewardsController_deleteReward: {
12771
- parameters: {
12772
- query?: never;
12773
- header?: never;
12774
- path: {
12775
- /** @description Reward ID */
12776
- rewardId: string;
12777
- /** @description Creator ID */
12778
- creatorId: unknown;
12779
- };
12780
- cookie?: never;
12781
- };
12782
- requestBody?: never;
12783
- responses: {
12784
- /** @description Reward deleted */
12785
- 200: {
12614
+ /** @description Premium membership required */
12615
+ 403: {
12786
12616
  headers: {
12787
12617
  [name: string]: unknown;
12788
12618
  };
12789
12619
  content?: never;
12790
12620
  };
12791
- /** @description Not authorized */
12792
- 403: {
12621
+ /** @description Offer not found */
12622
+ 404: {
12793
12623
  headers: {
12794
12624
  [name: string]: unknown;
12795
12625
  };
@@ -12797,35 +12627,20 @@ export interface operations {
12797
12627
  };
12798
12628
  };
12799
12629
  };
12800
- CreatorRewardsController_updateReward: {
12630
+ OffersController_checkCanRedeem: {
12801
12631
  parameters: {
12802
12632
  query?: never;
12803
12633
  header?: never;
12804
12634
  path: {
12805
- /** @description Reward ID */
12806
- rewardId: string;
12807
- /** @description Creator ID */
12808
- creatorId: unknown;
12635
+ /** @description Offer ID */
12636
+ id: string;
12809
12637
  };
12810
12638
  cookie?: never;
12811
12639
  };
12812
- requestBody: {
12813
- content: {
12814
- "application/json": components["schemas"]["UpdateRewardDto"];
12815
- };
12816
- };
12640
+ requestBody?: never;
12817
12641
  responses: {
12818
- /** @description Reward updated */
12642
+ /** @description Redemption eligibility status */
12819
12643
  200: {
12820
- headers: {
12821
- [name: string]: unknown;
12822
- };
12823
- content: {
12824
- "application/json": components["schemas"]["RewardResponseDto"];
12825
- };
12826
- };
12827
- /** @description Not authorized */
12828
- 403: {
12829
12644
  headers: {
12830
12645
  [name: string]: unknown;
12831
12646
  };
@@ -13780,6 +13595,26 @@ export interface operations {
13780
13595
  };
13781
13596
  };
13782
13597
  };
13598
+ VenuesController_getMyVenues: {
13599
+ parameters: {
13600
+ query?: never;
13601
+ header?: never;
13602
+ path?: never;
13603
+ cookie?: never;
13604
+ };
13605
+ requestBody?: never;
13606
+ responses: {
13607
+ /** @description List of user venues */
13608
+ 200: {
13609
+ headers: {
13610
+ [name: string]: unknown;
13611
+ };
13612
+ content: {
13613
+ "application/json": components["schemas"]["VenueResponseDto"][];
13614
+ };
13615
+ };
13616
+ };
13617
+ };
13783
13618
  VenuesController_findAll: {
13784
13619
  parameters: {
13785
13620
  query?: {
@@ -13791,6 +13626,7 @@ export interface operations {
13791
13626
  hasAfDrinks?: boolean;
13792
13627
  isAfVenue?: boolean;
13793
13628
  isFeatured?: boolean;
13629
+ isFoundingPartner?: boolean;
13794
13630
  lat?: number;
13795
13631
  long?: number;
13796
13632
  radius?: number;
@@ -13812,6 +13648,92 @@ export interface operations {
13812
13648
  };
13813
13649
  };
13814
13650
  };
13651
+ VenuesController_create: {
13652
+ parameters: {
13653
+ query?: never;
13654
+ header?: never;
13655
+ path?: never;
13656
+ cookie?: never;
13657
+ };
13658
+ requestBody: {
13659
+ content: {
13660
+ "application/json": components["schemas"]["CreateVenueDto"];
13661
+ };
13662
+ };
13663
+ responses: {
13664
+ /** @description Venue created */
13665
+ 201: {
13666
+ headers: {
13667
+ [name: string]: unknown;
13668
+ };
13669
+ content: {
13670
+ "application/json": components["schemas"]["VenueResponseDto"];
13671
+ };
13672
+ };
13673
+ };
13674
+ };
13675
+ VenuesController_update: {
13676
+ parameters: {
13677
+ query?: never;
13678
+ header?: never;
13679
+ path: {
13680
+ /** @description Venue ID */
13681
+ id: string;
13682
+ };
13683
+ cookie?: never;
13684
+ };
13685
+ requestBody: {
13686
+ content: {
13687
+ "application/json": components["schemas"]["UpdateVenueDto"];
13688
+ };
13689
+ };
13690
+ responses: {
13691
+ /** @description Venue updated */
13692
+ 200: {
13693
+ headers: {
13694
+ [name: string]: unknown;
13695
+ };
13696
+ content: {
13697
+ "application/json": components["schemas"]["VenueResponseDto"];
13698
+ };
13699
+ };
13700
+ /** @description Not a venue owner/manager */
13701
+ 403: {
13702
+ headers: {
13703
+ [name: string]: unknown;
13704
+ };
13705
+ content?: never;
13706
+ };
13707
+ };
13708
+ };
13709
+ VenuesController_delete: {
13710
+ parameters: {
13711
+ query?: never;
13712
+ header?: never;
13713
+ path: {
13714
+ /** @description Venue ID */
13715
+ id: string;
13716
+ };
13717
+ cookie?: never;
13718
+ };
13719
+ requestBody?: never;
13720
+ responses: {
13721
+ /** @description Venue deleted */
13722
+ 200: {
13723
+ headers: {
13724
+ [name: string]: unknown;
13725
+ };
13726
+ content?: never;
13727
+ };
13728
+ /** @description Only OWNER role can delete */
13729
+ 403: {
13730
+ headers: {
13731
+ [name: string]: unknown;
13732
+ };
13733
+ content?: never;
13734
+ };
13735
+ };
13736
+ };
13815
13737
  VenuesController_getFeatured: {
13816
13738
  parameters: {
13817
13739
  query?: {
@@ -13859,13 +13781,13 @@ export interface operations {
13859
13781
  };
13860
13782
  };
13861
13783
  };
13862
- VenuesController_findById: {
13784
+ VenuesController_findByIdOrSlug: {
13863
13785
  parameters: {
13864
13786
  query?: never;
13865
13787
  header?: never;
13866
13788
  path: {
13867
- /** @description Venue ID */
13868
- id: string;
13789
+ /** @description Venue ID (UUID) or slug */
13790
+ idOrSlug: string;
13869
13791
  };
13870
13792
  cookie?: never;
13871
13793
  };
@@ -13983,8 +13905,8 @@ export interface operations {
13983
13905
  };
13984
13906
  header?: never;
13985
13907
  path: {
13986
- /** @description Venue ID */
13987
- id: string;
13908
+ /** @description Venue ID or slug */
13909
+ idOrSlug: string;
13988
13910
  };
13989
13911
  cookie?: never;
13990
13912
  };
@@ -15377,116 +15299,6 @@ export interface operations {
15377
15299
  };
15378
15300
  };
15379
15301
  };
15380
- AdminBusinessesController_findAll: {
15381
- parameters: {
15382
- query: {
15383
- page: number;
15384
- limit: number;
15385
- };
15386
- header?: never;
15387
- path?: never;
15388
- cookie?: never;
15389
- };
15390
- requestBody?: never;
15391
- responses: {
15392
- /** @description List of businesses */
15393
- 200: {
15394
- headers: {
15395
- [name: string]: unknown;
15396
- };
15397
- content?: never;
15398
- };
15399
- };
15400
- };
15401
- AdminBusinessesController_create: {
15402
- parameters: {
15403
- query?: never;
15404
- header?: never;
15405
- path?: never;
15406
- cookie?: never;
15407
- };
15408
- requestBody: {
15409
- content: {
15410
- "application/json": components["schemas"]["AdminCreateBusinessDto"];
15411
- };
15412
- };
15413
- responses: {
15414
- /** @description Business created */
15415
- 201: {
15416
- headers: {
15417
- [name: string]: unknown;
15418
- };
15419
- content?: never;
15420
- };
15421
- };
15422
- };
15423
- AdminBusinessesController_update: {
15424
- parameters: {
15425
- query?: never;
15426
- header?: never;
15427
- path: {
15428
- /** @description Business ID */
15429
- id: string;
15430
- };
15431
- cookie?: never;
15432
- };
15433
- requestBody: {
15434
- content: {
15435
- "application/json": components["schemas"]["AdminCreateBusinessDto"];
15436
- };
15437
- };
15438
- responses: {
15439
- /** @description Business updated */
15440
- 200: {
15441
- headers: {
15442
- [name: string]: unknown;
15443
- };
15444
- content?: never;
15445
- };
15446
- };
15447
- };
15448
- AdminBusinessesController_delete: {
15449
- parameters: {
15450
- query?: never;
15451
- header?: never;
15452
- path: {
15453
- /** @description Business ID */
15454
- id: string;
15455
- };
15456
- cookie?: never;
15457
- };
15458
- requestBody?: never;
15459
- responses: {
15460
- /** @description Business deleted */
15461
- 204: {
15462
- headers: {
15463
- [name: string]: unknown;
15464
- };
15465
- content?: never;
15466
- };
15467
- };
15468
- };
15469
- AdminBusinessesController_createOffer: {
15470
- parameters: {
15471
- query?: never;
15472
- header?: never;
15473
- path: {
15474
- /** @description Business ID */
15475
- id: string;
15476
- };
15477
- cookie?: never;
15478
- };
15479
- requestBody?: never;
15480
- responses: {
15481
- /** @description Offer created */
15482
- 201: {
15483
- headers: {
15484
- [name: string]: unknown;
15485
- };
15486
- content?: never;
15487
- };
15488
- };
15489
- };
15490
15302
  AdminAnalyticsController_getOverview: {
15491
15303
  parameters: {
15492
15304
  query?: never;
@@ -17843,7 +17655,7 @@ export interface operations {
17843
17655
  };
17844
17656
  };
17845
17657
  };
17846
- MapController_getMapBusinesses: {
17658
+ MapController_getMapVenues: {
17847
17659
  parameters: {
17848
17660
  query?: {
17849
17661
  /** @description Center latitude for search */
@@ -17865,7 +17677,7 @@ export interface operations {
17865
17677
  };
17866
17678
  requestBody?: never;
17867
17679
  responses: {
17868
- /** @description List of businesses on map */
17680
+ /** @description List of venues on map */
17869
17681
  200: {
17870
17682
  headers: {
17871
17683
  [name: string]: unknown;
@@ -18434,9 +18246,9 @@ export interface operations {
18434
18246
  type?: "SESSION_1ON1" | "SESSION_GROUP" | "PACKAGE" | "WORKSHOP" | "CONSULTATION";
18435
18247
  deliveryMethod?: "VIDEO_CALL" | "PHONE_CALL" | "IN_PERSON" | "HYBRID";
18436
18248
  isActive?: boolean;
18437
- /** @description Minimum price in pence */
18249
+ /** @description Minimum price in cents */
18438
18250
  minPrice?: number;
18439
- /** @description Maximum price in pence */
18251
+ /** @description Maximum price in cents */
18440
18252
  maxPrice?: number;
18441
18253
  };
18442
18254
  header?: never;
@@ -18504,9 +18316,9 @@ export interface operations {
18504
18316
  type?: "SESSION_1ON1" | "SESSION_GROUP" | "PACKAGE" | "WORKSHOP" | "CONSULTATION";
18505
18317
  deliveryMethod?: "VIDEO_CALL" | "PHONE_CALL" | "IN_PERSON" | "HYBRID";
18506
18318
  isActive?: boolean;
18507
- /** @description Minimum price in pence */
18319
+ /** @description Minimum price in cents */
18508
18320
  minPrice?: number;
18509
- /** @description Maximum price in pence */
18321
+ /** @description Maximum price in cents */
18510
18322
  maxPrice?: number;
18511
18323
  };
18512
18324
  header?: never;