@spotsdev/sdk 1.4.0 → 1.5.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.
- package/dist/index.cjs +2166 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1656 -0
- package/dist/index.d.ts +1655 -36
- package/dist/index.js +2021 -64
- package/dist/index.js.map +1 -0
- package/package.json +22 -6
- package/src/api/entities.ts +171 -170
- package/src/api/mutations/products.ts +18 -2
- package/src/api/queries/index.ts +4 -0
- package/src/api/queries/payments.ts +67 -0
- package/dist/api/client.d.ts +0 -12
- package/dist/api/client.js +0 -72
- package/dist/api/entities.d.ts +0 -305
- package/dist/api/entities.js +0 -13
- package/dist/api/mutations/clubs.d.ts +0 -47
- package/dist/api/mutations/clubs.js +0 -97
- package/dist/api/mutations/conversations.d.ts +0 -45
- package/dist/api/mutations/conversations.js +0 -114
- package/dist/api/mutations/index.d.ts +0 -14
- package/dist/api/mutations/index.js +0 -40
- package/dist/api/mutations/notifications.d.ts +0 -38
- package/dist/api/mutations/notifications.js +0 -64
- package/dist/api/mutations/orders.d.ts +0 -73
- package/dist/api/mutations/orders.js +0 -114
- package/dist/api/mutations/posts.d.ts +0 -123
- package/dist/api/mutations/posts.js +0 -242
- package/dist/api/mutations/products.d.ts +0 -81
- package/dist/api/mutations/products.js +0 -98
- package/dist/api/mutations/redemptions.d.ts +0 -33
- package/dist/api/mutations/redemptions.js +0 -63
- package/dist/api/mutations/spots.d.ts +0 -93
- package/dist/api/mutations/spots.js +0 -167
- package/dist/api/mutations/users.d.ts +0 -73
- package/dist/api/mutations/users.js +0 -175
- package/dist/api/queries/auth.d.ts +0 -37
- package/dist/api/queries/auth.js +0 -61
- package/dist/api/queries/clubs.d.ts +0 -52
- package/dist/api/queries/clubs.js +0 -116
- package/dist/api/queries/conversations.d.ts +0 -52
- package/dist/api/queries/conversations.js +0 -83
- package/dist/api/queries/index.d.ts +0 -28
- package/dist/api/queries/index.js +0 -69
- package/dist/api/queries/misc.d.ts +0 -30
- package/dist/api/queries/misc.js +0 -91
- package/dist/api/queries/notifications.d.ts +0 -34
- package/dist/api/queries/notifications.js +0 -62
- package/dist/api/queries/orders.d.ts +0 -45
- package/dist/api/queries/orders.js +0 -93
- package/dist/api/queries/posts.d.ts +0 -92
- package/dist/api/queries/posts.js +0 -233
- package/dist/api/queries/products.d.ts +0 -48
- package/dist/api/queries/products.js +0 -87
- package/dist/api/queries/spots.d.ts +0 -93
- package/dist/api/queries/spots.js +0 -250
- package/dist/api/queries/templates.d.ts +0 -39
- package/dist/api/queries/templates.js +0 -81
- package/dist/api/queries/users.d.ts +0 -104
- package/dist/api/queries/users.js +0 -235
- package/dist/api/queries/wallet.d.ts +0 -109
- package/dist/api/queries/wallet.js +0 -136
- package/dist/api/services/index.d.ts +0 -2
- package/dist/api/services/index.js +0 -8
- package/dist/api/services/marketplace.d.ts +0 -129
- package/dist/api/services/marketplace.js +0 -168
- package/dist/api/types.d.ts +0 -57
- package/dist/api/types.js +0 -33
package/dist/index.d.ts
CHANGED
|
@@ -1,37 +1,1656 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { PostType, SpotResponseDto, PostResponseDto, PostReplyDto, ProductResponseDto, SpotImageDto, SpotVibeDto, SpotIntentionDto, OrderItemDto, NotificationResponseDto, SpotOwnerDto, ResponseStatus, ReportReason, ClaimStatus, OrderStatus, SendOtpDto, VerifyOtpDto, CreatePostDto, CreateReplyDto, CreateResponseDto, UpdateResponseDto, UpdateUserDto, CreateConversationDto, CreateMessageDto, ClaimSpotDto, UpvoteResponseDto, VerifyOtpWrappedResponseDto, ApiResponse, PostStatusDto, ProductType, ProductStatus } from '@spotsdev/types';
|
|
3
|
+
export * from '@spotsdev/types';
|
|
4
|
+
export { AccountStatus, AddUserInterestDto, AdjustStockDto, ApiResponse, AuthTokensDto, AuthUserDto, ClaimSpotDto, ClaimStatus, CreateConversationDto, CreateIntentionDto, CreateInterestDto, CreateMediaDto, CreateMessageDto, CreateOrderDto, CreatePostDto, CreateProductDto, CreateReplyDto, CreateReportDto, CreateResponseDto, CreateSpotDto, FulfillmentType, MediaType, NotificationResponseDto, NotificationType, NotificationsListResponseDto, OrderItemDto, OrderStatus, PaginatedPostsResponseDto, PaginatedProductsResponseDto, PaginatedSpotsResponseDto, PostReplyDto, PostReportResponseDto, PostResponseDto, PostSpotDto, PostStatus, PostStatusDto, PostStatusResponseDto, PostType, PostUserDto, ProductResponseDto, ProductStatus, ProductType, RefreshTokenDto, RefreshTokenResponseDto, ReportReason, ResponseStatus, SendOtpDto, SendOtpResponseDto, SpotCityDto, SpotClaimResponseDto, SpotImageDto, SpotIntentionDto, SpotOwnerDto, SpotResponseDto, SpotType, SpotVibeDto, UpdateIntentionDto, UpdateInterestDto, UpdateOrderStatusDto, UpdatePostDto, UpdateProductDto, UpdateResponseDto, UpdateSpotDto, UpdateUserDto, UpvoteResponseDto, UserResponseDto, VerifyOtpDto } from '@spotsdev/types';
|
|
5
|
+
import { UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, UseInfiniteQueryOptions, UseInfiniteQueryResult } from '@tanstack/react-query';
|
|
6
|
+
|
|
7
|
+
interface SDKConfig {
|
|
8
|
+
baseURL: string;
|
|
9
|
+
getAccessToken: () => string | null | Promise<string | null>;
|
|
10
|
+
refreshAccessToken?: () => Promise<string>;
|
|
11
|
+
onUnauthorized?: () => void;
|
|
12
|
+
}
|
|
13
|
+
declare function configureSDK(sdkConfig: SDKConfig): void;
|
|
14
|
+
declare function getApiClient(): AxiosInstance;
|
|
15
|
+
declare function getConfig(): SDKConfig;
|
|
16
|
+
|
|
1
17
|
/**
|
|
2
|
-
* Spots SDK
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
* Spots SDK Entity Types
|
|
19
|
+
*
|
|
20
|
+
* ALL entity and enum types are imported from @spotsdev/types (generated from OpenAPI spec).
|
|
21
|
+
* This file re-exports them with SDK-friendly aliases and adds SDK-specific types.
|
|
22
|
+
*
|
|
23
|
+
* IMPORTANT: Do NOT define entity types here - they come from spots-types.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
type SpotPostType = PostType;
|
|
27
|
+
type Spot = SpotResponseDto;
|
|
28
|
+
type SpotPost = PostResponseDto;
|
|
29
|
+
type PostReply = PostReplyDto;
|
|
30
|
+
type Product = ProductResponseDto;
|
|
31
|
+
type SpotImage = SpotImageDto;
|
|
32
|
+
type SpotVibe = SpotVibeDto;
|
|
33
|
+
type SpotIntention = SpotIntentionDto;
|
|
34
|
+
type OrderItem = OrderItemDto;
|
|
35
|
+
type Notification = NotificationResponseDto;
|
|
36
|
+
type User = SpotOwnerDto & {
|
|
37
|
+
phone?: string | null;
|
|
38
|
+
email?: string | null;
|
|
39
|
+
bio?: string | null;
|
|
40
|
+
onboardingCompleted?: boolean;
|
|
41
|
+
lastActiveAt?: Date | null;
|
|
42
|
+
createdAt?: Date;
|
|
43
|
+
updatedAt?: Date;
|
|
44
|
+
};
|
|
45
|
+
type ReportStatus = 'PENDING' | 'REVIEWED' | 'RESOLVED' | 'DISMISSED';
|
|
46
|
+
type ClubMemberRole = 'MEMBER' | 'ADMIN' | 'OWNER';
|
|
47
|
+
interface PostResponse {
|
|
48
|
+
id: string;
|
|
49
|
+
postId: string;
|
|
50
|
+
userId: string;
|
|
51
|
+
note: string | null;
|
|
52
|
+
status: ResponseStatus;
|
|
53
|
+
createdAt: Date;
|
|
54
|
+
updatedAt: Date;
|
|
55
|
+
user?: User;
|
|
56
|
+
post?: SpotPost;
|
|
57
|
+
}
|
|
58
|
+
interface PostUpvote {
|
|
59
|
+
id: string;
|
|
60
|
+
postId: string;
|
|
61
|
+
userId: string;
|
|
62
|
+
createdAt: Date;
|
|
63
|
+
}
|
|
64
|
+
interface PostUpvoter {
|
|
65
|
+
id: string;
|
|
66
|
+
userId: string;
|
|
67
|
+
name: string | null;
|
|
68
|
+
avatarUrl: string | null;
|
|
69
|
+
createdAt: Date;
|
|
70
|
+
}
|
|
71
|
+
interface PostUpvotesResponse {
|
|
72
|
+
data: PostUpvoter[];
|
|
73
|
+
meta: {
|
|
74
|
+
total: number;
|
|
75
|
+
limit: number;
|
|
76
|
+
offset: number;
|
|
77
|
+
hasMore: boolean;
|
|
78
|
+
currentUserUpvoted: boolean;
|
|
79
|
+
isPostAuthor: boolean;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
interface PostReport {
|
|
83
|
+
id: string;
|
|
84
|
+
postId: string;
|
|
85
|
+
userId: string;
|
|
86
|
+
reason: ReportReason;
|
|
87
|
+
details: string | null;
|
|
88
|
+
status: ReportStatus;
|
|
89
|
+
createdAt: Date;
|
|
90
|
+
updatedAt: Date;
|
|
91
|
+
}
|
|
92
|
+
interface Club {
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
slug: string;
|
|
96
|
+
description: string | null;
|
|
97
|
+
imageUrl: string | null;
|
|
98
|
+
isPrivate: boolean;
|
|
99
|
+
createdById: string;
|
|
100
|
+
createdAt: Date;
|
|
101
|
+
updatedAt: Date;
|
|
102
|
+
}
|
|
103
|
+
interface ClubMember {
|
|
104
|
+
id: string;
|
|
105
|
+
clubId: string;
|
|
106
|
+
userId: string;
|
|
107
|
+
role: ClubMemberRole;
|
|
108
|
+
joinedAt: Date;
|
|
109
|
+
}
|
|
110
|
+
interface Conversation {
|
|
111
|
+
id: string;
|
|
112
|
+
createdAt: Date;
|
|
113
|
+
updatedAt: Date;
|
|
114
|
+
participants?: User[];
|
|
115
|
+
messages?: Message[];
|
|
116
|
+
}
|
|
117
|
+
interface Message {
|
|
118
|
+
id: string;
|
|
119
|
+
conversationId: string;
|
|
120
|
+
senderId: string;
|
|
121
|
+
content: string;
|
|
122
|
+
createdAt: Date;
|
|
123
|
+
sender?: User;
|
|
124
|
+
}
|
|
125
|
+
interface PostTemplate {
|
|
126
|
+
id: string;
|
|
127
|
+
postType: SpotPostType;
|
|
128
|
+
emoji: string;
|
|
129
|
+
title: string;
|
|
130
|
+
placeholder: string | null;
|
|
131
|
+
isActive: boolean;
|
|
132
|
+
sortOrder: number;
|
|
133
|
+
createdAt: Date;
|
|
134
|
+
updatedAt: Date;
|
|
135
|
+
}
|
|
136
|
+
interface Vibe {
|
|
137
|
+
id: string;
|
|
138
|
+
name: string;
|
|
139
|
+
emoji: string | null;
|
|
140
|
+
createdAt: Date;
|
|
141
|
+
}
|
|
142
|
+
interface Interest {
|
|
143
|
+
id: string;
|
|
144
|
+
name: string;
|
|
145
|
+
emoji: string | null;
|
|
146
|
+
category: string | null;
|
|
147
|
+
createdAt: Date;
|
|
148
|
+
}
|
|
149
|
+
interface Intention {
|
|
150
|
+
id: string;
|
|
151
|
+
name: string;
|
|
152
|
+
emoji: string | null;
|
|
153
|
+
createdAt: Date;
|
|
154
|
+
}
|
|
155
|
+
interface LifeSituation {
|
|
156
|
+
id: string;
|
|
157
|
+
name: string;
|
|
158
|
+
emoji: string | null;
|
|
159
|
+
createdAt: Date;
|
|
160
|
+
}
|
|
161
|
+
interface UserVibe {
|
|
162
|
+
id: string;
|
|
163
|
+
name: string;
|
|
164
|
+
emoji: string | null;
|
|
165
|
+
slug?: string;
|
|
166
|
+
category?: string;
|
|
167
|
+
}
|
|
168
|
+
interface FavoriteSpot {
|
|
169
|
+
id: string;
|
|
170
|
+
userId: string;
|
|
171
|
+
spotId: string;
|
|
172
|
+
createdAt: Date;
|
|
173
|
+
spot?: Spot;
|
|
174
|
+
}
|
|
175
|
+
interface SpotSubscription {
|
|
176
|
+
id: string;
|
|
177
|
+
spotId: string;
|
|
178
|
+
userId: string;
|
|
179
|
+
createdAt: Date;
|
|
180
|
+
spot?: Spot;
|
|
181
|
+
}
|
|
182
|
+
interface SpotClaim {
|
|
183
|
+
id: string;
|
|
184
|
+
spotId: string;
|
|
185
|
+
userId: string;
|
|
186
|
+
status: ClaimStatus;
|
|
187
|
+
verificationMethod: string | null;
|
|
188
|
+
createdAt: Date;
|
|
189
|
+
updatedAt: Date;
|
|
190
|
+
}
|
|
191
|
+
interface City {
|
|
192
|
+
id: string;
|
|
193
|
+
name: string;
|
|
194
|
+
country: string;
|
|
195
|
+
latitude: number;
|
|
196
|
+
longitude: number;
|
|
197
|
+
timezone: string | null;
|
|
198
|
+
createdAt: Date;
|
|
199
|
+
}
|
|
200
|
+
interface Order {
|
|
201
|
+
id: string;
|
|
202
|
+
spotId: string;
|
|
203
|
+
userId: string;
|
|
204
|
+
status: OrderStatus;
|
|
205
|
+
subtotal: number;
|
|
206
|
+
tax: number;
|
|
207
|
+
total: number;
|
|
208
|
+
currency: string;
|
|
209
|
+
notes: string | null;
|
|
210
|
+
metadata: Record<string, unknown> | null;
|
|
211
|
+
createdAt: Date;
|
|
212
|
+
updatedAt: Date;
|
|
213
|
+
items?: OrderItem[];
|
|
214
|
+
}
|
|
215
|
+
interface PaginationMeta {
|
|
216
|
+
total: number;
|
|
217
|
+
page: number;
|
|
218
|
+
limit: number;
|
|
219
|
+
totalPages: number;
|
|
220
|
+
hasNextPage: boolean;
|
|
221
|
+
hasPreviousPage: boolean;
|
|
222
|
+
}
|
|
223
|
+
interface PaginatedResponse<T> {
|
|
224
|
+
data: T[];
|
|
225
|
+
meta: PaginationMeta;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Spots SDK Types
|
|
230
|
+
*
|
|
231
|
+
* Type sources:
|
|
232
|
+
* - Entity types (User, Spot, Post, etc.) → from ./entities (local definitions)
|
|
233
|
+
* - DTO types (CreatePostDto, etc.) → import from @spots/types (OpenAPI generated)
|
|
234
|
+
*
|
|
235
|
+
* This file provides type aliases for SDK convenience.
|
|
236
|
+
*/
|
|
237
|
+
|
|
238
|
+
type SendOtpRequest = SendOtpDto;
|
|
239
|
+
type VerifyOtpRequest = VerifyOtpDto;
|
|
240
|
+
type CreatePostRequest = CreatePostDto;
|
|
241
|
+
type CreateReplyRequest = CreateReplyDto;
|
|
242
|
+
type RespondToPostRequest = CreateResponseDto;
|
|
243
|
+
type UpdateResponseRequest = UpdateResponseDto;
|
|
244
|
+
type UpdateProfileRequest = UpdateUserDto;
|
|
245
|
+
type CreateConversationRequest = CreateConversationDto;
|
|
246
|
+
type SendMessageRequest = CreateMessageDto;
|
|
247
|
+
type ClaimSpotRequest = ClaimSpotDto;
|
|
248
|
+
type UpvoteResponse = UpvoteResponseDto;
|
|
249
|
+
type AuthResponse = VerifyOtpWrappedResponseDto;
|
|
250
|
+
type Post = SpotPost;
|
|
251
|
+
type Template = PostTemplate;
|
|
252
|
+
/**
|
|
253
|
+
* Spot summary with activity indicators
|
|
254
|
+
* Returned by /users/me/spots-summary
|
|
255
|
+
*/
|
|
256
|
+
interface SpotSummary {
|
|
257
|
+
spotId: string;
|
|
258
|
+
spotName: string;
|
|
259
|
+
spotSlug: string;
|
|
260
|
+
spotType: string;
|
|
261
|
+
postCount: number;
|
|
262
|
+
unreadMessages: number;
|
|
263
|
+
pendingResponses: number;
|
|
264
|
+
lastActivity: string | null;
|
|
265
|
+
hasNewActivity: boolean;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Response meta for spots summary
|
|
269
|
+
*/
|
|
270
|
+
interface SpotsSummaryMeta {
|
|
271
|
+
totalSpots: number;
|
|
272
|
+
totalUnreadMessages: number;
|
|
273
|
+
totalPendingResponses: number;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Full response from /users/me/spots-summary
|
|
277
|
+
*/
|
|
278
|
+
interface SpotsSummaryResponse {
|
|
279
|
+
data: SpotSummary[];
|
|
280
|
+
meta: SpotsSummaryMeta;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Auth Mutation Hooks
|
|
285
|
+
*
|
|
286
|
+
* TanStack Query hooks for authentication operations.
|
|
287
|
+
*/
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Send OTP to phone number
|
|
291
|
+
*
|
|
292
|
+
* @endpoint POST /auth/send-otp
|
|
293
|
+
*/
|
|
294
|
+
declare function useSendOtp(options?: Omit<UseMutationOptions<ApiResponse<{
|
|
295
|
+
sent: boolean;
|
|
296
|
+
}>, Error, SendOtpRequest>, 'mutationFn'>): UseMutationResult<ApiResponse<{
|
|
297
|
+
sent: boolean;
|
|
298
|
+
}>, Error, SendOtpRequest>;
|
|
299
|
+
/**
|
|
300
|
+
* Verify OTP and authenticate
|
|
301
|
+
*
|
|
302
|
+
* @endpoint POST /auth/verify-otp
|
|
303
|
+
*/
|
|
304
|
+
declare function useVerifyOtp(options?: Omit<UseMutationOptions<AuthResponse, Error, VerifyOtpRequest>, 'mutationFn'>): UseMutationResult<AuthResponse, Error, VerifyOtpRequest>;
|
|
305
|
+
/**
|
|
306
|
+
* Refresh access token
|
|
307
|
+
*
|
|
308
|
+
* @endpoint POST /auth/refresh
|
|
309
|
+
*/
|
|
310
|
+
declare function useRefreshToken(options?: Omit<UseMutationOptions<{
|
|
311
|
+
accessToken: string;
|
|
312
|
+
}, Error, {
|
|
313
|
+
refreshToken: string;
|
|
314
|
+
}>, 'mutationFn'>): UseMutationResult<{
|
|
315
|
+
accessToken: string;
|
|
316
|
+
}, Error, {
|
|
317
|
+
refreshToken: string;
|
|
318
|
+
}>;
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Users Query Hooks
|
|
322
|
+
*
|
|
323
|
+
* TanStack Query hooks for user-related operations.
|
|
324
|
+
*/
|
|
325
|
+
|
|
326
|
+
declare const userKeys: {
|
|
327
|
+
all: readonly ["users"];
|
|
328
|
+
me: () => readonly ["users", "me"];
|
|
329
|
+
stats: () => readonly ["users", "me", "stats"];
|
|
330
|
+
spotsSummary: () => readonly ["users", "me", "spots-summary"];
|
|
331
|
+
activity: (limit?: number) => readonly ["users", "me", "activity", number | undefined];
|
|
332
|
+
posts: (params?: {
|
|
333
|
+
page?: number;
|
|
334
|
+
limit?: number;
|
|
335
|
+
}) => readonly ["users", "me", "posts", {
|
|
336
|
+
page?: number;
|
|
337
|
+
limit?: number;
|
|
338
|
+
} | undefined];
|
|
339
|
+
clubs: () => readonly ["users", "me", "clubs"];
|
|
340
|
+
subscriptions: () => readonly ["users", "me", "subscriptions"];
|
|
341
|
+
blocked: () => readonly ["users", "me", "blocked"];
|
|
342
|
+
ownedSpots: () => readonly ["users", "me", "owned-spots"];
|
|
343
|
+
favorites: () => readonly ["users", "me", "favorites"];
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* Get current user's profile
|
|
347
|
+
*
|
|
348
|
+
* @endpoint GET /users/me
|
|
349
|
+
*/
|
|
350
|
+
declare function useCurrentUser(options?: Omit<UseQueryOptions<User>, 'queryKey' | 'queryFn'>): UseQueryResult<User>;
|
|
351
|
+
/**
|
|
352
|
+
* Get current user's stats
|
|
353
|
+
*
|
|
354
|
+
* @endpoint GET /users/me/stats
|
|
355
|
+
* @deprecated This endpoint doesn't exist in the API. Use useUserSpotsSummary instead.
|
|
356
|
+
*/
|
|
357
|
+
declare function useUserStats(options?: Omit<UseQueryOptions<{
|
|
358
|
+
posts: number;
|
|
359
|
+
responses: number;
|
|
360
|
+
upvotes: number;
|
|
361
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
362
|
+
posts: number;
|
|
363
|
+
responses: number;
|
|
364
|
+
upvotes: number;
|
|
365
|
+
}>;
|
|
366
|
+
/**
|
|
367
|
+
* Get current user's spots summary with activity indicators
|
|
368
|
+
*
|
|
369
|
+
* Returns list of spots where user has posted, with:
|
|
370
|
+
* - Post count per spot
|
|
371
|
+
* - Unread messages count
|
|
372
|
+
* - Pending responses count
|
|
373
|
+
* - Last activity timestamp
|
|
374
|
+
*
|
|
375
|
+
* @endpoint GET /users/me/spots-summary
|
|
376
|
+
*/
|
|
377
|
+
declare function useUserSpotsSummary(options?: Omit<UseQueryOptions<SpotsSummaryResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<SpotsSummaryResponse>;
|
|
378
|
+
/**
|
|
379
|
+
* Get current user's activity
|
|
380
|
+
*
|
|
381
|
+
* @endpoint GET /users/me/activity
|
|
382
|
+
*/
|
|
383
|
+
declare function useUserActivity(limit?: number, options?: Omit<UseQueryOptions<unknown[]>, 'queryKey' | 'queryFn'>): UseQueryResult<unknown[]>;
|
|
384
|
+
/**
|
|
385
|
+
* Get current user's posts
|
|
386
|
+
*
|
|
387
|
+
* @endpoint GET /user/me/posts
|
|
388
|
+
*/
|
|
389
|
+
declare function useUserPosts(params?: {
|
|
390
|
+
page?: number;
|
|
391
|
+
limit?: number;
|
|
392
|
+
}, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
|
|
393
|
+
/**
|
|
394
|
+
* Get current user's clubs
|
|
395
|
+
*
|
|
396
|
+
* @endpoint GET /user/me/clubs
|
|
397
|
+
*/
|
|
398
|
+
declare function useUserClubs(options?: Omit<UseQueryOptions<Club[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Club[]>;
|
|
399
|
+
/**
|
|
400
|
+
* Get current user's spot subscriptions
|
|
401
|
+
*
|
|
402
|
+
* @endpoint GET /user/me/subscriptions
|
|
403
|
+
*/
|
|
404
|
+
declare function useUserSubscriptions(options?: Omit<UseQueryOptions<SpotSubscription[]>, 'queryKey' | 'queryFn'>): UseQueryResult<SpotSubscription[]>;
|
|
405
|
+
/**
|
|
406
|
+
* Get blocked users list
|
|
407
|
+
*
|
|
408
|
+
* @endpoint GET /user/me/blocked
|
|
409
|
+
*/
|
|
410
|
+
declare function useBlockedUsers(options?: Omit<UseQueryOptions<User[]>, 'queryKey' | 'queryFn'>): UseQueryResult<User[]>;
|
|
411
|
+
/**
|
|
412
|
+
* Get current user's owned spots (for business owners)
|
|
413
|
+
*
|
|
414
|
+
* @endpoint GET /users/me/owned-spots
|
|
415
|
+
*/
|
|
416
|
+
declare function useOwnedSpots(options?: Omit<UseQueryOptions<Spot[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Spot[]>;
|
|
417
|
+
/**
|
|
418
|
+
* Get current user's favorite spots
|
|
419
|
+
*
|
|
420
|
+
* @endpoint GET /users/me/favorites
|
|
421
|
+
*/
|
|
422
|
+
declare function useUserFavorites(options?: Omit<UseQueryOptions<FavoriteSpot[]>, 'queryKey' | 'queryFn'>): UseQueryResult<FavoriteSpot[]>;
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Spots Query Hooks
|
|
426
|
+
*
|
|
427
|
+
* TanStack Query hooks for spot-related operations.
|
|
428
|
+
*/
|
|
429
|
+
|
|
430
|
+
declare const spotKeys: {
|
|
431
|
+
all: readonly ["spots"];
|
|
432
|
+
lists: () => readonly ["spots", "list"];
|
|
433
|
+
list: (filters?: Record<string, unknown>) => readonly ["spots", "list", Record<string, unknown> | undefined];
|
|
434
|
+
details: () => readonly ["spots", "detail"];
|
|
435
|
+
detail: (id: string) => readonly ["spots", "detail", string];
|
|
436
|
+
bySlug: (slug: string) => readonly ["spots", "slug", string];
|
|
437
|
+
byQR: (qrCode: string) => readonly ["spots", "qr", string];
|
|
438
|
+
images: (spotId: string) => readonly ["spots", "detail", string, "images"];
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Get all spots
|
|
442
|
+
*
|
|
443
|
+
* @endpoint GET /spots
|
|
444
|
+
*/
|
|
445
|
+
declare function useSpots(params?: {
|
|
446
|
+
limit?: number;
|
|
447
|
+
city?: string;
|
|
448
|
+
type?: string;
|
|
449
|
+
lat?: number;
|
|
450
|
+
lng?: number;
|
|
451
|
+
radius?: number;
|
|
452
|
+
search?: string;
|
|
453
|
+
vibes?: string;
|
|
454
|
+
cityId?: string;
|
|
455
|
+
page?: number;
|
|
456
|
+
}, options?: Omit<UseQueryOptions<Spot[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Spot[]>;
|
|
457
|
+
/**
|
|
458
|
+
* Get a spot by ID
|
|
459
|
+
*
|
|
460
|
+
* @endpoint GET /spots/{spotId}
|
|
461
|
+
*/
|
|
462
|
+
declare function useSpot(spotId: string, options?: Omit<UseQueryOptions<Spot>, 'queryKey' | 'queryFn'>): UseQueryResult<Spot>;
|
|
463
|
+
/**
|
|
464
|
+
* Get a spot by slug
|
|
465
|
+
*
|
|
466
|
+
* @endpoint GET /spots/slug/{slug}
|
|
467
|
+
*/
|
|
468
|
+
declare function useSpotBySlug(slug: string, options?: Omit<UseQueryOptions<Spot>, 'queryKey' | 'queryFn'>): UseQueryResult<Spot>;
|
|
469
|
+
/**
|
|
470
|
+
* Get a spot by QR code
|
|
471
|
+
*
|
|
472
|
+
* @endpoint GET /spots/qr/{qrCode}
|
|
473
|
+
*/
|
|
474
|
+
declare function useSpotByQR(qrCode: string, options?: Omit<UseQueryOptions<Spot>, 'queryKey' | 'queryFn'>): UseQueryResult<Spot>;
|
|
475
|
+
/**
|
|
476
|
+
* Get images for a spot
|
|
477
|
+
*
|
|
478
|
+
* @endpoint GET /spots/{spotId}/images
|
|
479
|
+
*/
|
|
480
|
+
declare function useSpotImages(spotId: string, options?: Omit<UseQueryOptions<SpotImage[]>, 'queryKey' | 'queryFn'>): UseQueryResult<SpotImage[]>;
|
|
481
|
+
/**
|
|
482
|
+
* Check if a spot is favorited by the current user
|
|
483
|
+
*
|
|
484
|
+
* @endpoint GET /spots/{spotId}/favorite
|
|
485
|
+
*/
|
|
486
|
+
declare function useSpotFavoriteStatus(spotId: string, options?: Omit<UseQueryOptions<{
|
|
487
|
+
isFavorite: boolean;
|
|
488
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
489
|
+
isFavorite: boolean;
|
|
490
|
+
}>;
|
|
491
|
+
/**
|
|
492
|
+
* Params for infinite spots query
|
|
493
|
+
*/
|
|
494
|
+
interface InfiniteSpotsParams {
|
|
495
|
+
limit?: number;
|
|
496
|
+
city?: string;
|
|
497
|
+
cityId?: string;
|
|
498
|
+
type?: string;
|
|
499
|
+
templateSlugs?: string[];
|
|
500
|
+
vibeIds?: string[];
|
|
501
|
+
search?: string;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Infinite scroll query for spots
|
|
505
|
+
*
|
|
506
|
+
* @endpoint GET /spots (paginated)
|
|
507
|
+
* @returns Infinite query with pages of spots
|
|
508
|
+
*/
|
|
509
|
+
declare function useInfiniteSpots(params?: InfiniteSpotsParams, options?: Omit<UseInfiniteQueryOptions<PaginatedResponse<Spot>, Error, {
|
|
510
|
+
pages: PaginatedResponse<Spot>[];
|
|
511
|
+
pageParams: number[];
|
|
512
|
+
}>, 'queryKey' | 'queryFn' | 'getNextPageParam' | 'initialPageParam'>): UseInfiniteQueryResult<{
|
|
513
|
+
pages: PaginatedResponse<Spot>[];
|
|
514
|
+
pageParams: number[];
|
|
515
|
+
}, Error>;
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* Posts Query Hooks
|
|
519
|
+
*
|
|
520
|
+
* TanStack Query hooks for post/board operations.
|
|
521
|
+
*/
|
|
522
|
+
|
|
523
|
+
declare const postKeys: {
|
|
524
|
+
all: readonly ["posts"];
|
|
525
|
+
lists: () => readonly ["posts", "list"];
|
|
526
|
+
list: (filters?: Record<string, unknown>) => readonly ["posts", "list", Record<string, unknown> | undefined];
|
|
527
|
+
bySpot: (spotId: string, filters?: Record<string, unknown>) => readonly ["posts", "spot", string, Record<string, unknown> | undefined];
|
|
528
|
+
details: () => readonly ["posts", "detail"];
|
|
529
|
+
detail: (id: string) => readonly ["posts", "detail", string];
|
|
530
|
+
responses: (postId: string) => readonly ["posts", "detail", string, "responses"];
|
|
531
|
+
status: (postId: string) => readonly ["posts", "detail", string, "status"];
|
|
532
|
+
upvotes: (postId: string, filters?: {
|
|
533
|
+
limit?: number;
|
|
534
|
+
offset?: number;
|
|
535
|
+
}) => readonly ["posts", "detail", string, "upvotes", {
|
|
536
|
+
limit?: number;
|
|
537
|
+
offset?: number;
|
|
538
|
+
} | undefined];
|
|
539
|
+
};
|
|
540
|
+
/**
|
|
541
|
+
* Get posts for a spot
|
|
542
|
+
*
|
|
543
|
+
* @endpoint GET /spots/{spotId}/posts
|
|
544
|
+
*/
|
|
545
|
+
declare function useSpotPosts(spotId: string, params?: {
|
|
546
|
+
postType?: string;
|
|
547
|
+
status?: string;
|
|
548
|
+
page?: number;
|
|
549
|
+
limit?: number;
|
|
550
|
+
}, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
|
|
551
|
+
/**
|
|
552
|
+
* Get a single post by ID
|
|
553
|
+
*
|
|
554
|
+
* @endpoint GET /posts/{postId}
|
|
555
|
+
*/
|
|
556
|
+
declare function usePost(postId: string, options?: Omit<UseQueryOptions<Post>, 'queryKey' | 'queryFn'>): UseQueryResult<Post>;
|
|
557
|
+
/**
|
|
558
|
+
* Get responses for a post
|
|
559
|
+
*
|
|
560
|
+
* @endpoint GET /posts/{postId}/responses
|
|
561
|
+
*/
|
|
562
|
+
declare function usePostResponses(postId: string, options?: Omit<UseQueryOptions<PostResponse[]>, 'queryKey' | 'queryFn'>): UseQueryResult<PostResponse[]>;
|
|
563
|
+
/**
|
|
564
|
+
* Get all posts (with filters)
|
|
565
|
+
*
|
|
566
|
+
* @endpoint GET /posts
|
|
567
|
+
*/
|
|
568
|
+
declare function usePosts(params?: {
|
|
569
|
+
postType?: string;
|
|
570
|
+
limit?: number;
|
|
571
|
+
}, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
|
|
572
|
+
/**
|
|
573
|
+
* Get user's status for a post (read/hidden/pinned)
|
|
574
|
+
*
|
|
575
|
+
* @endpoint GET /posts/{postId}/status
|
|
576
|
+
*/
|
|
577
|
+
declare function usePostStatus(postId: string, options?: Omit<UseQueryOptions<PostStatusDto>, 'queryKey' | 'queryFn'>): UseQueryResult<PostStatusDto>;
|
|
578
|
+
/**
|
|
579
|
+
* Get upvotes for a post (list of users who upvoted)
|
|
580
|
+
*
|
|
581
|
+
* @endpoint GET /posts/{postId}/upvotes
|
|
582
|
+
*/
|
|
583
|
+
declare function usePostUpvotes(postId: string, params?: {
|
|
584
|
+
limit?: number;
|
|
585
|
+
offset?: number;
|
|
586
|
+
}, options?: Omit<UseQueryOptions<PostUpvotesResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<PostUpvotesResponse>;
|
|
587
|
+
/**
|
|
588
|
+
* Get nearby posts feed
|
|
589
|
+
*
|
|
590
|
+
* @endpoint GET /posts/feed
|
|
591
|
+
*/
|
|
592
|
+
declare function usePostsFeed(params: {
|
|
593
|
+
lat: number;
|
|
594
|
+
lng: number;
|
|
595
|
+
radius?: number;
|
|
596
|
+
postType?: string;
|
|
597
|
+
cursor?: string;
|
|
598
|
+
limit?: number;
|
|
599
|
+
}, options?: Omit<UseQueryOptions<{
|
|
600
|
+
posts: Post[];
|
|
601
|
+
hasMore: boolean;
|
|
602
|
+
nextCursor?: string;
|
|
603
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
604
|
+
posts: Post[];
|
|
605
|
+
hasMore: boolean;
|
|
606
|
+
nextCursor?: string;
|
|
607
|
+
}>;
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Conversations Query Hooks
|
|
611
|
+
*
|
|
612
|
+
* TanStack Query hooks for conversation/messaging operations.
|
|
613
|
+
*/
|
|
614
|
+
|
|
615
|
+
declare const conversationKeys: {
|
|
616
|
+
all: readonly ["conversations"];
|
|
617
|
+
lists: () => readonly ["conversations", "list"];
|
|
618
|
+
list: () => readonly ["conversations", "list"];
|
|
619
|
+
details: () => readonly ["conversations", "detail"];
|
|
620
|
+
detail: (id: string) => readonly ["conversations", "detail", string];
|
|
621
|
+
messages: (conversationId: string, params?: {
|
|
622
|
+
before?: string;
|
|
623
|
+
}) => readonly ["conversations", "detail", string, "messages", {
|
|
624
|
+
before?: string;
|
|
625
|
+
} | undefined];
|
|
626
|
+
};
|
|
627
|
+
/**
|
|
628
|
+
* Get all conversations for current user
|
|
629
|
+
*
|
|
630
|
+
* @endpoint GET /conversations
|
|
631
|
+
*/
|
|
632
|
+
declare function useConversations(options?: Omit<UseQueryOptions<Conversation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Conversation[]>;
|
|
633
|
+
/**
|
|
634
|
+
* Get a single conversation with details
|
|
635
|
+
*
|
|
636
|
+
* @endpoint GET /conversations/{id}
|
|
637
|
+
*/
|
|
638
|
+
declare function useConversation(conversationId: string, options?: Omit<UseQueryOptions<Conversation>, 'queryKey' | 'queryFn'>): UseQueryResult<Conversation>;
|
|
639
|
+
/**
|
|
640
|
+
* Get messages for a conversation
|
|
641
|
+
*
|
|
642
|
+
* @endpoint GET /conversations/{id}/messages
|
|
643
|
+
*/
|
|
644
|
+
declare function useConversationMessages(conversationId: string, params?: {
|
|
645
|
+
limit?: number;
|
|
646
|
+
before?: string;
|
|
647
|
+
}, options?: Omit<UseQueryOptions<{
|
|
648
|
+
data: Message[];
|
|
649
|
+
meta: {
|
|
650
|
+
hasMore: boolean;
|
|
651
|
+
oldestMessageAt: string | null;
|
|
652
|
+
};
|
|
653
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
654
|
+
data: Message[];
|
|
655
|
+
meta: {
|
|
656
|
+
hasMore: boolean;
|
|
657
|
+
oldestMessageAt: string | null;
|
|
658
|
+
};
|
|
659
|
+
}>;
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Clubs Query Hooks
|
|
663
|
+
*
|
|
664
|
+
* TanStack Query hooks for club operations.
|
|
665
|
+
*/
|
|
666
|
+
|
|
667
|
+
declare const clubKeys: {
|
|
668
|
+
all: readonly ["clubs"];
|
|
669
|
+
bySpot: (spotId: string) => readonly ["clubs", "spot", string];
|
|
670
|
+
details: () => readonly ["clubs", "detail"];
|
|
671
|
+
detail: (id: string) => readonly ["clubs", "detail", string];
|
|
672
|
+
bySlug: (slug: string) => readonly ["clubs", "slug", string];
|
|
673
|
+
byUser: (userId: string) => readonly ["clubs", "user", string];
|
|
674
|
+
membership: (clubId: string, userId: string) => readonly ["clubs", "detail", string, "membership", string];
|
|
675
|
+
};
|
|
676
|
+
/**
|
|
677
|
+
* Get clubs for a spot
|
|
678
|
+
*
|
|
679
|
+
* @endpoint GET /clubs/spot/{spotId}
|
|
680
|
+
*/
|
|
681
|
+
declare function useClubsBySpot(spotId: string, options?: Omit<UseQueryOptions<Club[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Club[]>;
|
|
682
|
+
/**
|
|
683
|
+
* Get a club by ID
|
|
684
|
+
*
|
|
685
|
+
* @endpoint GET /clubs/{id}
|
|
686
|
+
*/
|
|
687
|
+
declare function useClub(clubId: string, options?: Omit<UseQueryOptions<Club>, 'queryKey' | 'queryFn'>): UseQueryResult<Club>;
|
|
688
|
+
/**
|
|
689
|
+
* Get a club by slug
|
|
690
|
+
*
|
|
691
|
+
* @endpoint GET /clubs/slug/{slug}
|
|
692
|
+
*/
|
|
693
|
+
declare function useClubBySlug(slug: string, options?: Omit<UseQueryOptions<Club>, 'queryKey' | 'queryFn'>): UseQueryResult<Club>;
|
|
694
|
+
/**
|
|
695
|
+
* Get clubs for a user
|
|
696
|
+
*
|
|
697
|
+
* @endpoint GET /clubs/user/{userId}
|
|
698
|
+
*/
|
|
699
|
+
declare function useClubsByUser(userId: string, options?: Omit<UseQueryOptions<Club[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Club[]>;
|
|
700
|
+
/**
|
|
701
|
+
* Get membership status for a user in a club
|
|
702
|
+
*
|
|
703
|
+
* @endpoint GET /clubs/{id}/membership/{userId}
|
|
704
|
+
*/
|
|
705
|
+
declare function useClubMembership(clubId: string, userId: string, options?: Omit<UseQueryOptions<{
|
|
706
|
+
isMember: boolean;
|
|
707
|
+
role?: string;
|
|
708
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
709
|
+
isMember: boolean;
|
|
710
|
+
role?: string;
|
|
711
|
+
}>;
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Templates Query Hooks
|
|
715
|
+
*
|
|
716
|
+
* TanStack Query hooks for post template operations.
|
|
717
|
+
*/
|
|
718
|
+
|
|
719
|
+
declare const templateKeys: {
|
|
720
|
+
all: readonly ["templates"];
|
|
721
|
+
lists: () => readonly ["templates", "list"];
|
|
722
|
+
list: (filters?: {
|
|
723
|
+
spotType?: string;
|
|
724
|
+
}) => readonly ["templates", "list", {
|
|
725
|
+
spotType?: string;
|
|
726
|
+
} | undefined];
|
|
727
|
+
details: () => readonly ["templates", "detail"];
|
|
728
|
+
detail: (id: string) => readonly ["templates", "detail", string];
|
|
729
|
+
bySlug: (slug: string) => readonly ["templates", "slug", string];
|
|
730
|
+
};
|
|
731
|
+
/**
|
|
732
|
+
* Get all templates
|
|
733
|
+
*
|
|
734
|
+
* @endpoint GET /templates
|
|
735
|
+
*/
|
|
736
|
+
declare function useTemplates(params?: {
|
|
737
|
+
spotType?: string;
|
|
738
|
+
}, options?: Omit<UseQueryOptions<Template[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Template[]>;
|
|
739
|
+
/**
|
|
740
|
+
* Get a template by ID
|
|
741
|
+
*
|
|
742
|
+
* @endpoint GET /templates/{templateId}
|
|
743
|
+
*/
|
|
744
|
+
declare function useTemplate(templateId: string, options?: Omit<UseQueryOptions<Template>, 'queryKey' | 'queryFn'>): UseQueryResult<Template>;
|
|
745
|
+
/**
|
|
746
|
+
* Get a template by slug
|
|
747
|
+
*
|
|
748
|
+
* @endpoint GET /templates/slug/{slug}
|
|
749
|
+
*/
|
|
750
|
+
declare function useTemplateBySlug(slug: string, options?: Omit<UseQueryOptions<Template>, 'queryKey' | 'queryFn'>): UseQueryResult<Template>;
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Notifications Query Hooks
|
|
754
|
+
*
|
|
755
|
+
* TanStack Query hooks for notification operations.
|
|
756
|
+
*/
|
|
757
|
+
|
|
758
|
+
declare const notificationKeys: {
|
|
759
|
+
all: readonly ["notifications"];
|
|
760
|
+
lists: () => readonly ["notifications", "list"];
|
|
761
|
+
list: (params?: {
|
|
762
|
+
limit?: number;
|
|
763
|
+
unreadOnly?: boolean;
|
|
764
|
+
}) => readonly ["notifications", "list", {
|
|
765
|
+
limit?: number;
|
|
766
|
+
unreadOnly?: boolean;
|
|
767
|
+
} | undefined];
|
|
768
|
+
unreadCount: () => readonly ["notifications", "unreadCount"];
|
|
769
|
+
};
|
|
770
|
+
/**
|
|
771
|
+
* Get notifications for current user
|
|
772
|
+
*
|
|
773
|
+
* @endpoint GET /notifications
|
|
774
|
+
*/
|
|
775
|
+
declare function useNotifications(params?: {
|
|
776
|
+
limit?: number;
|
|
777
|
+
unreadOnly?: boolean;
|
|
778
|
+
}, options?: Omit<UseQueryOptions<Notification[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Notification[]>;
|
|
779
|
+
/**
|
|
780
|
+
* Get unread notification count
|
|
781
|
+
*
|
|
782
|
+
* @endpoint GET /notifications/unread-count
|
|
783
|
+
*/
|
|
784
|
+
declare function useUnreadNotificationCount(options?: Omit<UseQueryOptions<number>, 'queryKey' | 'queryFn'>): UseQueryResult<number>;
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Misc Query Hooks
|
|
788
|
+
*
|
|
789
|
+
* TanStack Query hooks for cities, vibes, and other reference data.
|
|
790
|
+
*/
|
|
791
|
+
|
|
792
|
+
declare const miscKeys: {
|
|
793
|
+
cities: () => readonly ["cities"];
|
|
794
|
+
vibes: () => readonly ["vibes"];
|
|
795
|
+
lifeSituations: () => readonly ["life-situations"];
|
|
796
|
+
};
|
|
797
|
+
/**
|
|
798
|
+
* Get all cities
|
|
799
|
+
*
|
|
800
|
+
* @endpoint GET /cities
|
|
801
|
+
*/
|
|
802
|
+
declare function useCities(options?: Omit<UseQueryOptions<City[]>, 'queryKey' | 'queryFn'>): UseQueryResult<City[]>;
|
|
803
|
+
/**
|
|
804
|
+
* Get all vibes
|
|
805
|
+
*
|
|
806
|
+
* @endpoint GET /vibes
|
|
807
|
+
*/
|
|
808
|
+
declare function useVibes(options?: Omit<UseQueryOptions<Vibe[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Vibe[]>;
|
|
809
|
+
/**
|
|
810
|
+
* Get all life situations (for onboarding)
|
|
811
|
+
*
|
|
812
|
+
* @endpoint GET /life-situations
|
|
813
|
+
*/
|
|
814
|
+
declare function useLifeSituations(options?: Omit<UseQueryOptions<LifeSituation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<LifeSituation[]>;
|
|
815
|
+
|
|
816
|
+
/**
|
|
817
|
+
* Products Query Hooks
|
|
818
|
+
*
|
|
819
|
+
* TanStack Query hooks for product-related operations.
|
|
820
|
+
*/
|
|
821
|
+
|
|
822
|
+
declare const productKeys: {
|
|
823
|
+
all: readonly ["products"];
|
|
824
|
+
lists: () => readonly ["products", "list"];
|
|
825
|
+
list: (filters?: Record<string, unknown>) => readonly ["products", "list", Record<string, unknown> | undefined];
|
|
826
|
+
details: () => readonly ["products", "detail"];
|
|
827
|
+
detail: (id: string) => readonly ["products", "detail", string];
|
|
828
|
+
bySlug: (spotId: string, slug: string) => readonly ["products", "slug", string, string];
|
|
829
|
+
bySpot: (spotId: string) => readonly ["products", "spot", string];
|
|
830
|
+
};
|
|
831
|
+
interface ProductFilters {
|
|
832
|
+
spotId?: string;
|
|
833
|
+
type?: ProductType;
|
|
834
|
+
status?: ProductStatus;
|
|
835
|
+
limit?: number;
|
|
836
|
+
page?: number;
|
|
837
|
+
}
|
|
838
|
+
interface ProductWithSpot extends Product {
|
|
839
|
+
spot: Pick<Spot, 'id' | 'name' | 'slug'>;
|
|
840
|
+
}
|
|
841
|
+
/**
|
|
842
|
+
* Get products for a spot (public browse)
|
|
843
|
+
*
|
|
844
|
+
* @endpoint GET /spots/{spotId}/products
|
|
845
|
+
*/
|
|
846
|
+
declare function useSpotProducts(spotId: string, params?: {
|
|
847
|
+
type?: ProductType;
|
|
848
|
+
limit?: number;
|
|
849
|
+
page?: number;
|
|
850
|
+
}, options?: Omit<UseQueryOptions<PaginatedResponse<Product>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Product>>;
|
|
851
|
+
/**
|
|
852
|
+
* Get a product by ID
|
|
853
|
+
*
|
|
854
|
+
* @endpoint GET /products/{productId}
|
|
855
|
+
*/
|
|
856
|
+
declare function useProduct(productId: string, options?: Omit<UseQueryOptions<ProductWithSpot>, 'queryKey' | 'queryFn'>): UseQueryResult<ProductWithSpot>;
|
|
857
|
+
/**
|
|
858
|
+
* Get a product by slug (within a spot)
|
|
859
|
+
*
|
|
860
|
+
* @endpoint GET /spots/{spotId}/products/slug/{slug}
|
|
861
|
+
*/
|
|
862
|
+
declare function useProductBySlug(spotId: string, slug: string, options?: Omit<UseQueryOptions<ProductWithSpot>, 'queryKey' | 'queryFn'>): UseQueryResult<ProductWithSpot>;
|
|
863
|
+
|
|
864
|
+
/**
|
|
865
|
+
* Orders Query Hooks
|
|
866
|
+
*
|
|
867
|
+
* TanStack Query hooks for order-related operations.
|
|
868
|
+
*/
|
|
869
|
+
|
|
870
|
+
declare const orderKeys: {
|
|
871
|
+
all: readonly ["orders"];
|
|
872
|
+
lists: () => readonly ["orders", "list"];
|
|
873
|
+
list: (filters?: Record<string, unknown>) => readonly ["orders", "list", Record<string, unknown> | undefined];
|
|
874
|
+
details: () => readonly ["orders", "detail"];
|
|
875
|
+
detail: (id: string) => readonly ["orders", "detail", string];
|
|
876
|
+
myOrders: () => readonly ["orders", "my"];
|
|
877
|
+
spotOrders: (spotId: string) => readonly ["orders", "spot", string];
|
|
878
|
+
};
|
|
879
|
+
interface OrderWithDetails extends Order {
|
|
880
|
+
items: (OrderItem & {
|
|
881
|
+
product: Pick<Product, 'id' | 'name' | 'slug' | 'type' | 'imageUrl'>;
|
|
882
|
+
})[];
|
|
883
|
+
spot: Pick<Spot, 'id' | 'name' | 'slug'>;
|
|
884
|
+
}
|
|
885
|
+
interface OrderFilters {
|
|
886
|
+
status?: OrderStatus;
|
|
887
|
+
limit?: number;
|
|
888
|
+
page?: number;
|
|
889
|
+
}
|
|
890
|
+
/**
|
|
891
|
+
* Get current user's orders (purchases)
|
|
892
|
+
*
|
|
893
|
+
* @endpoint GET /users/me/orders
|
|
894
|
+
*/
|
|
895
|
+
declare function useMyOrders(params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
896
|
+
/**
|
|
897
|
+
* Get a single order by ID
|
|
898
|
+
*
|
|
899
|
+
* @endpoint GET /orders/{orderId}
|
|
900
|
+
*/
|
|
901
|
+
declare function useOrder(orderId: string, options?: Omit<UseQueryOptions<OrderWithDetails>, 'queryKey' | 'queryFn'>): UseQueryResult<OrderWithDetails>;
|
|
902
|
+
/**
|
|
903
|
+
* Get orders for a spot (seller view)
|
|
904
|
+
*
|
|
905
|
+
* @endpoint GET /seller/spots/{spotId}/orders
|
|
906
|
+
*/
|
|
907
|
+
declare function useSpotOrders(spotId: string, params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
908
|
+
|
|
909
|
+
/**
|
|
910
|
+
* Wallet Query Hooks
|
|
911
|
+
*
|
|
912
|
+
* TanStack Query hooks for wallet and redemption operations.
|
|
913
|
+
*/
|
|
914
|
+
|
|
915
|
+
type RedemptionStatus = 'PENDING' | 'REDEEMED' | 'EXPIRED' | 'CANCELLED' | 'VOID';
|
|
916
|
+
interface WalletProduct {
|
|
917
|
+
id: string;
|
|
918
|
+
name: string;
|
|
919
|
+
type: string;
|
|
920
|
+
imageUrl: string | null;
|
|
921
|
+
}
|
|
922
|
+
interface WalletOrderItem {
|
|
923
|
+
product: WalletProduct;
|
|
924
|
+
quantity: number;
|
|
925
|
+
unitPrice: number;
|
|
926
|
+
}
|
|
927
|
+
interface WalletOrder {
|
|
928
|
+
id: string;
|
|
929
|
+
orderNumber: string;
|
|
930
|
+
spotId: string;
|
|
931
|
+
createdAt: string;
|
|
932
|
+
spot: {
|
|
933
|
+
id: string;
|
|
934
|
+
name: string;
|
|
935
|
+
slug: string;
|
|
936
|
+
address: string | null;
|
|
937
|
+
};
|
|
938
|
+
}
|
|
939
|
+
interface WalletRedemption {
|
|
940
|
+
id: string;
|
|
941
|
+
qrCode: string;
|
|
942
|
+
qrCodeUrl: string | null;
|
|
943
|
+
status: RedemptionStatus;
|
|
944
|
+
validFrom: string;
|
|
945
|
+
validUntil: string;
|
|
946
|
+
redeemedAt: string | null;
|
|
947
|
+
createdAt: string;
|
|
948
|
+
orderItem: WalletOrderItem & {
|
|
949
|
+
order: WalletOrder;
|
|
950
|
+
};
|
|
951
|
+
}
|
|
952
|
+
interface RedemptionLookup extends WalletRedemption {
|
|
953
|
+
redeemedBy: {
|
|
954
|
+
id: string;
|
|
955
|
+
name: string;
|
|
956
|
+
} | null;
|
|
957
|
+
spot: {
|
|
958
|
+
id: string;
|
|
959
|
+
name: string;
|
|
960
|
+
} | null;
|
|
961
|
+
orderItem: WalletOrderItem & {
|
|
962
|
+
order: WalletOrder & {
|
|
963
|
+
user: {
|
|
964
|
+
id: string;
|
|
965
|
+
name: string | null;
|
|
966
|
+
avatarUrl: string | null;
|
|
967
|
+
};
|
|
968
|
+
};
|
|
969
|
+
};
|
|
970
|
+
}
|
|
971
|
+
interface WalletHistoryResponse {
|
|
972
|
+
data: WalletRedemption[];
|
|
973
|
+
meta: {
|
|
974
|
+
total: number;
|
|
975
|
+
page: number;
|
|
976
|
+
limit: number;
|
|
977
|
+
totalPages: number;
|
|
978
|
+
};
|
|
979
|
+
}
|
|
980
|
+
declare const walletKeys: {
|
|
981
|
+
all: readonly ["wallet"];
|
|
982
|
+
active: () => readonly ["wallet", "active"];
|
|
983
|
+
history: (page?: number) => readonly ["wallet", "history", number | undefined];
|
|
984
|
+
redemptions: () => readonly ["redemptions"];
|
|
985
|
+
lookup: (qrCode: string) => readonly ["redemptions", "lookup", string];
|
|
986
|
+
spotRedemptions: (spotId: string, page?: number) => readonly ["redemptions", "spot", string, number | undefined];
|
|
987
|
+
};
|
|
988
|
+
/**
|
|
989
|
+
* Get user's active wallet items (pending redemptions)
|
|
990
|
+
*
|
|
991
|
+
* @endpoint GET /wallet
|
|
992
|
+
*/
|
|
993
|
+
declare function useWallet(options?: Omit<UseQueryOptions<WalletRedemption[]>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletRedemption[]>;
|
|
994
|
+
/**
|
|
995
|
+
* Get user's wallet history (all redemptions)
|
|
996
|
+
*
|
|
997
|
+
* @endpoint GET /wallet/history
|
|
998
|
+
*/
|
|
999
|
+
declare function useWalletHistory(params?: {
|
|
1000
|
+
page?: number;
|
|
1001
|
+
limit?: number;
|
|
1002
|
+
}, options?: Omit<UseQueryOptions<WalletHistoryResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletHistoryResponse>;
|
|
1003
|
+
/**
|
|
1004
|
+
* Lookup redemption by QR code (for scanner)
|
|
1005
|
+
*
|
|
1006
|
+
* @endpoint GET /redemptions/lookup/:qrCode
|
|
1007
|
+
*/
|
|
1008
|
+
declare function useRedemptionLookup(qrCode: string, options?: Omit<UseQueryOptions<RedemptionLookup>, 'queryKey' | 'queryFn'>): UseQueryResult<RedemptionLookup>;
|
|
1009
|
+
/**
|
|
1010
|
+
* Get spot's redemption history (for spot owner)
|
|
1011
|
+
*
|
|
1012
|
+
* @endpoint GET /spots/:spotId/redemptions
|
|
1013
|
+
*/
|
|
1014
|
+
declare function useSpotRedemptions(spotId: string, params?: {
|
|
1015
|
+
page?: number;
|
|
1016
|
+
limit?: number;
|
|
1017
|
+
}, options?: Omit<UseQueryOptions<WalletHistoryResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletHistoryResponse>;
|
|
1018
|
+
|
|
1019
|
+
/**
|
|
1020
|
+
* Payments Query Hooks
|
|
1021
|
+
*
|
|
1022
|
+
* TanStack Query hooks for payment configuration.
|
|
1023
|
+
*/
|
|
1024
|
+
|
|
1025
|
+
declare const paymentKeys: {
|
|
1026
|
+
all: readonly ["payments"];
|
|
1027
|
+
config: () => readonly ["payments", "config"];
|
|
1028
|
+
};
|
|
1029
|
+
/**
|
|
1030
|
+
* Payment configuration returned by GET /payments/config
|
|
1031
|
+
*/
|
|
1032
|
+
interface PaymentConfig {
|
|
1033
|
+
stripe: {
|
|
1034
|
+
publishableKey: string | null;
|
|
1035
|
+
enabled: boolean;
|
|
1036
|
+
};
|
|
1037
|
+
coinbase: {
|
|
1038
|
+
enabled: boolean;
|
|
1039
|
+
};
|
|
1040
|
+
supportedMethods: Array<'card' | 'apple_pay' | 'google_pay' | 'crypto'>;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Get payment configuration
|
|
1044
|
+
* Returns publishable keys and enabled payment methods
|
|
1045
|
+
*
|
|
1046
|
+
* @endpoint GET /payments/config
|
|
1047
|
+
*/
|
|
1048
|
+
declare function usePaymentConfig(options?: Omit<UseQueryOptions<PaymentConfig>, 'queryKey' | 'queryFn'>): UseQueryResult<PaymentConfig>;
|
|
1049
|
+
|
|
1050
|
+
/**
|
|
1051
|
+
* Users Mutation Hooks
|
|
1052
|
+
*
|
|
1053
|
+
* TanStack Query hooks for user mutation operations.
|
|
1054
|
+
*/
|
|
1055
|
+
|
|
1056
|
+
/**
|
|
1057
|
+
* Update current user's profile
|
|
1058
|
+
*
|
|
1059
|
+
* @endpoint PUT /users/me
|
|
1060
|
+
*/
|
|
1061
|
+
declare function useUpdateProfile(options?: Omit<UseMutationOptions<User, Error, UpdateProfileRequest>, 'mutationFn'>): UseMutationResult<User, Error, UpdateProfileRequest>;
|
|
1062
|
+
/**
|
|
1063
|
+
* Upload avatar
|
|
1064
|
+
*
|
|
1065
|
+
* Uploads avatar file and updates user profile in one request.
|
|
1066
|
+
*
|
|
1067
|
+
* @endpoint POST /users/me/avatar
|
|
1068
|
+
*/
|
|
1069
|
+
declare function useUploadAvatar(options?: Omit<UseMutationOptions<{
|
|
1070
|
+
avatarUrl: string;
|
|
1071
|
+
}, Error, FormData>, 'mutationFn'>): UseMutationResult<{
|
|
1072
|
+
avatarUrl: string;
|
|
1073
|
+
}, Error, FormData>;
|
|
1074
|
+
/**
|
|
1075
|
+
* Delete current user's account
|
|
1076
|
+
*
|
|
1077
|
+
* @endpoint DELETE /users/me
|
|
1078
|
+
*/
|
|
1079
|
+
declare function useDeleteAccount(options?: Omit<UseMutationOptions<void, Error, void>, 'mutationFn'>): UseMutationResult<void, Error, void>;
|
|
1080
|
+
/**
|
|
1081
|
+
* Update user vibes
|
|
1082
|
+
*
|
|
1083
|
+
* @endpoint PUT /users/me/vibes
|
|
1084
|
+
*/
|
|
1085
|
+
declare function useUpdateVibes(options?: Omit<UseMutationOptions<User, Error, {
|
|
1086
|
+
vibes: string[];
|
|
1087
|
+
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
1088
|
+
vibes: string[];
|
|
1089
|
+
}>;
|
|
1090
|
+
/**
|
|
1091
|
+
* Update user interests
|
|
1092
|
+
*
|
|
1093
|
+
* @endpoint PUT /user/me/interests
|
|
1094
|
+
*/
|
|
1095
|
+
declare function useUpdateInterests(options?: Omit<UseMutationOptions<User, Error, {
|
|
1096
|
+
interests: string[];
|
|
1097
|
+
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
1098
|
+
interests: string[];
|
|
1099
|
+
}>;
|
|
1100
|
+
/**
|
|
1101
|
+
* Complete onboarding step
|
|
1102
|
+
*
|
|
1103
|
+
* @endpoint POST /user/me/onboarding-step
|
|
1104
|
+
*/
|
|
1105
|
+
declare function useCompleteOnboardingStep(options?: Omit<UseMutationOptions<User, Error, {
|
|
1106
|
+
step: number;
|
|
1107
|
+
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
1108
|
+
step: number;
|
|
1109
|
+
}>;
|
|
1110
|
+
/**
|
|
1111
|
+
* Block a user
|
|
1112
|
+
*
|
|
1113
|
+
* @endpoint POST /users/{id}/block
|
|
1114
|
+
*/
|
|
1115
|
+
declare function useBlockUser(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1116
|
+
/**
|
|
1117
|
+
* Unblock a user
|
|
1118
|
+
*
|
|
1119
|
+
* @endpoint DELETE /users/{id}/block
|
|
1120
|
+
*/
|
|
1121
|
+
declare function useUnblockUser(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1122
|
+
|
|
1123
|
+
/**
|
|
1124
|
+
* Posts Mutation Hooks
|
|
1125
|
+
*
|
|
1126
|
+
* TanStack Query hooks for post/board mutation operations.
|
|
1127
|
+
*/
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* Create a new post
|
|
1131
|
+
*
|
|
1132
|
+
* @endpoint POST /spots/{spotId}/posts
|
|
1133
|
+
*/
|
|
1134
|
+
declare function useCreatePost(options?: Omit<UseMutationOptions<Post, Error, {
|
|
1135
|
+
spotId: string;
|
|
1136
|
+
} & CreatePostRequest>, 'mutationFn'>): UseMutationResult<Post, Error, {
|
|
1137
|
+
spotId: string;
|
|
1138
|
+
} & CreatePostRequest>;
|
|
1139
|
+
/**
|
|
1140
|
+
* Update a post
|
|
1141
|
+
*
|
|
1142
|
+
* @endpoint PUT /posts/{postId}
|
|
1143
|
+
*/
|
|
1144
|
+
declare function useUpdatePost(options?: Omit<UseMutationOptions<Post, Error, {
|
|
1145
|
+
postId: string;
|
|
1146
|
+
title?: string;
|
|
1147
|
+
content?: string;
|
|
1148
|
+
}>, 'mutationFn'>): UseMutationResult<Post, Error, {
|
|
1149
|
+
postId: string;
|
|
1150
|
+
title?: string;
|
|
1151
|
+
content?: string;
|
|
1152
|
+
}>;
|
|
1153
|
+
/**
|
|
1154
|
+
* Delete a post
|
|
1155
|
+
*
|
|
1156
|
+
* @endpoint DELETE /posts/{postId}
|
|
1157
|
+
*/
|
|
1158
|
+
declare function useDeletePost(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1159
|
+
/**
|
|
1160
|
+
* Fulfill a post (mark as fulfilled)
|
|
1161
|
+
*
|
|
1162
|
+
* @endpoint PUT /posts/{postId}/fulfill
|
|
1163
|
+
*/
|
|
1164
|
+
declare function useFulfillPost(options?: Omit<UseMutationOptions<Post, Error, string>, 'mutationFn'>): UseMutationResult<Post, Error, string>;
|
|
1165
|
+
/**
|
|
1166
|
+
* Upvote/unupvote a post
|
|
1167
|
+
*
|
|
1168
|
+
* @endpoint POST /posts/{postId}/upvote
|
|
1169
|
+
*/
|
|
1170
|
+
declare function useUpvotePost(options?: Omit<UseMutationOptions<UpvoteResponse, Error, string>, 'mutationFn'>): UseMutationResult<UpvoteResponse, Error, string>;
|
|
1171
|
+
/**
|
|
1172
|
+
* Create a reply to a post
|
|
1173
|
+
*
|
|
1174
|
+
* @endpoint POST /posts/{postId}/reply
|
|
1175
|
+
*/
|
|
1176
|
+
declare function useCreateReply(options?: Omit<UseMutationOptions<unknown, Error, {
|
|
1177
|
+
postId: string;
|
|
1178
|
+
} & CreateReplyRequest>, 'mutationFn'>): UseMutationResult<unknown, Error, {
|
|
1179
|
+
postId: string;
|
|
1180
|
+
} & CreateReplyRequest>;
|
|
1181
|
+
/**
|
|
1182
|
+
* Delete a reply
|
|
1183
|
+
*
|
|
1184
|
+
* @endpoint DELETE /replies/{replyId}
|
|
1185
|
+
*/
|
|
1186
|
+
declare function useDeleteReply(options?: Omit<UseMutationOptions<void, Error, {
|
|
1187
|
+
replyId: string;
|
|
1188
|
+
postId: string;
|
|
1189
|
+
}>, 'mutationFn'>): UseMutationResult<void, Error, {
|
|
1190
|
+
replyId: string;
|
|
1191
|
+
postId: string;
|
|
1192
|
+
}>;
|
|
1193
|
+
/**
|
|
1194
|
+
* Respond to a post (express interest)
|
|
1195
|
+
*
|
|
1196
|
+
* @endpoint POST /posts/{postId}/respond
|
|
1197
|
+
*/
|
|
1198
|
+
declare function useRespondToPost(options?: Omit<UseMutationOptions<PostResponse, Error, {
|
|
1199
|
+
postId: string;
|
|
1200
|
+
} & RespondToPostRequest>, 'mutationFn'>): UseMutationResult<PostResponse, Error, {
|
|
1201
|
+
postId: string;
|
|
1202
|
+
} & RespondToPostRequest>;
|
|
1203
|
+
/**
|
|
1204
|
+
* Accept or decline a response
|
|
1205
|
+
*
|
|
1206
|
+
* @endpoint PUT /responses/{responseId}
|
|
1207
|
+
*/
|
|
1208
|
+
declare function useUpdateResponse(options?: Omit<UseMutationOptions<PostResponse, Error, {
|
|
1209
|
+
responseId: string;
|
|
1210
|
+
postId: string;
|
|
1211
|
+
} & UpdateResponseRequest>, 'mutationFn'>): UseMutationResult<PostResponse, Error, {
|
|
1212
|
+
responseId: string;
|
|
1213
|
+
postId: string;
|
|
1214
|
+
} & UpdateResponseRequest>;
|
|
1215
|
+
/**
|
|
1216
|
+
* Report a post
|
|
1217
|
+
*
|
|
1218
|
+
* @endpoint POST /posts/{postId}/report
|
|
1219
|
+
*/
|
|
1220
|
+
declare function useReportPost(options?: Omit<UseMutationOptions<void, Error, {
|
|
1221
|
+
postId: string;
|
|
1222
|
+
reason: string;
|
|
1223
|
+
details?: string;
|
|
1224
|
+
}>, 'mutationFn'>): UseMutationResult<void, Error, {
|
|
1225
|
+
postId: string;
|
|
1226
|
+
reason: string;
|
|
1227
|
+
details?: string;
|
|
1228
|
+
}>;
|
|
1229
|
+
interface PostStatusUpdate {
|
|
1230
|
+
isRead?: boolean;
|
|
1231
|
+
isHidden?: boolean;
|
|
1232
|
+
isPinned?: boolean;
|
|
1233
|
+
}
|
|
1234
|
+
/**
|
|
1235
|
+
* Update user's status for a post (read/hidden/pinned)
|
|
1236
|
+
*
|
|
1237
|
+
* @endpoint PUT /posts/{postId}/status
|
|
1238
|
+
*/
|
|
1239
|
+
declare function useUpdatePostStatus(options?: Omit<UseMutationOptions<PostStatusDto, Error, {
|
|
1240
|
+
postId: string;
|
|
1241
|
+
} & PostStatusUpdate>, 'mutationFn'>): UseMutationResult<PostStatusDto, Error, {
|
|
1242
|
+
postId: string;
|
|
1243
|
+
} & PostStatusUpdate>;
|
|
1244
|
+
|
|
1245
|
+
/**
|
|
1246
|
+
* Spots Mutation Hooks
|
|
1247
|
+
*
|
|
1248
|
+
* TanStack Query hooks for spot mutation operations.
|
|
1249
|
+
*/
|
|
1250
|
+
|
|
1251
|
+
/**
|
|
1252
|
+
* Create a new spot
|
|
1253
|
+
*
|
|
1254
|
+
* @endpoint POST /spots
|
|
1255
|
+
*/
|
|
1256
|
+
declare function useCreateSpot(options?: Omit<UseMutationOptions<Spot, Error, Partial<Spot>>, 'mutationFn'>): UseMutationResult<Spot, Error, Partial<Spot>>;
|
|
1257
|
+
/**
|
|
1258
|
+
* Update a spot
|
|
1259
|
+
*
|
|
1260
|
+
* @endpoint PUT /spots/{spotId}
|
|
1261
|
+
*/
|
|
1262
|
+
declare function useUpdateSpot(options?: Omit<UseMutationOptions<Spot, Error, {
|
|
1263
|
+
spotId: string;
|
|
1264
|
+
} & Partial<Spot>>, 'mutationFn'>): UseMutationResult<Spot, Error, {
|
|
1265
|
+
spotId: string;
|
|
1266
|
+
} & Partial<Spot>>;
|
|
1267
|
+
/**
|
|
1268
|
+
* Claim a spot (for business owners)
|
|
1269
|
+
*
|
|
1270
|
+
* @endpoint POST /spots/{spotId}/claim
|
|
1271
|
+
*/
|
|
1272
|
+
declare function useClaimSpot(options?: Omit<UseMutationOptions<{
|
|
1273
|
+
claimId: string;
|
|
1274
|
+
}, Error, {
|
|
1275
|
+
spotId: string;
|
|
1276
|
+
} & ClaimSpotRequest>, 'mutationFn'>): UseMutationResult<{
|
|
1277
|
+
claimId: string;
|
|
1278
|
+
}, Error, {
|
|
1279
|
+
spotId: string;
|
|
1280
|
+
} & ClaimSpotRequest>;
|
|
1281
|
+
/**
|
|
1282
|
+
* Subscribe to a spot
|
|
1283
|
+
*
|
|
1284
|
+
* @endpoint POST /spots/{spotId}/subscribe
|
|
1285
|
+
*/
|
|
1286
|
+
declare function useSubscribeToSpot(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1287
|
+
/**
|
|
1288
|
+
* Unsubscribe from a spot
|
|
1289
|
+
*
|
|
1290
|
+
* @endpoint DELETE /spots/{spotId}/subscribe
|
|
1291
|
+
*/
|
|
1292
|
+
declare function useUnsubscribeFromSpot(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1293
|
+
/**
|
|
1294
|
+
* Toggle favorite status on a spot
|
|
1295
|
+
*
|
|
1296
|
+
* @endpoint POST /spots/{spotId}/favorite
|
|
1297
|
+
*/
|
|
1298
|
+
declare function useFavoriteSpot(options?: Omit<UseMutationOptions<{
|
|
1299
|
+
isFavorite: boolean;
|
|
1300
|
+
}, Error, string>, 'mutationFn'>): UseMutationResult<{
|
|
1301
|
+
isFavorite: boolean;
|
|
1302
|
+
}, Error, string>;
|
|
1303
|
+
/**
|
|
1304
|
+
* Rate a spot
|
|
1305
|
+
*
|
|
1306
|
+
* @endpoint POST /spots/{spotId}/rate
|
|
1307
|
+
*/
|
|
1308
|
+
declare function useRateSpot(options?: Omit<UseMutationOptions<{
|
|
1309
|
+
rating: number;
|
|
1310
|
+
}, Error, {
|
|
1311
|
+
spotId: string;
|
|
1312
|
+
rating: number;
|
|
1313
|
+
}>, 'mutationFn'>): UseMutationResult<{
|
|
1314
|
+
rating: number;
|
|
1315
|
+
}, Error, {
|
|
1316
|
+
spotId: string;
|
|
1317
|
+
rating: number;
|
|
1318
|
+
}>;
|
|
1319
|
+
/**
|
|
1320
|
+
* Report a spot
|
|
1321
|
+
*
|
|
1322
|
+
* @endpoint POST /spots/{spotId}/report
|
|
1323
|
+
*/
|
|
1324
|
+
declare function useReportSpot(options?: Omit<UseMutationOptions<{
|
|
1325
|
+
success: boolean;
|
|
1326
|
+
}, Error, {
|
|
1327
|
+
spotId: string;
|
|
1328
|
+
reason: string;
|
|
1329
|
+
details?: string;
|
|
1330
|
+
}>, 'mutationFn'>): UseMutationResult<{
|
|
1331
|
+
success: boolean;
|
|
1332
|
+
}, Error, {
|
|
1333
|
+
spotId: string;
|
|
1334
|
+
reason: string;
|
|
1335
|
+
details?: string;
|
|
1336
|
+
}>;
|
|
1337
|
+
|
|
1338
|
+
/**
|
|
1339
|
+
* Conversations Mutation Hooks
|
|
1340
|
+
*
|
|
1341
|
+
* TanStack Query hooks for conversation/messaging mutation operations.
|
|
1342
|
+
*/
|
|
1343
|
+
|
|
1344
|
+
/**
|
|
1345
|
+
* Create a new conversation
|
|
1346
|
+
*
|
|
1347
|
+
* @endpoint POST /conversations
|
|
1348
|
+
*/
|
|
1349
|
+
declare function useCreateConversation(options?: Omit<UseMutationOptions<Conversation, Error, CreateConversationRequest>, 'mutationFn'>): UseMutationResult<Conversation, Error, CreateConversationRequest>;
|
|
1350
|
+
/**
|
|
1351
|
+
* Create or get direct conversation with a user
|
|
1352
|
+
*
|
|
1353
|
+
* @endpoint POST /conversations/direct
|
|
1354
|
+
*/
|
|
1355
|
+
declare function useCreateDirectConversation(options?: Omit<UseMutationOptions<Conversation, Error, {
|
|
1356
|
+
userId: string;
|
|
1357
|
+
}>, 'mutationFn'>): UseMutationResult<Conversation, Error, {
|
|
1358
|
+
userId: string;
|
|
1359
|
+
}>;
|
|
1360
|
+
/**
|
|
1361
|
+
* Send a message in a conversation
|
|
1362
|
+
*
|
|
1363
|
+
* @endpoint POST /conversations/{id}/messages
|
|
1364
|
+
*/
|
|
1365
|
+
declare function useSendMessage(options?: Omit<UseMutationOptions<Message, Error, {
|
|
1366
|
+
conversationId: string;
|
|
1367
|
+
} & SendMessageRequest>, 'mutationFn'>): UseMutationResult<Message, Error, {
|
|
1368
|
+
conversationId: string;
|
|
1369
|
+
} & SendMessageRequest>;
|
|
1370
|
+
/**
|
|
1371
|
+
* Mark conversation as read
|
|
1372
|
+
*
|
|
1373
|
+
* @endpoint PUT /conversations/{id}/read
|
|
1374
|
+
*/
|
|
1375
|
+
declare function useMarkConversationAsRead(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1376
|
+
/**
|
|
1377
|
+
* Send typing indicator
|
|
1378
|
+
*
|
|
1379
|
+
* @endpoint POST /conversations/{id}/typing
|
|
1380
|
+
*/
|
|
1381
|
+
declare function useSendTypingIndicator(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1382
|
+
|
|
1383
|
+
/**
|
|
1384
|
+
* Clubs Mutation Hooks
|
|
1385
|
+
*
|
|
1386
|
+
* TanStack Query hooks for club mutation operations.
|
|
1387
|
+
*/
|
|
1388
|
+
|
|
1389
|
+
/**
|
|
1390
|
+
* Create a new club
|
|
1391
|
+
*
|
|
1392
|
+
* @endpoint POST /clubs
|
|
1393
|
+
*/
|
|
1394
|
+
declare function useCreateClub(options?: Omit<UseMutationOptions<Club, Error, {
|
|
1395
|
+
spotId: string;
|
|
1396
|
+
name: string;
|
|
1397
|
+
description?: string;
|
|
1398
|
+
}>, 'mutationFn'>): UseMutationResult<Club, Error, {
|
|
1399
|
+
spotId: string;
|
|
1400
|
+
name: string;
|
|
1401
|
+
description?: string;
|
|
1402
|
+
}>;
|
|
1403
|
+
/**
|
|
1404
|
+
* Update a club
|
|
1405
|
+
*
|
|
1406
|
+
* @endpoint PUT /clubs/{id}
|
|
1407
|
+
*/
|
|
1408
|
+
declare function useUpdateClub(options?: Omit<UseMutationOptions<Club, Error, {
|
|
1409
|
+
clubId: string;
|
|
1410
|
+
name?: string;
|
|
1411
|
+
description?: string;
|
|
1412
|
+
}>, 'mutationFn'>): UseMutationResult<Club, Error, {
|
|
1413
|
+
clubId: string;
|
|
1414
|
+
name?: string;
|
|
1415
|
+
description?: string;
|
|
1416
|
+
}>;
|
|
1417
|
+
/**
|
|
1418
|
+
* Join a club
|
|
1419
|
+
*
|
|
1420
|
+
* @endpoint POST /clubs/{id}/join
|
|
1421
|
+
*/
|
|
1422
|
+
declare function useJoinClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1423
|
+
/**
|
|
1424
|
+
* Leave a club
|
|
1425
|
+
*
|
|
1426
|
+
* @endpoint POST /clubs/{id}/leave
|
|
1427
|
+
*/
|
|
1428
|
+
declare function useLeaveClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1429
|
+
|
|
1430
|
+
/**
|
|
1431
|
+
* Notifications Mutation Hooks
|
|
1432
|
+
*
|
|
1433
|
+
* TanStack Query hooks for notification mutation operations.
|
|
1434
|
+
*/
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* Mark notifications as read
|
|
1438
|
+
*
|
|
1439
|
+
* @endpoint PUT /notifications/read
|
|
1440
|
+
*/
|
|
1441
|
+
declare function useMarkNotificationsRead(options?: Omit<UseMutationOptions<void, Error, {
|
|
1442
|
+
notificationIds?: string[];
|
|
1443
|
+
}>, 'mutationFn'>): UseMutationResult<void, Error, {
|
|
1444
|
+
notificationIds?: string[];
|
|
1445
|
+
}>;
|
|
1446
|
+
/**
|
|
1447
|
+
* Register device token for push notifications
|
|
1448
|
+
*
|
|
1449
|
+
* @endpoint POST /device-tokens
|
|
1450
|
+
*/
|
|
1451
|
+
declare function useRegisterDeviceToken(options?: Omit<UseMutationOptions<void, Error, {
|
|
1452
|
+
token: string;
|
|
1453
|
+
platform: 'ios' | 'android' | 'web';
|
|
1454
|
+
}>, 'mutationFn'>): UseMutationResult<void, Error, {
|
|
1455
|
+
token: string;
|
|
1456
|
+
platform: 'ios' | 'android' | 'web';
|
|
1457
|
+
}>;
|
|
1458
|
+
/**
|
|
1459
|
+
* Remove device token
|
|
1460
|
+
*
|
|
1461
|
+
* @endpoint DELETE /device-tokens
|
|
1462
|
+
*/
|
|
1463
|
+
declare function useRemoveDeviceToken(options?: Omit<UseMutationOptions<void, Error, {
|
|
1464
|
+
token: string;
|
|
1465
|
+
}>, 'mutationFn'>): UseMutationResult<void, Error, {
|
|
1466
|
+
token: string;
|
|
1467
|
+
}>;
|
|
1468
|
+
|
|
1469
|
+
/**
|
|
1470
|
+
* Products Mutation Hooks
|
|
1471
|
+
*
|
|
1472
|
+
* TanStack Query hooks for product mutation operations.
|
|
1473
|
+
*/
|
|
1474
|
+
|
|
1475
|
+
interface CreateProductRequest {
|
|
1476
|
+
spotId: string;
|
|
1477
|
+
name: string;
|
|
1478
|
+
slug?: string;
|
|
1479
|
+
description?: string;
|
|
1480
|
+
type: ProductType;
|
|
1481
|
+
price: number;
|
|
1482
|
+
currency?: string;
|
|
1483
|
+
stockQuantity?: number;
|
|
1484
|
+
lowStockThreshold?: number;
|
|
1485
|
+
validFrom?: string;
|
|
1486
|
+
validUntil?: string;
|
|
1487
|
+
deliveryRadiusKm?: number;
|
|
1488
|
+
prepTimeMinutes?: number;
|
|
1489
|
+
maxCapacity?: number;
|
|
1490
|
+
eventDate?: string;
|
|
1491
|
+
imageUrl?: string;
|
|
1492
|
+
metadata?: Record<string, unknown>;
|
|
1493
|
+
}
|
|
1494
|
+
interface UpdateProductRequest {
|
|
1495
|
+
name?: string;
|
|
1496
|
+
description?: string;
|
|
1497
|
+
price?: number;
|
|
1498
|
+
stockQuantity?: number;
|
|
1499
|
+
lowStockThreshold?: number;
|
|
1500
|
+
status?: ProductStatus;
|
|
1501
|
+
validFrom?: string;
|
|
1502
|
+
validUntil?: string;
|
|
1503
|
+
deliveryRadiusKm?: number;
|
|
1504
|
+
prepTimeMinutes?: number;
|
|
1505
|
+
maxCapacity?: number;
|
|
1506
|
+
eventDate?: string;
|
|
1507
|
+
imageUrl?: string;
|
|
1508
|
+
metadata?: Record<string, unknown>;
|
|
1509
|
+
}
|
|
1510
|
+
/**
|
|
1511
|
+
* Create a new product
|
|
1512
|
+
*
|
|
1513
|
+
* @endpoint POST /spots/{spotId}/products
|
|
1514
|
+
*/
|
|
1515
|
+
declare function useCreateProduct(options?: Omit<UseMutationOptions<Product, Error, CreateProductRequest>, 'mutationFn'>): UseMutationResult<Product, Error, CreateProductRequest>;
|
|
1516
|
+
/**
|
|
1517
|
+
* Update a product
|
|
1518
|
+
*
|
|
1519
|
+
* @endpoint PUT /products/{productId}
|
|
1520
|
+
*/
|
|
1521
|
+
declare function useUpdateProduct(options?: Omit<UseMutationOptions<Product, Error, {
|
|
1522
|
+
productId: string;
|
|
1523
|
+
data: UpdateProductRequest;
|
|
1524
|
+
}>, 'mutationFn'>): UseMutationResult<Product, Error, {
|
|
1525
|
+
productId: string;
|
|
1526
|
+
data: UpdateProductRequest;
|
|
1527
|
+
}>;
|
|
1528
|
+
/**
|
|
1529
|
+
* Delete a product
|
|
1530
|
+
*
|
|
1531
|
+
* @endpoint DELETE /products/{productId}
|
|
1532
|
+
*/
|
|
1533
|
+
declare function useDeleteProduct(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
1534
|
+
/**
|
|
1535
|
+
* Adjust product stock
|
|
1536
|
+
*
|
|
1537
|
+
* @endpoint POST /products/{productId}/stock
|
|
1538
|
+
*/
|
|
1539
|
+
declare function useAdjustStock(options?: Omit<UseMutationOptions<Product, Error, {
|
|
1540
|
+
productId: string;
|
|
1541
|
+
quantity: number;
|
|
1542
|
+
reason: 'RESTOCK' | 'ADJUSTMENT';
|
|
1543
|
+
notes?: string;
|
|
1544
|
+
}>, 'mutationFn'>): UseMutationResult<Product, Error, {
|
|
1545
|
+
productId: string;
|
|
1546
|
+
quantity: number;
|
|
1547
|
+
reason: 'RESTOCK' | 'ADJUSTMENT';
|
|
1548
|
+
notes?: string;
|
|
1549
|
+
}>;
|
|
1550
|
+
|
|
1551
|
+
/**
|
|
1552
|
+
* Orders Mutation Hooks
|
|
1553
|
+
*
|
|
1554
|
+
* TanStack Query hooks for order mutation operations.
|
|
1555
|
+
*/
|
|
1556
|
+
|
|
1557
|
+
interface CartItem {
|
|
1558
|
+
productId: string;
|
|
1559
|
+
quantity: number;
|
|
1560
|
+
}
|
|
1561
|
+
interface CreateOrderRequest {
|
|
1562
|
+
spotId: string;
|
|
1563
|
+
items: CartItem[];
|
|
1564
|
+
notes?: string;
|
|
1565
|
+
deliveryAddress?: string;
|
|
1566
|
+
}
|
|
1567
|
+
interface CreateOrderResponse extends Order {
|
|
1568
|
+
items: Array<{
|
|
1569
|
+
id: string;
|
|
1570
|
+
productId: string;
|
|
1571
|
+
productName: string;
|
|
1572
|
+
quantity: number;
|
|
1573
|
+
unitPrice: number;
|
|
1574
|
+
totalPrice: number;
|
|
1575
|
+
}>;
|
|
1576
|
+
}
|
|
1577
|
+
interface PaymentIntentResponse {
|
|
1578
|
+
clientSecret: string;
|
|
1579
|
+
paymentIntentId: string;
|
|
1580
|
+
}
|
|
1581
|
+
interface CoinbaseChargeResponse {
|
|
1582
|
+
chargeId: string;
|
|
1583
|
+
chargeCode: string;
|
|
1584
|
+
hostedUrl: string;
|
|
1585
|
+
}
|
|
1586
|
+
/**
|
|
1587
|
+
* Create a new order
|
|
1588
|
+
*
|
|
1589
|
+
* @endpoint POST /orders
|
|
1590
|
+
*/
|
|
1591
|
+
declare function useCreateOrder(options?: Omit<UseMutationOptions<CreateOrderResponse, Error, CreateOrderRequest>, 'mutationFn'>): UseMutationResult<CreateOrderResponse, Error, CreateOrderRequest>;
|
|
1592
|
+
/**
|
|
1593
|
+
* Create Stripe PaymentIntent for an order
|
|
1594
|
+
*
|
|
1595
|
+
* @endpoint POST /payments/stripe/intent/{orderId}
|
|
1596
|
+
*/
|
|
1597
|
+
declare function useCreateStripeIntent(options?: Omit<UseMutationOptions<PaymentIntentResponse, Error, string>, 'mutationFn'>): UseMutationResult<PaymentIntentResponse, Error, string>;
|
|
1598
|
+
/**
|
|
1599
|
+
* Create Coinbase Commerce charge for an order
|
|
1600
|
+
*
|
|
1601
|
+
* @endpoint POST /payments/coinbase/charge/{orderId}
|
|
1602
|
+
*/
|
|
1603
|
+
declare function useCreateCoinbaseCharge(options?: Omit<UseMutationOptions<CoinbaseChargeResponse, Error, string>, 'mutationFn'>): UseMutationResult<CoinbaseChargeResponse, Error, string>;
|
|
1604
|
+
/**
|
|
1605
|
+
* Update order status (seller action)
|
|
1606
|
+
*
|
|
1607
|
+
* @endpoint PUT /orders/{orderId}/status
|
|
1608
|
+
*/
|
|
1609
|
+
declare function useUpdateOrderStatus(options?: Omit<UseMutationOptions<OrderWithDetails, Error, {
|
|
1610
|
+
orderId: string;
|
|
1611
|
+
status: OrderStatus;
|
|
1612
|
+
}>, 'mutationFn'>): UseMutationResult<OrderWithDetails, Error, {
|
|
1613
|
+
orderId: string;
|
|
1614
|
+
status: OrderStatus;
|
|
1615
|
+
}>;
|
|
1616
|
+
/**
|
|
1617
|
+
* Cancel an order (buyer action, only for pending orders)
|
|
1618
|
+
*
|
|
1619
|
+
* @endpoint POST /orders/{orderId}/cancel
|
|
1620
|
+
*/
|
|
1621
|
+
declare function useCancelOrder(options?: Omit<UseMutationOptions<OrderWithDetails, Error, string>, 'mutationFn'>): UseMutationResult<OrderWithDetails, Error, string>;
|
|
1622
|
+
|
|
1623
|
+
/**
|
|
1624
|
+
* Redemption Mutation Hooks
|
|
1625
|
+
*
|
|
1626
|
+
* TanStack Query mutations for redemption operations.
|
|
1627
|
+
*/
|
|
1628
|
+
|
|
1629
|
+
interface RedeemRequest {
|
|
1630
|
+
qrCode: string;
|
|
1631
|
+
spotId?: string;
|
|
1632
|
+
deviceInfo?: string;
|
|
1633
|
+
latitude?: number;
|
|
1634
|
+
longitude?: number;
|
|
1635
|
+
notes?: string;
|
|
1636
|
+
}
|
|
1637
|
+
interface VoidRedemptionRequest {
|
|
1638
|
+
reason: string;
|
|
1639
|
+
}
|
|
1640
|
+
/**
|
|
1641
|
+
* Redeem a QR code (spot owner/staff action)
|
|
1642
|
+
*
|
|
1643
|
+
* @endpoint POST /redemptions/redeem
|
|
1644
|
+
*/
|
|
1645
|
+
declare function useRedeem(): UseMutationResult<WalletRedemption, Error, RedeemRequest>;
|
|
1646
|
+
/**
|
|
1647
|
+
* Void a redemption (spot owner action)
|
|
1648
|
+
*
|
|
1649
|
+
* @endpoint PUT /redemptions/:id/void
|
|
1650
|
+
*/
|
|
1651
|
+
declare function useVoidRedemption(): UseMutationResult<WalletRedemption, Error, {
|
|
1652
|
+
redemptionId: string;
|
|
1653
|
+
reason: string;
|
|
1654
|
+
}>;
|
|
1655
|
+
|
|
1656
|
+
export { type AuthResponse, type CartItem, type City, type ClaimSpotRequest, type Club, type ClubMember, type ClubMemberRole, type CoinbaseChargeResponse, type Conversation, type CreateConversationRequest, type CreateOrderRequest, type CreateOrderResponse, type CreatePostRequest, type CreateProductRequest, type CreateReplyRequest, type FavoriteSpot, type InfiniteSpotsParams, type Intention, type Interest, type LifeSituation, type Message, type Notification, type Order, type OrderFilters, type OrderItem, type OrderWithDetails, type PaginatedResponse, type PaginationMeta, type PaymentConfig, type PaymentIntentResponse, type Post, type PostReply, type PostReport, type PostResponse, type PostTemplate, type PostUpvote, type PostUpvoter, type PostUpvotesResponse, type Product, type ProductFilters, type ProductWithSpot, type RedeemRequest, type RedemptionLookup, type RedemptionStatus, type ReportStatus, type RespondToPostRequest, type SDKConfig, type SendMessageRequest, type SendOtpRequest, type Spot, type SpotClaim, type SpotImage, type SpotIntention, type SpotPost, type SpotPostType, type SpotSubscription, type SpotSummary, type SpotVibe, type SpotsSummaryMeta, type SpotsSummaryResponse, type Template, type UpdateProductRequest, type UpdateProfileRequest, type UpdateResponseRequest, type UpvoteResponse, type User, type UserVibe, type VerifyOtpRequest, type Vibe, type VoidRedemptionRequest, type WalletHistoryResponse, type WalletOrder, type WalletOrderItem, type WalletProduct, type WalletRedemption, clubKeys, configureSDK, conversationKeys, getApiClient, getConfig, miscKeys, notificationKeys, orderKeys, paymentKeys, postKeys, productKeys, spotKeys, templateKeys, useAdjustStock, useBlockUser, useBlockedUsers, useCancelOrder, useCities, useClaimSpot, useClub, useClubBySlug, useClubMembership, useClubsBySpot, useClubsByUser, useCompleteOnboardingStep, useConversation, useConversationMessages, useConversations, useCreateClub, useCreateCoinbaseCharge, useCreateConversation, useCreateDirectConversation, useCreateOrder, useCreatePost, useCreateProduct, useCreateReply, useCreateSpot, useCreateStripeIntent, useCurrentUser, useDeleteAccount, useDeletePost, useDeleteProduct, useDeleteReply, useFavoriteSpot, useFulfillPost, useInfiniteSpots, useJoinClub, useLeaveClub, useLifeSituations, useMarkConversationAsRead, useMarkNotificationsRead, useMyOrders, useNotifications, useOrder, useOwnedSpots, usePaymentConfig, usePost, usePostResponses, usePostStatus, usePostUpvotes, usePosts, usePostsFeed, useProduct, useProductBySlug, useRateSpot, useRedeem, useRedemptionLookup, useRefreshToken, useRegisterDeviceToken, useRemoveDeviceToken, useReportPost, useReportSpot, useRespondToPost, useSendMessage, useSendOtp, useSendTypingIndicator, useSpot, useSpotByQR, useSpotBySlug, useSpotFavoriteStatus, useSpotImages, useSpotOrders, useSpotPosts, useSpotProducts, useSpotRedemptions, useSpots, useSubscribeToSpot, useTemplate, useTemplateBySlug, useTemplates, useUnblockUser, useUnreadNotificationCount, useUnsubscribeFromSpot, useUpdateClub, useUpdateInterests, useUpdateOrderStatus, useUpdatePost, useUpdatePostStatus, useUpdateProduct, useUpdateProfile, useUpdateResponse, useUpdateSpot, useUpdateVibes, useUploadAvatar, useUpvotePost, useUserActivity, useUserClubs, useUserFavorites, useUserPosts, useUserSpotsSummary, useUserStats, useUserSubscriptions, useVerifyOtp, useVibes, useVoidRedemption, useWallet, useWalletHistory, userKeys, walletKeys };
|