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