@growsober/sdk 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/api/mutations/admin.d.ts +1 -20
  2. package/dist/api/mutations/admin.js +1 -1
  3. package/dist/api/mutations/auth.d.ts +83 -1
  4. package/dist/api/mutations/auth.js +102 -1
  5. package/dist/api/mutations/event-chat.d.ts +84 -7
  6. package/dist/api/mutations/event-chat.js +1 -1
  7. package/dist/api/mutations/matching.d.ts +2 -19
  8. package/dist/api/mutations/matching.js +6 -6
  9. package/dist/api/mutations/support.d.ts +5 -5
  10. package/dist/api/mutations/support.js +1 -1
  11. package/dist/api/queries/ambassadors.d.ts +71 -5
  12. package/dist/api/queries/ambassadors.js +1 -1
  13. package/dist/api/queries/cities.d.ts +52 -0
  14. package/dist/api/queries/cities.js +82 -0
  15. package/dist/api/queries/event-chat.d.ts +30 -4
  16. package/dist/api/queries/grow90.d.ts +46 -4
  17. package/dist/api/queries/hubs.d.ts +2 -2
  18. package/dist/api/queries/hubs.js +1 -1
  19. package/dist/api/queries/index.d.ts +1 -0
  20. package/dist/api/queries/index.js +2 -1
  21. package/dist/api/queries/map.d.ts +3 -3
  22. package/dist/api/queries/map.js +1 -1
  23. package/dist/api/queries/support.d.ts +88 -8
  24. package/dist/api/queries/support.js +1 -1
  25. package/dist/api/types.d.ts +63 -393
  26. package/dist/api/types.js +4 -4
  27. package/package.json +1 -1
  28. package/src/api/mutations/admin.ts +1 -20
  29. package/src/api/mutations/auth.ts +114 -0
  30. package/src/api/mutations/event-chat.ts +7 -7
  31. package/src/api/mutations/matching.ts +12 -32
  32. package/src/api/mutations/support.ts +11 -11
  33. package/src/api/queries/ambassadors.ts +6 -3
  34. package/src/api/queries/cities.ts +194 -0
  35. package/src/api/queries/hubs.ts +3 -3
  36. package/src/api/queries/index.ts +1 -0
  37. package/src/api/queries/map.ts +10 -10
  38. package/src/api/queries/support.ts +8 -8
  39. package/src/api/types.ts +96 -448
@@ -1,12 +1,12 @@
1
1
  import { useQuery, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { getApiClient } from '../client';
3
3
  import type {
4
- DailyCheckInResponse,
4
+ CheckInResponse,
5
+ CheckInStreakResponse,
5
6
  MoodLogResponse,
6
7
  WinResponse,
7
8
  HabitResponse,
8
9
  ReflectionResponse,
9
- UserStreakResponse,
10
10
  } from '../types';
11
11
 
12
12
  // ============================================================================
@@ -50,11 +50,11 @@ export interface WinsByCategory {
50
50
  * ```
51
51
  */
52
52
  export function useCheckIns(
53
- options?: Omit<UseQueryOptions<DailyCheckInResponse[]>, 'queryKey' | 'queryFn'>
53
+ options?: Omit<UseQueryOptions<CheckInResponse[]>, 'queryKey' | 'queryFn'>
54
54
  ) {
55
55
  return useQuery({
56
56
  queryKey: supportKeys.checkIns(),
57
- queryFn: async (): Promise<DailyCheckInResponse[]> => {
57
+ queryFn: async (): Promise<CheckInResponse[]> => {
58
58
  const client = getApiClient();
59
59
  const response = await client.get('/api/v1/support/check-ins');
60
60
  // API wraps responses in { data: [...], meta: {...} }
@@ -75,11 +75,11 @@ export function useCheckIns(
75
75
  * ```
76
76
  */
77
77
  export function useTodayCheckIn(
78
- options?: Omit<UseQueryOptions<DailyCheckInResponse | null>, 'queryKey' | 'queryFn'>
78
+ options?: Omit<UseQueryOptions<CheckInResponse | null>, 'queryKey' | 'queryFn'>
79
79
  ) {
80
80
  return useQuery({
81
81
  queryKey: supportKeys.checkInToday(),
82
- queryFn: async (): Promise<DailyCheckInResponse | null> => {
82
+ queryFn: async (): Promise<CheckInResponse | null> => {
83
83
  const client = getApiClient();
84
84
  const response = await client.get('/api/v1/support/check-ins/today');
85
85
  // API wraps responses in { data: {...}, meta: {...} }
@@ -100,11 +100,11 @@ export function useTodayCheckIn(
100
100
  * ```
101
101
  */
102
102
  export function useCheckInStreak(
103
- options?: Omit<UseQueryOptions<UserStreakResponse>, 'queryKey' | 'queryFn'>
103
+ options?: Omit<UseQueryOptions<CheckInStreakResponse>, 'queryKey' | 'queryFn'>
104
104
  ) {
105
105
  return useQuery({
106
106
  queryKey: supportKeys.checkInStreak(),
107
- queryFn: async (): Promise<UserStreakResponse> => {
107
+ queryFn: async (): Promise<CheckInStreakResponse> => {
108
108
  const client = getApiClient();
109
109
  const response = await client.get('/api/v1/support/check-ins/streak');
110
110
  // API wraps responses in { data: {...}, meta: {...} }
package/src/api/types.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Type extraction utilities for OpenAPI-generated types
2
+ * GrowSober SDK Types
3
3
  *
4
- * This file provides type-safe helpers to extract request/response types
5
- * from the @growsober/types package.
4
+ * All types are derived from the @growsober/types package which is auto-generated
5
+ * from the API OpenAPI specification. This ensures single source of truth from Prisma.
6
6
  */
7
7
 
8
8
  import type { paths, components } from '@growsober/types';
@@ -62,6 +62,9 @@ export type LoginRequest = components['schemas']['LoginDto'];
62
62
  export type RefreshTokenRequest = components['schemas']['RefreshTokenDto'];
63
63
  export type TokenResponse = components['schemas']['TokenResponseDto'];
64
64
  export type FirebaseAuthRequest = components['schemas']['FirebaseAuthDto'];
65
+ export type SendOtpRequest = components['schemas']['SendOtpDto'];
66
+ export type OtpSentResponse = components['schemas']['OtpSentResponseDto'];
67
+ export type VerifyOtpRequest = components['schemas']['VerifyOtpDto'];
65
68
 
66
69
  // ============================================================================
67
70
  // USER TYPES
@@ -80,18 +83,6 @@ export type HubResponse = components['schemas']['HubResponseDto'];
80
83
  export type CreateHubRequest = components['schemas']['CreateHubDto'];
81
84
  export type UpdateHubRequest = components['schemas']['UpdateHubDto'];
82
85
 
83
- // HubMemberResponse - will be available when hub membership endpoints are fully implemented
84
- // For now, define inline type based on API response structure
85
- export interface HubMemberResponse {
86
- id: string;
87
- hubId: string;
88
- userId: string;
89
- role: 'MEMBER' | 'MODERATOR' | 'ADMIN' | 'OWNER';
90
- status: 'PENDING' | 'APPROVED' | 'REJECTED';
91
- joinedAt: string;
92
- user?: UserPublicResponse;
93
- }
94
-
95
86
  // ============================================================================
96
87
  // EVENT TYPES
97
88
  // ============================================================================
@@ -143,454 +134,111 @@ export type NotificationResponse = components['schemas']['NotificationResponseDt
143
134
  export type RegisterDeviceTokenRequest = components['schemas']['RegisterDeviceDto'];
144
135
 
145
136
  // ============================================================================
146
- // SUPPORT TYPES (Placeholder - will be generated when support module is registered)
147
- // ============================================================================
148
-
149
- // These types will be generated from OpenAPI once the support module endpoints
150
- // are registered in the API. For now, we define placeholder interfaces.
151
-
152
- export interface DailyCheckInResponse {
153
- id: string;
154
- userId: string;
155
- date: string;
156
- mood: number | null;
157
- energy: number | null;
158
- stayedSober: boolean | null;
159
- triggers: string[];
160
- copingUsed: string[];
161
- notes: string | null;
162
- gratitude: string[];
163
- createdAt: string;
164
- updatedAt: string;
165
- }
166
-
167
- export interface CreateCheckInRequest {
168
- date: string;
169
- mood?: number;
170
- energy?: number;
171
- stayedSober?: boolean;
172
- triggers?: string[];
173
- copingUsed?: string[];
174
- notes?: string;
175
- gratitude?: string[];
176
- }
177
-
178
- export interface UpdateCheckInRequest {
179
- mood?: number;
180
- energy?: number;
181
- stayedSober?: boolean;
182
- triggers?: string[];
183
- copingUsed?: string[];
184
- notes?: string;
185
- gratitude?: string[];
186
- }
187
-
188
- export interface CheckInStreakResponse {
189
- currentStreak: number;
190
- longestStreak: number;
191
- totalCheckIns: number;
192
- }
193
-
194
- export interface MoodLogResponse {
195
- id: string;
196
- userId: string;
197
- mood: number;
198
- notes?: string;
199
- triggers?: string[];
200
- createdAt: string;
201
- }
202
-
203
- export interface CreateMoodLogRequest {
204
- mood: number;
205
- notes?: string;
206
- triggers?: string[];
207
- }
208
-
209
- export interface WinResponse {
210
- id: string;
211
- userId: string;
212
- title: string;
213
- description?: string;
214
- category: string;
215
- imageUrl?: string;
216
- createdAt: string;
217
- }
218
-
219
- export interface CreateWinRequest {
220
- title: string;
221
- description?: string;
222
- category: string;
223
- imageUrl?: string;
224
- }
225
-
226
- export interface HabitResponse {
227
- id: string;
228
- userId: string;
229
- name: string;
230
- description?: string;
231
- icon?: string;
232
- color?: string;
233
- frequency: string;
234
- targetDays: number[];
235
- targetCount: number;
236
- currentStreak: number;
237
- longestStreak: number;
238
- totalCompletions: number;
239
- isActive: boolean;
240
- isPaused: boolean;
241
- reminderTime?: string;
242
- createdAt: string;
243
- updatedAt: string;
244
- }
245
-
246
- export interface CreateHabitRequest {
247
- name: string;
248
- description?: string;
249
- icon?: string;
250
- color?: string;
251
- frequency: string;
252
- targetDays?: number[];
253
- targetCount?: number;
254
- reminderTime?: string;
255
- }
256
-
257
- export interface UpdateHabitRequest {
258
- name?: string;
259
- description?: string;
260
- icon?: string;
261
- color?: string;
262
- frequency?: string;
263
- targetDays?: number[];
264
- targetCount?: number;
265
- isActive?: boolean;
266
- isPaused?: boolean;
267
- reminderTime?: string;
268
- }
269
-
270
- export interface ReflectionResponse {
271
- id: string;
272
- userId: string;
273
- prompt: string;
274
- content: string;
275
- mood?: number;
276
- createdAt: string;
277
- }
278
-
279
- export interface CreateReflectionRequest {
280
- prompt: string;
281
- content: string;
282
- mood?: number;
283
- }
284
-
285
- export interface UserStreakResponse {
286
- id: string;
287
- userId: string;
288
- type: string;
289
- currentStreak: number;
290
- longestStreak: number;
291
- totalCheckIns: number;
292
- lastActivityDate: string;
293
- }
294
-
295
- // ============================================================================
296
- // GAMIFICATION TYPES (Placeholder - will be generated when gamification module is registered)
297
- // ============================================================================
298
-
299
- export interface BadgeResponse {
300
- id: string;
301
- appId: string;
302
- name: string;
303
- description?: string;
304
- iconUrl?: string;
305
- type: string;
306
- threshold?: number;
307
- isSecret: boolean;
308
- isActive: boolean;
309
- sortOrder: number;
310
- createdAt: string;
311
- }
312
-
313
- export interface UserBadgeResponse {
314
- id: string;
315
- userId: string;
316
- badgeId: string;
317
- awardedAt: string;
318
- badge?: BadgeResponse;
319
- }
320
-
321
- // ============================================================================
322
- // MAP TYPES (Placeholder - will be generated when map module is registered)
323
- // ============================================================================
324
-
325
- export interface MapUserResponse {
326
- id: string;
327
- name: string;
328
- avatar?: string;
329
- locationLat: number;
330
- locationLong: number;
331
- }
332
-
333
- export interface MapHubResponse {
334
- id: string;
335
- name: string;
336
- slug: string;
337
- locationLat: number;
338
- locationLong: number;
339
- memberCount: number;
340
- }
341
-
342
- export interface MapEventResponse {
343
- id: string;
344
- title: string;
345
- slug: string;
346
- locationLat: number;
347
- locationLong: number;
348
- startDate: string;
349
- attendeeCount: number;
350
- }
351
-
352
- export interface MapBusinessResponse {
353
- id: string;
354
- name: string;
355
- slug?: string;
356
- locationLat: number;
357
- locationLong: number;
358
- type: string;
359
- hasAfDrinks: boolean;
360
- }
137
+ // SUPPORT TYPES
138
+ // ============================================================================
139
+
140
+ // Check-ins
141
+ export type CheckInResponse = components['schemas']['CheckInResponseDto'];
142
+ export type CreateCheckInRequest = components['schemas']['CreateCheckInDto'];
143
+ export type UpdateCheckInRequest = components['schemas']['UpdateCheckInDto'];
144
+ export type CheckInStreakResponse = components['schemas']['CheckInStreakDto'];
145
+
146
+ // Wins
147
+ export type WinResponse = components['schemas']['WinResponseDto'];
148
+ export type CreateWinRequest = components['schemas']['CreateWinDto'];
149
+ export type WinCountResponse = components['schemas']['WinCountDto'];
150
+
151
+ // Jack AI Conversations
152
+ export type ConversationResponse = components['schemas']['ConversationResponseDto'];
153
+ export type ConversationWithMessagesResponse = components['schemas']['ConversationWithMessagesDto'];
154
+ export type CreateConversationRequest = components['schemas']['CreateConversationDto'];
155
+ export type JackMessageResponse = components['schemas']['MessageResponseDto'];
156
+ export type SendJackMessageRequest = components['schemas']['SendMessageDto'];
157
+
158
+ // Mood Logs
159
+ export type MoodLogResponse = components['schemas']['MoodLogResponseDto'];
160
+ export type LogMoodRequest = components['schemas']['LogMoodDto'];
161
+ export type MoodStatsResponse = components['schemas']['MoodStatsDto'];
162
+
163
+ // Habits
164
+ export type HabitResponse = components['schemas']['HabitResponseDto'];
165
+ export type CreateHabitRequest = components['schemas']['CreateHabitDto'];
166
+ export type UpdateHabitRequest = components['schemas']['UpdateHabitDto'];
167
+ export type CompleteHabitRequest = components['schemas']['CompleteHabitDto'];
168
+ export type HabitCompletionResponse = components['schemas']['HabitCompletionResponseDto'];
169
+
170
+ // Reflections
171
+ export type ReflectionResponse = components['schemas']['ReflectionResponseDto'];
172
+ export type CreateReflectionRequest = components['schemas']['CreateReflectionDto'];
173
+ export type UpdateReflectionRequest = components['schemas']['UpdateReflectionDto'];
174
+
175
+ // ============================================================================
176
+ // MAP TYPES
177
+ // ============================================================================
178
+
179
+ export type MapMemberResponse = components['schemas']['MapMemberDto'];
180
+ export type MapHubResponse = components['schemas']['MapHubDto'];
181
+ export type MapEventResponse = components['schemas']['MapEventDto'];
361
182
 
362
183
  // ============================================================================
363
184
  // AMBASSADOR TYPES
364
185
  // ============================================================================
365
186
 
366
- export type AmbassadorStatus = 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'ALUMNI';
367
-
368
- export interface AmbassadorResponse {
369
- id: string;
370
- userId: string;
371
- hubId: string | null;
372
- title: string | null;
373
- bio: string | null;
374
- status: AmbassadorStatus;
375
- isVerified: boolean;
376
- isFoundingAmbassador: boolean;
377
- eventsHosted: number;
378
- membersRecruited: number;
379
- rewardPoints: number;
380
- createdAt: string;
381
- approvedAt: string | null;
382
- user?: {
383
- id: string;
384
- name: string | null;
385
- profileImage: string | null;
386
- };
387
- hub?: {
388
- id: string;
389
- name: string;
390
- slug: string;
391
- city?: string;
392
- whatsappGroupUrl?: string;
393
- } | null;
394
- }
395
-
396
- export interface AmbassadorLeaderboardResponse {
397
- id: string;
398
- userId: string;
399
- userName: string | null;
400
- profileImage: string | null;
401
- hubName: string | null;
402
- eventsHosted: number;
403
- membersRecruited: number;
404
- rewardPoints: number;
405
- isFoundingAmbassador: boolean;
406
- rank: number;
407
- }
408
-
409
- export interface ApplyAmbassadorRequest {
410
- hubId?: string;
411
- motivation: string;
412
- bio?: string;
413
- }
414
-
415
- export interface UpdateAmbassadorRequest {
416
- hubId?: string;
417
- title?: string;
418
- bio?: string;
419
- status?: AmbassadorStatus;
420
- isVerified?: boolean;
421
- isFoundingAmbassador?: boolean;
422
- }
187
+ export type AmbassadorResponse = components['schemas']['AmbassadorResponseDto'];
188
+ export type ApplyAmbassadorRequest = components['schemas']['ApplyAmbassadorDto'];
189
+ export type UpdateAmbassadorRequest = components['schemas']['UpdateAmbassadorDto'];
423
190
 
424
191
  // ============================================================================
425
192
  // GROW90 TYPES
426
193
  // ============================================================================
427
194
 
428
- export type Grow90Status = 'ACTIVE' | 'COMPLETED' | 'PAUSED' | 'ABANDONED';
429
-
430
- export interface Grow90EnrollmentResponse {
431
- id: string;
432
- userId: string;
433
- startDate: string;
434
- targetEndDate: string;
435
- actualEndDate: string | null;
436
- currentDay: number;
437
- completedDays: number;
438
- missedDays: number;
439
- status: Grow90Status;
440
- completedAt: string | null;
441
- dailyReminderTime: string;
442
- weeklyCallDay: string | null;
443
- createdAt: string;
444
- progressPercentage: number;
445
- daysRemaining: number;
446
- }
447
-
448
- export interface Grow90ProgressResponse {
449
- id: string;
450
- dayNumber: number;
451
- date: string;
452
- isCompleted: boolean;
453
- completedAt: string | null;
454
- morningCheckIn: boolean;
455
- eveningCheckIn: boolean;
456
- contentViewed: boolean;
457
- journalEntry: string | null;
458
- gratitudeList: string[];
459
- morningMood: number | null;
460
- eveningMood: number | null;
461
- createdAt: string;
462
- }
463
-
464
- export interface Grow90TodayResponse {
465
- progress: Grow90ProgressResponse | null;
466
- dayNumber: number;
467
- dailyContent: {
468
- title: string;
469
- message: string;
470
- tip: string;
471
- affirmation: string;
472
- morningMessage?: string;
473
- eveningReflection?: string;
474
- journalPrompt?: string;
475
- theme?: string;
476
- };
477
- tasks: {
478
- morningCheckIn: boolean;
479
- eveningCheckIn: boolean;
480
- contentViewed: boolean;
481
- journalEntry: boolean;
482
- gratitude: boolean;
483
- };
484
- }
485
-
486
- export interface Grow90StatsResponse {
487
- completedDays: number;
488
- currentStreak: number;
489
- longestStreak: number;
490
- averageMood: number | null;
491
- completionRate: number;
492
- journalEntriesCount: number;
493
- }
494
-
495
- export interface EnrollGrow90Request {
496
- dailyReminderTime?: string;
497
- weeklyCallDay?: string;
498
- stripePaymentId?: string;
499
- }
500
-
501
- export interface UpdateGrow90ProgressRequest {
502
- morningCheckIn?: boolean;
503
- eveningCheckIn?: boolean;
504
- contentViewed?: boolean;
505
- journalEntry?: string;
506
- gratitudeList?: string[];
507
- morningMood?: number;
508
- eveningMood?: number;
509
- }
510
-
511
- export interface UpdateGrow90SettingsRequest {
512
- dailyReminderTime?: string;
513
- weeklyCallDay?: string;
514
- }
195
+ export type Grow90EnrollmentResponse = components['schemas']['Grow90EnrollmentResponseDto'];
196
+ export type Grow90ProgressResponse = components['schemas']['Grow90ProgressResponseDto'];
197
+ export type Grow90TodayResponse = components['schemas']['Grow90TodayResponseDto'];
198
+ export type Grow90StatsResponse = components['schemas']['Grow90StatsResponseDto'];
199
+ export type EnrollGrow90Request = components['schemas']['EnrollGrow90Dto'];
200
+ export type UpdateGrow90ProgressRequest = components['schemas']['UpdateProgressDto'];
201
+ export type UpdateGrow90SettingsRequest = components['schemas']['UpdateSettingsDto'];
202
+
203
+ // ============================================================================
204
+ // MATCHING TYPES
205
+ // ============================================================================
206
+
207
+ export type CreateMatchRequest = components['schemas']['CreateMatchDto'];
208
+ export type UpdateMatchRequest = components['schemas']['UpdateMatchDto'];
209
+ export type CreateBuddyRequest = components['schemas']['CreateBuddyRequestDto'];
210
+ export type UpdateBuddyRequest = components['schemas']['UpdateBuddyDto'];
211
+ export type LogBuddyActivityRequest = components['schemas']['LogBuddyActivityDto'];
515
212
 
516
213
  // ============================================================================
517
214
  // EVENT CHAT TYPES
518
215
  // ============================================================================
519
216
 
520
- export type EventMessageType = 'TEXT' | 'IMAGE' | 'SYSTEM' | 'ANNOUNCEMENT';
521
- export type ChatMemberRole = 'MEMBER' | 'MODERATOR' | 'HOST';
522
-
523
- export interface EventChatResponse {
524
- id: string;
525
- eventId: string;
526
- messageCount: number;
527
- memberCount: number;
528
- isActive: boolean;
529
- isLocked: boolean;
530
- lastMessageAt?: string;
531
- createdAt: string;
532
- eventTitle?: string;
533
- eventStartDate?: string;
534
- }
535
-
536
- export interface ChatMemberResponse {
537
- id: string;
538
- chatId: string;
539
- userId: string;
540
- role: ChatMemberRole;
541
- nickname?: string;
542
- isMuted: boolean;
543
- lastReadAt?: string;
544
- joinedAt: string;
545
- userName?: string;
546
- userImage?: string;
547
- }
548
-
549
- export interface MessageResponse {
550
- id: string;
551
- chatId: string;
552
- userId: string;
553
- content: string;
554
- messageType: EventMessageType;
555
- imageUrl?: string;
556
- replyToId?: string;
557
- isEdited: boolean;
558
- isDeleted: boolean;
559
- createdAt: string;
560
- updatedAt?: string;
561
- userName?: string;
562
- userImage?: string;
563
- replyToContent?: string;
564
- replyToUserName?: string;
565
- }
566
-
567
- export interface PaginatedMessagesResponse {
568
- messages: MessageResponse[];
569
- total: number;
570
- hasMore: boolean;
571
- nextCursor?: string;
572
- }
573
-
574
- export interface SendMessageRequest {
575
- content: string;
576
- messageType?: EventMessageType;
577
- imageUrl?: string;
578
- replyToId?: string;
579
- }
580
-
581
- export interface UpdateMessageRequest {
582
- content: string;
583
- }
584
-
585
- export interface UpdateChatSettingsRequest {
586
- isLocked?: boolean;
587
- isActive?: boolean;
588
- }
589
-
590
- export interface UpdateMemberSettingsRequest {
591
- isMuted?: boolean;
592
- nickname?: string;
593
- }
217
+ export type EventChatResponse = components['schemas']['EventChatResponseDto'];
218
+ export type ChatMemberResponse = components['schemas']['ChatMemberResponseDto'];
219
+ export type ChatMessageResponse = components['schemas']['MessageResponseDto'];
220
+ export type PaginatedMessagesResponse = components['schemas']['PaginatedMessagesDto'];
221
+ export type SendChatMessageRequest = components['schemas']['SendMessageDto'];
222
+ export type UpdateChatMessageRequest = components['schemas']['UpdateMessageDto'];
223
+ export type UpdateChatSettingsRequest = components['schemas']['UpdateChatSettingsDto'];
224
+ export type UpdateMemberSettingsRequest = components['schemas']['UpdateMemberSettingsDto'];
225
+
226
+ // ============================================================================
227
+ // ADMIN TYPES
228
+ // ============================================================================
229
+
230
+ export type AdminLoginRequest = components['schemas']['AdminLoginDto'];
231
+ export type AdminTokensResponse = components['schemas']['AdminTokensDto'];
232
+ export type AdminUpdateUserRequest = components['schemas']['AdminUpdateUserDto'];
233
+ export type AdminCreateHubRequest = components['schemas']['AdminCreateHubDto'];
234
+ export type AdminUpdateEventRequest = components['schemas']['AdminUpdateEventDto'];
235
+ export type AdminCreateContentRequest = components['schemas']['AdminCreateContentDto'];
236
+ export type AdminCreateBusinessRequest = components['schemas']['AdminCreateBusinessDto'];
237
+ export type AdminOverviewStatsResponse = components['schemas']['AdminOverviewStatsDto'];
238
+
239
+ // ============================================================================
240
+ // RE-EXPORTS
241
+ // ============================================================================
594
242
 
595
243
  // Re-export paths and components for advanced usage
596
244
  export type { paths, components };