@footballbingo/client 3.0.1 → 3.1.0

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/sdk.gen.js CHANGED
@@ -498,12 +498,6 @@ export const updateSponsor = (options) => (options.client ?? client).put({
498
498
  ...options.headers
499
499
  }
500
500
  });
501
- /**
502
- * Get sponsor's stakes
503
- *
504
- * Retrieve stakes associated with a specific sponsor
505
- */
506
- export const getSponsorStakes = (options) => (options.client ?? client).get({ url: '/api/v1/sponsors/{id}/stakes', ...options });
507
501
  /**
508
502
  * Get sponsor's packs
509
503
  *
@@ -857,6 +851,20 @@ export const updateUsername = (options) => (options?.client ?? client).put({
857
851
  ...options?.headers
858
852
  }
859
853
  });
854
+ /**
855
+ * Update user preferences
856
+ *
857
+ * Partial update of user-level preferences (currently feedAutoShareEnabled).
858
+ */
859
+ export const updateMePreferences = (options) => (options?.client ?? client).patch({
860
+ security: [{ scheme: 'bearer', type: 'http' }],
861
+ url: '/api/v1/users/me/preferences',
862
+ ...options,
863
+ headers: {
864
+ 'Content-Type': 'application/json',
865
+ ...options?.headers
866
+ }
867
+ });
860
868
  /**
861
869
  * Get current user's weekly stats
862
870
  *
@@ -1157,6 +1165,64 @@ export const getLeaderboard = (options) => (options.client ?? client).get({
1157
1165
  * Retrieve recent bingo wins and achievements for the live activity feed. Shows real-time community activities including game completions, wins, and achievement unlocks.
1158
1166
  */
1159
1167
  export const getLiveActivityFeed = (options) => (options?.client ?? client).get({ url: '/api/v1/activities/live', ...options });
1168
+ /**
1169
+ * List feed posts
1170
+ *
1171
+ * Cursor-based paginated feed. Supports filters: following (auth required), starred (auth required), hashtag, user, explore.
1172
+ */
1173
+ export const listFeed = (options) => (options?.client ?? client).get({
1174
+ security: [{ scheme: 'bearer', type: 'http' }],
1175
+ url: '/api/v1/feed',
1176
+ ...options
1177
+ });
1178
+ /**
1179
+ * Create a feed post
1180
+ *
1181
+ * Create a new feed post. Must contain at least one of: content, attachment (attachmentType + attachmentId), or imageUrls.
1182
+ */
1183
+ export const createFeedPost = (options) => (options?.client ?? client).post({
1184
+ security: [{ scheme: 'bearer', type: 'http' }],
1185
+ url: '/api/v1/feed',
1186
+ ...options,
1187
+ headers: {
1188
+ 'Content-Type': 'application/json',
1189
+ ...options?.headers
1190
+ }
1191
+ });
1192
+ /**
1193
+ * Delete a feed post
1194
+ *
1195
+ * Soft-delete your own feed post.
1196
+ */
1197
+ export const deleteFeedPost = (options) => (options.client ?? client).delete({
1198
+ security: [{ scheme: 'bearer', type: 'http' }],
1199
+ url: '/api/v1/feed/{postId}',
1200
+ ...options
1201
+ });
1202
+ /**
1203
+ * Get a single feed post
1204
+ *
1205
+ * Fetch a single feed post by id. Increments view count.
1206
+ */
1207
+ export const getFeedPostById = (options) => (options.client ?? client).get({
1208
+ security: [{ scheme: 'bearer', type: 'http' }],
1209
+ url: '/api/v1/feed/{postId}',
1210
+ ...options
1211
+ });
1212
+ /**
1213
+ * Edit a feed post
1214
+ *
1215
+ * Edit content and/or visibility of your own feed post.
1216
+ */
1217
+ export const editFeedPost = (options) => (options.client ?? client).patch({
1218
+ security: [{ scheme: 'bearer', type: 'http' }],
1219
+ url: '/api/v1/feed/{postId}',
1220
+ ...options,
1221
+ headers: {
1222
+ 'Content-Type': 'application/json',
1223
+ ...options.headers
1224
+ }
1225
+ });
1160
1226
  /**
1161
1227
  * Get user's lineups
1162
1228
  *
@@ -1635,18 +1701,6 @@ export const markMentionRead = (options) => (options.client ?? client).post({
1635
1701
  url: '/api/v1/social/mentions/{mentionId}/read',
1636
1702
  ...options
1637
1703
  });
1638
- /**
1639
- * Share a creation to a community
1640
- */
1641
- export const shareToCommunity = (options) => (options?.client ?? client).post({
1642
- security: [{ scheme: 'bearer', type: 'http' }],
1643
- url: '/api/v1/social/share/community',
1644
- ...options,
1645
- headers: {
1646
- 'Content-Type': 'application/json',
1647
- ...options?.headers
1648
- }
1649
- });
1650
1704
  /**
1651
1705
  * Share a creation to specific followers
1652
1706
  */
@@ -1911,70 +1965,6 @@ export const sendGameChatMessage = (options) => (options.client ?? client).post(
1911
1965
  ...options.headers
1912
1966
  }
1913
1967
  });
1914
- /**
1915
- * List available pundits
1916
- */
1917
- export const listAiPundits = (options) => (options?.client ?? client).get({ url: '/api/v1/ai-chat/pundits', ...options });
1918
- /**
1919
- * Get my chat sessions
1920
- */
1921
- export const listAiChatSessions = (options) => (options?.client ?? client).get({
1922
- security: [{ scheme: 'bearer', type: 'http' }],
1923
- url: '/api/v1/ai-chat/sessions',
1924
- ...options
1925
- });
1926
- /**
1927
- * Create chat session
1928
- */
1929
- export const createAiChatSession = (options) => (options?.client ?? client).post({
1930
- security: [{ scheme: 'bearer', type: 'http' }],
1931
- url: '/api/v1/ai-chat/sessions',
1932
- ...options,
1933
- headers: {
1934
- 'Content-Type': 'application/json',
1935
- ...options?.headers
1936
- }
1937
- });
1938
- /**
1939
- * Delete chat session
1940
- */
1941
- export const deleteAiChatSession = (options) => (options.client ?? client).delete({
1942
- security: [{ scheme: 'bearer', type: 'http' }],
1943
- url: '/api/v1/ai-chat/sessions/{sessionId}',
1944
- ...options
1945
- });
1946
- /**
1947
- * Get chat session with messages
1948
- */
1949
- export const getAiChatSessionDetail = (options) => (options.client ?? client).get({
1950
- security: [{ scheme: 'bearer', type: 'http' }],
1951
- url: '/api/v1/ai-chat/sessions/{sessionId}',
1952
- ...options
1953
- });
1954
- /**
1955
- * Send message and get AI response
1956
- */
1957
- export const sendAiChatMessage = (options) => (options.client ?? client).post({
1958
- security: [{ scheme: 'bearer', type: 'http' }],
1959
- url: '/api/v1/ai-chat/sessions/{sessionId}/messages',
1960
- ...options,
1961
- headers: {
1962
- 'Content-Type': 'application/json',
1963
- ...options.headers
1964
- }
1965
- });
1966
- /**
1967
- * Get quick pundit opinion
1968
- */
1969
- export const getAiOpinion = (options) => (options?.client ?? client).post({
1970
- security: [{ scheme: 'bearer', type: 'http' }],
1971
- url: '/api/v1/ai-chat/opinion',
1972
- ...options,
1973
- headers: {
1974
- 'Content-Type': 'application/json',
1975
- ...options?.headers
1976
- }
1977
- });
1978
1968
  /**
1979
1969
  * Register device for push notifications
1980
1970
  */
@@ -2138,111 +2128,19 @@ export const getPredictionByFixture = (options) => (options.client ?? client).ge
2138
2128
  ...options
2139
2129
  });
2140
2130
  /**
2141
- * Get active flash predictions for a fixture
2142
- */
2143
- export const listActiveFlashPredictions = (options) => (options.client ?? client).get({ url: '/api/v1/predictions/flash/active', ...options });
2144
- /**
2145
- * Get resolved flash predictions for a fixture
2146
- */
2147
- export const getFlashPredictionHistory = (options) => (options.client ?? client).get({ url: '/api/v1/predictions/flash/history', ...options });
2148
- /**
2149
- * Get user's flash prediction stats
2150
- */
2151
- export const getFlashPredictionStats = (options) => (options?.client ?? client).get({
2152
- security: [{ scheme: 'bearer', type: 'http' }],
2153
- url: '/api/v1/predictions/flash/stats',
2154
- ...options
2155
- });
2156
- /**
2157
- * Get flash session summary for a fixture
2158
- */
2159
- export const getFlashSessionSummary = (options) => (options.client ?? client).get({
2160
- security: [{ scheme: 'bearer', type: 'http' }],
2161
- url: '/api/v1/predictions/flash/summary',
2162
- ...options
2163
- });
2164
- /**
2165
- * Submit answer to a flash prediction
2166
- */
2167
- export const submitFlashAnswer = (options) => (options.client ?? client).post({
2168
- security: [{ scheme: 'bearer', type: 'http' }],
2169
- url: '/api/v1/predictions/flash/{id}/answer',
2170
- ...options,
2171
- headers: {
2172
- 'Content-Type': 'application/json',
2173
- ...options.headers
2174
- }
2175
- });
2176
- /**
2177
- * Resolve a flash prediction (admin)
2178
- */
2179
- export const resolveFlashPrediction = (options) => (options.client ?? client).post({
2180
- security: [{ scheme: 'bearer', type: 'http' }],
2181
- url: '/api/v1/predictions/flash/{id}/resolve',
2182
- ...options,
2183
- headers: {
2184
- 'Content-Type': 'application/json',
2185
- ...options.headers
2186
- }
2187
- });
2188
- /**
2189
- * Get user's active flash play sessions
2190
- */
2191
- export const getFlashSessions = (options) => (options?.client ?? client).get({
2192
- security: [{ scheme: 'bearer', type: 'http' }],
2193
- url: '/api/v1/predictions/flash/sessions',
2194
- ...options
2195
- });
2196
- /**
2197
- * Get active player count for a fixture
2198
- */
2199
- export const getFlashPlayerCount = (options) => (options.client ?? client).get({ url: '/api/v1/predictions/flash/players/{fixtureId}', ...options });
2200
- /**
2201
- * Get flash prediction leaderboard for a fixture
2202
- */
2203
- export const getFlashLeaderboard = (options) => (options.client ?? client).get({ url: '/api/v1/predictions/flash/leaderboard/{fixtureId}', ...options });
2204
- /**
2205
- * Get user's flash prediction history
2131
+ * Get user's ad watch status
2206
2132
  */
2207
- export const getMyFlashHistory = (options) => (options?.client ?? client).get({
2133
+ export const getAdWatchStatus = (options) => (options?.client ?? client).get({
2208
2134
  security: [{ scheme: 'bearer', type: 'http' }],
2209
- url: '/api/v1/predictions/flash/history/me',
2135
+ url: '/api/v1/rewards/ad-status',
2210
2136
  ...options
2211
2137
  });
2212
2138
  /**
2213
- * Join a flash play session for a fixture
2214
- */
2215
- export const joinFlashSession = (options) => (options?.client ?? client).post({
2216
- security: [{ scheme: 'bearer', type: 'http' }],
2217
- url: '/api/v1/predictions/flash/join',
2218
- ...options,
2219
- headers: {
2220
- 'Content-Type': 'application/json',
2221
- ...options?.headers
2222
- }
2223
- });
2224
- /**
2225
- * Leave a flash play session for a fixture
2226
- */
2227
- export const leaveFlashSession = (options) => (options?.client ?? client).post({
2228
- security: [{ scheme: 'bearer', type: 'http' }],
2229
- url: '/api/v1/predictions/flash/leave',
2230
- ...options,
2231
- headers: {
2232
- 'Content-Type': 'application/json',
2233
- ...options?.headers
2234
- }
2235
- });
2236
- /**
2237
- * Get pre-match quick pick options
2238
- */
2239
- export const getQuickPicks = (options) => (options.client ?? client).get({ url: '/api/v1/predictions/quick-picks/{fixtureId}', ...options });
2240
- /**
2241
- * Submit quick pick predictions
2139
+ * Claim reward after watching an ad
2242
2140
  */
2243
- export const submitQuickPicks = (options) => (options?.client ?? client).post({
2141
+ export const claimAdReward = (options) => (options?.client ?? client).post({
2244
2142
  security: [{ scheme: 'bearer', type: 'http' }],
2245
- url: '/api/v1/predictions/quick-picks',
2143
+ url: '/api/v1/rewards/ad-claim',
2246
2144
  ...options,
2247
2145
  headers: {
2248
2146
  'Content-Type': 'application/json',
@@ -2250,99 +2148,91 @@ export const submitQuickPicks = (options) => (options?.client ?? client).post({
2250
2148
  }
2251
2149
  });
2252
2150
  /**
2253
- * Get user's active stakes
2151
+ * List cosmetics catalog
2152
+ *
2153
+ * Public browse of the cosmetics catalog. When authenticated, each item includes `isOwned` and `isEquipped` flags.
2254
2154
  */
2255
- export const getMyActiveStakes = (options) => (options?.client ?? client).get({
2155
+ export const listCosmetics = (options) => (options?.client ?? client).get({
2256
2156
  security: [{ scheme: 'bearer', type: 'http' }],
2257
- url: '/api/v1/stakes/me/active',
2157
+ url: '/api/v1/cosmetics',
2258
2158
  ...options
2259
2159
  });
2260
2160
  /**
2261
- * Get user's stake history
2161
+ * List cosmetics owned by the current user
2262
2162
  */
2263
- export const getMyStakeHistory = (options) => (options?.client ?? client).get({
2163
+ export const getMyCosmetics = (options) => (options?.client ?? client).get({
2264
2164
  security: [{ scheme: 'bearer', type: 'http' }],
2265
- url: '/api/v1/stakes/me/history',
2165
+ url: '/api/v1/cosmetics/mine',
2266
2166
  ...options
2267
2167
  });
2268
2168
  /**
2269
- * Get community stake feed
2169
+ * Get a single cosmetic
2270
2170
  */
2271
- export const getStakeFeed = (options) => (options?.client ?? client).get({ url: '/api/v1/stakes/feed', ...options });
2272
- /**
2273
- * Get stakes for a fixture
2274
- */
2275
- export const listStakes = (options) => (options.client ?? client).get({
2171
+ export const getCosmetic = (options) => (options.client ?? client).get({
2276
2172
  security: [{ scheme: 'bearer', type: 'http' }],
2277
- url: '/api/v1/stakes',
2173
+ url: '/api/v1/cosmetics/{id}',
2278
2174
  ...options
2279
2175
  });
2280
2176
  /**
2281
- * Create a new stake
2282
- */
2283
- export const createStake = (options) => (options?.client ?? client).post({
2284
- security: [{ scheme: 'bearer', type: 'http' }],
2285
- url: '/api/v1/stakes',
2286
- ...options,
2287
- headers: {
2288
- 'Content-Type': 'application/json',
2289
- ...options?.headers
2290
- }
2291
- });
2292
- /**
2293
- * Get stake details
2177
+ * Buy a cosmetic with in-app coins
2178
+ *
2179
+ * Debits the price via recordTransaction (source=store_purchase) and grants ownership. Idempotent — repeat calls on an owned cosmetic return the existing ownership row.
2294
2180
  */
2295
- export const getStakeById = (options) => (options.client ?? client).get({
2181
+ export const purchaseCosmetic = (options) => (options.client ?? client).post({
2296
2182
  security: [{ scheme: 'bearer', type: 'http' }],
2297
- url: '/api/v1/stakes/{id}',
2183
+ url: '/api/v1/cosmetics/{id}/purchase',
2298
2184
  ...options
2299
2185
  });
2300
2186
  /**
2301
- * Accept a stake
2187
+ * Equip an owned cosmetic
2188
+ *
2189
+ * Mutually exclusive per category — any other equipped cosmetic in the same category is unequipped in the same transaction. Their IDs are returned in `unequippedIds`.
2302
2190
  */
2303
- export const acceptStake = (options) => (options.client ?? client).post({
2191
+ export const equipCosmetic = (options) => (options.client ?? client).post({
2304
2192
  security: [{ scheme: 'bearer', type: 'http' }],
2305
- url: '/api/v1/stakes/{id}/accept',
2193
+ url: '/api/v1/cosmetics/{id}/equip',
2306
2194
  ...options
2307
2195
  });
2308
2196
  /**
2309
- * Cancel a stake
2197
+ * Unequip an owned cosmetic
2310
2198
  */
2311
- export const cancelStake = (options) => (options.client ?? client).post({
2199
+ export const unequipCosmetic = (options) => (options.client ?? client).post({
2312
2200
  security: [{ scheme: 'bearer', type: 'http' }],
2313
- url: '/api/v1/stakes/{id}/cancel',
2201
+ url: '/api/v1/cosmetics/{id}/unequip',
2314
2202
  ...options
2315
2203
  });
2316
2204
  /**
2317
- * Manually resolve a stake (admin)
2205
+ * Create a cosmetic (admin)
2318
2206
  */
2319
- export const resolveStake = (options) => (options.client ?? client).post({
2207
+ export const createCosmetic = (options) => (options?.client ?? client).post({
2320
2208
  security: [{ scheme: 'bearer', type: 'http' }],
2321
- url: '/api/v1/stakes/{id}/resolve',
2209
+ url: '/api/v1/cosmetics/admin',
2322
2210
  ...options,
2323
2211
  headers: {
2324
2212
  'Content-Type': 'application/json',
2325
- ...options.headers
2213
+ ...options?.headers
2326
2214
  }
2327
2215
  });
2328
2216
  /**
2329
- * Get user's ad watch status
2217
+ * Delete a cosmetic (admin)
2218
+ *
2219
+ * Hard delete if unowned; otherwise deactivates (sets isActive=false) so ownership + audit remain intact.
2330
2220
  */
2331
- export const getAdWatchStatus = (options) => (options?.client ?? client).get({
2221
+ export const deleteCosmetic = (options) => (options.client ?? client).delete({
2332
2222
  security: [{ scheme: 'bearer', type: 'http' }],
2333
- url: '/api/v1/rewards/ad-status',
2223
+ url: '/api/v1/cosmetics/admin/{id}',
2334
2224
  ...options
2335
2225
  });
2336
2226
  /**
2337
- * Claim reward after watching an ad
2227
+ * Update a cosmetic (admin)
2338
2228
  */
2339
- export const claimAdReward = (options) => (options?.client ?? client).post({
2229
+ export const updateCosmetic = (options) => (options.client ?? client).patch({
2340
2230
  security: [{ scheme: 'bearer', type: 'http' }],
2341
- url: '/api/v1/rewards/ad-claim',
2231
+ url: '/api/v1/cosmetics/admin/{id}',
2342
2232
  ...options,
2343
2233
  headers: {
2344
2234
  'Content-Type': 'application/json',
2345
- ...options?.headers
2235
+ ...options.headers
2346
2236
  }
2347
2237
  });
2348
2238
  /**
@@ -2449,226 +2339,6 @@ export const revealGuessThePlayerClue = (options) => (options?.client ?? client)
2449
2339
  url: '/api/v1/mini-games/guess-the-player/reveal-clue',
2450
2340
  ...options
2451
2341
  });
2452
- /**
2453
- * Get user's communities
2454
- */
2455
- export const getMyCommunities = (options) => (options?.client ?? client).get({
2456
- security: [{ scheme: 'bearer', type: 'http' }],
2457
- url: '/api/v1/communities/me',
2458
- ...options
2459
- });
2460
- /**
2461
- * Get suggested communities
2462
- */
2463
- export const getSuggestedCommunities = (options) => (options?.client ?? client).get({
2464
- security: [{ scheme: 'bearer', type: 'http' }],
2465
- url: '/api/v1/communities/suggested',
2466
- ...options
2467
- });
2468
- /**
2469
- * Get user's pending invites
2470
- */
2471
- export const getMyInvites = (options) => (options?.client ?? client).get({
2472
- security: [{ scheme: 'bearer', type: 'http' }],
2473
- url: '/api/v1/communities/invites',
2474
- ...options
2475
- });
2476
- /**
2477
- * Accept or decline an invite
2478
- */
2479
- export const respondToInvite = (options) => (options.client ?? client).post({
2480
- security: [{ scheme: 'bearer', type: 'http' }],
2481
- url: '/api/v1/communities/invites/{inviteId}/respond',
2482
- ...options,
2483
- headers: {
2484
- 'Content-Type': 'application/json',
2485
- ...options.headers
2486
- }
2487
- });
2488
- /**
2489
- * Join community by invite code
2490
- */
2491
- export const joinCommunityByCode = (options) => (options.client ?? client).post({
2492
- security: [{ scheme: 'bearer', type: 'http' }],
2493
- url: '/api/v1/communities/join/{code}',
2494
- ...options
2495
- });
2496
- /**
2497
- * List or search communities
2498
- */
2499
- export const listCommunities = (options) => (options?.client ?? client).get({ url: '/api/v1/communities', ...options });
2500
- /**
2501
- * Create a user community
2502
- */
2503
- export const createCommunity = (options) => (options?.client ?? client).post({
2504
- security: [{ scheme: 'bearer', type: 'http' }],
2505
- url: '/api/v1/communities',
2506
- ...options,
2507
- headers: {
2508
- 'Content-Type': 'application/json',
2509
- ...options?.headers
2510
- }
2511
- });
2512
- /**
2513
- * Get community details
2514
- */
2515
- export const getCommunityById = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}', ...options });
2516
- /**
2517
- * Join a community
2518
- */
2519
- export const joinCommunity = (options) => (options.client ?? client).post({
2520
- security: [{ scheme: 'bearer', type: 'http' }],
2521
- url: '/api/v1/communities/{id}/join',
2522
- ...options
2523
- });
2524
- /**
2525
- * Leave a community
2526
- */
2527
- export const leaveCommunity = (options) => (options.client ?? client).post({
2528
- security: [{ scheme: 'bearer', type: 'http' }],
2529
- url: '/api/v1/communities/{id}/leave',
2530
- ...options
2531
- });
2532
- /**
2533
- * Get community members
2534
- */
2535
- export const getCommunityMembers = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/members', ...options });
2536
- /**
2537
- * Get community leaderboard
2538
- */
2539
- export const getCommunityLeaderboard = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/leaderboard', ...options });
2540
- /**
2541
- * Get community activity feed
2542
- */
2543
- export const getCommunityFeed = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/feed', ...options });
2544
- /**
2545
- * Update community settings
2546
- */
2547
- export const updateCommunitySettings = (options) => (options.client ?? client).patch({
2548
- security: [{ scheme: 'bearer', type: 'http' }],
2549
- url: '/api/v1/communities/{id}/settings',
2550
- ...options,
2551
- headers: {
2552
- 'Content-Type': 'application/json',
2553
- ...options.headers
2554
- }
2555
- });
2556
- /**
2557
- * Moderate a community member
2558
- */
2559
- export const moderateCommunityMember = (options) => (options.client ?? client).post({
2560
- security: [{ scheme: 'bearer', type: 'http' }],
2561
- url: '/api/v1/communities/{id}/moderate',
2562
- ...options,
2563
- headers: {
2564
- 'Content-Type': 'application/json',
2565
- ...options.headers
2566
- }
2567
- });
2568
- /**
2569
- * Invite a user to the community
2570
- */
2571
- export const inviteToCommunity = (options) => (options.client ?? client).post({
2572
- security: [{ scheme: 'bearer', type: 'http' }],
2573
- url: '/api/v1/communities/{id}/invite',
2574
- ...options,
2575
- headers: {
2576
- 'Content-Type': 'application/json',
2577
- ...options.headers
2578
- }
2579
- });
2580
- /**
2581
- * View pending join requests
2582
- */
2583
- export const getCommunityJoinRequests = (options) => (options.client ?? client).get({
2584
- security: [{ scheme: 'bearer', type: 'http' }],
2585
- url: '/api/v1/communities/{id}/join-requests',
2586
- ...options
2587
- });
2588
- /**
2589
- * Accept or reject a join request
2590
- */
2591
- export const handleJoinRequest = (options) => (options.client ?? client).post({
2592
- security: [{ scheme: 'bearer', type: 'http' }],
2593
- url: '/api/v1/communities/{id}/join-requests',
2594
- ...options,
2595
- headers: {
2596
- 'Content-Type': 'application/json',
2597
- ...options.headers
2598
- }
2599
- });
2600
- /**
2601
- * Regenerate community invite code
2602
- */
2603
- export const regenerateCommunityInviteCode = (options) => (options.client ?? client).post({
2604
- security: [{ scheme: 'bearer', type: 'http' }],
2605
- url: '/api/v1/communities/{id}/invite-code/regenerate',
2606
- ...options
2607
- });
2608
- /**
2609
- * List community posts
2610
- */
2611
- export const listCommunityPosts = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/posts', ...options });
2612
- /**
2613
- * Create a community post
2614
- */
2615
- export const createCommunityPost = (options) => (options.client ?? client).post({
2616
- security: [{ scheme: 'bearer', type: 'http' }],
2617
- url: '/api/v1/communities/{id}/posts',
2618
- ...options,
2619
- headers: {
2620
- 'Content-Type': 'application/json',
2621
- ...options.headers
2622
- }
2623
- });
2624
- /**
2625
- * Delete a community post
2626
- */
2627
- export const deleteCommunityPost = (options) => (options.client ?? client).delete({
2628
- security: [{ scheme: 'bearer', type: 'http' }],
2629
- url: '/api/v1/communities/{id}/posts/{postId}',
2630
- ...options
2631
- });
2632
- /**
2633
- * Get post with replies
2634
- */
2635
- export const getCommunityPostById = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/posts/{postId}', ...options });
2636
- /**
2637
- * Edit a community post
2638
- */
2639
- export const editCommunityPost = (options) => (options.client ?? client).patch({
2640
- security: [{ scheme: 'bearer', type: 'http' }],
2641
- url: '/api/v1/communities/{id}/posts/{postId}',
2642
- ...options,
2643
- headers: {
2644
- 'Content-Type': 'application/json',
2645
- ...options.headers
2646
- }
2647
- });
2648
- /**
2649
- * Vote on a community post
2650
- */
2651
- export const voteCommunityPost = (options) => (options.client ?? client).post({
2652
- security: [{ scheme: 'bearer', type: 'http' }],
2653
- url: '/api/v1/communities/{id}/posts/{postId}/vote',
2654
- ...options,
2655
- headers: {
2656
- 'Content-Type': 'application/json',
2657
- ...options.headers
2658
- }
2659
- });
2660
- /**
2661
- * Pin or unpin a community post
2662
- */
2663
- export const togglePinCommunityPost = (options) => (options.client ?? client).post({
2664
- security: [{ scheme: 'bearer', type: 'http' }],
2665
- url: '/api/v1/communities/{id}/posts/{postId}/pin',
2666
- ...options
2667
- });
2668
- /**
2669
- * Get post replies
2670
- */
2671
- export const getCommunityPostReplies = (options) => (options.client ?? client).get({ url: '/api/v1/communities/{id}/posts/{postId}/replies', ...options });
2672
2342
  /**
2673
2343
  * Get active seasonal event
2674
2344
  */
@@ -3181,18 +2851,6 @@ export const adminDeactivateSeasonalEvent = (options) => (options.client ?? clie
3181
2851
  url: '/api/v1/admin/seasonal-events/{id}/deactivate',
3182
2852
  ...options
3183
2853
  });
3184
- /**
3185
- * Create a sponsored stake
3186
- */
3187
- export const adminCreateSponsoredStake = (options) => (options.client ?? client).post({
3188
- security: [{ scheme: 'bearer', type: 'http' }],
3189
- url: '/api/v1/admin/sponsors/{id}/stake',
3190
- ...options,
3191
- headers: {
3192
- 'Content-Type': 'application/json',
3193
- ...options.headers
3194
- }
3195
- });
3196
2854
  /**
3197
2855
  * Create a sponsored pack
3198
2856
  */
@@ -3280,6 +2938,58 @@ export const adminReviewModerationReport = (options) => (options.client ?? clien
3280
2938
  ...options.headers
3281
2939
  }
3282
2940
  });
2941
+ /**
2942
+ * List social auto-post queue
2943
+ *
2944
+ * Admin-only. Lists queued/approved/posted social posts with status/platform/source filters.
2945
+ */
2946
+ export const listSocialQueue = (options) => (options?.client ?? client).get({
2947
+ security: [{ scheme: 'bearer', type: 'http' }],
2948
+ url: '/api/v1/admin/social',
2949
+ ...options
2950
+ });
2951
+ /**
2952
+ * Create a manual social post (pre-approved)
2953
+ *
2954
+ * Bypasses auto-ingestion. Marked approved immediately and picked up by the SOCIAL_POST_DISPATCH cron.
2955
+ */
2956
+ export const createManualSocialPost = (options) => (options?.client ?? client).post({
2957
+ security: [{ scheme: 'bearer', type: 'http' }],
2958
+ url: '/api/v1/admin/social/manual',
2959
+ ...options,
2960
+ headers: {
2961
+ 'Content-Type': 'application/json',
2962
+ ...options?.headers
2963
+ }
2964
+ });
2965
+ /**
2966
+ * Approve a queued social post
2967
+ *
2968
+ * Flips status from pending → approved. Optional `scheduledFor` delays dispatch; otherwise the next cron tick sends.
2969
+ */
2970
+ export const approveSocialPost = (options) => (options.client ?? client).post({
2971
+ security: [{ scheme: 'bearer', type: 'http' }],
2972
+ url: '/api/v1/admin/social/{id}/approve',
2973
+ ...options,
2974
+ headers: {
2975
+ 'Content-Type': 'application/json',
2976
+ ...options.headers
2977
+ }
2978
+ });
2979
+ /**
2980
+ * Reject a queued social post
2981
+ *
2982
+ * Flips status from pending → rejected. Reason is optional and stored on the row.
2983
+ */
2984
+ export const rejectSocialPost = (options) => (options.client ?? client).post({
2985
+ security: [{ scheme: 'bearer', type: 'http' }],
2986
+ url: '/api/v1/admin/social/{id}/reject',
2987
+ ...options,
2988
+ headers: {
2989
+ 'Content-Type': 'application/json',
2990
+ ...options.headers
2991
+ }
2992
+ });
3283
2993
  /**
3284
2994
  * Clerk webhook endpoint
3285
2995
  *
@@ -3307,15 +3017,8 @@ export const handleClerkTestWebhook = (options) => (options?.client ?? client).p
3307
3017
  }
3308
3018
  });
3309
3019
  /**
3310
- * Ad network S2S callback
3020
+ * AdMob Server-Side Verification callback
3311
3021
  *
3312
- * Called by ad networks (AdMob, IronSource, Unity, AppLovin) after a verified ad view. Verifies signature, grants coins, creates RewardedAdView record. Public endpoint, no auth required.
3022
+ * Called by Google AdMob after a verified rewarded ad view. Verifies ECDSA signature against Google's public keys, then grants coins. Public endpoint; auth is via signature.
3313
3023
  */
3314
- export const handleAdCallbackWebhook = (options) => (options?.client ?? client).post({
3315
- url: '/api/v1/webhooks/ad-callback',
3316
- ...options,
3317
- headers: {
3318
- 'Content-Type': 'application/json',
3319
- ...options?.headers
3320
- }
3321
- });
3024
+ export const handleAdMobCallback = (options) => (options.client ?? client).get({ url: '/api/v1/webhooks/ad-callback/admob', ...options });