@spotsdev/sdk 1.3.3 → 1.5.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.
Files changed (64) hide show
  1. package/dist/index.cjs +2139 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1718 -0
  4. package/dist/index.d.ts +1717 -36
  5. package/dist/index.js +1996 -64
  6. package/dist/index.js.map +1 -0
  7. package/package.json +22 -6
  8. package/src/api/entities.ts +28 -84
  9. package/dist/api/client.d.ts +0 -12
  10. package/dist/api/client.js +0 -72
  11. package/dist/api/entities.d.ts +0 -326
  12. package/dist/api/entities.js +0 -9
  13. package/dist/api/mutations/clubs.d.ts +0 -47
  14. package/dist/api/mutations/clubs.js +0 -97
  15. package/dist/api/mutations/conversations.d.ts +0 -45
  16. package/dist/api/mutations/conversations.js +0 -114
  17. package/dist/api/mutations/index.d.ts +0 -14
  18. package/dist/api/mutations/index.js +0 -40
  19. package/dist/api/mutations/notifications.d.ts +0 -38
  20. package/dist/api/mutations/notifications.js +0 -64
  21. package/dist/api/mutations/orders.d.ts +0 -73
  22. package/dist/api/mutations/orders.js +0 -114
  23. package/dist/api/mutations/posts.d.ts +0 -123
  24. package/dist/api/mutations/posts.js +0 -242
  25. package/dist/api/mutations/products.d.ts +0 -81
  26. package/dist/api/mutations/products.js +0 -98
  27. package/dist/api/mutations/redemptions.d.ts +0 -33
  28. package/dist/api/mutations/redemptions.js +0 -63
  29. package/dist/api/mutations/spots.d.ts +0 -93
  30. package/dist/api/mutations/spots.js +0 -167
  31. package/dist/api/mutations/users.d.ts +0 -73
  32. package/dist/api/mutations/users.js +0 -175
  33. package/dist/api/queries/auth.d.ts +0 -37
  34. package/dist/api/queries/auth.js +0 -61
  35. package/dist/api/queries/clubs.d.ts +0 -52
  36. package/dist/api/queries/clubs.js +0 -116
  37. package/dist/api/queries/conversations.d.ts +0 -52
  38. package/dist/api/queries/conversations.js +0 -83
  39. package/dist/api/queries/index.d.ts +0 -28
  40. package/dist/api/queries/index.js +0 -69
  41. package/dist/api/queries/misc.d.ts +0 -30
  42. package/dist/api/queries/misc.js +0 -91
  43. package/dist/api/queries/notifications.d.ts +0 -34
  44. package/dist/api/queries/notifications.js +0 -62
  45. package/dist/api/queries/orders.d.ts +0 -45
  46. package/dist/api/queries/orders.js +0 -93
  47. package/dist/api/queries/posts.d.ts +0 -92
  48. package/dist/api/queries/posts.js +0 -233
  49. package/dist/api/queries/products.d.ts +0 -48
  50. package/dist/api/queries/products.js +0 -87
  51. package/dist/api/queries/spots.d.ts +0 -93
  52. package/dist/api/queries/spots.js +0 -250
  53. package/dist/api/queries/templates.d.ts +0 -39
  54. package/dist/api/queries/templates.js +0 -81
  55. package/dist/api/queries/users.d.ts +0 -104
  56. package/dist/api/queries/users.js +0 -235
  57. package/dist/api/queries/wallet.d.ts +0 -109
  58. package/dist/api/queries/wallet.js +0 -136
  59. package/dist/api/services/index.d.ts +0 -2
  60. package/dist/api/services/index.js +0 -8
  61. package/dist/api/services/marketplace.d.ts +0 -129
  62. package/dist/api/services/marketplace.js +0 -168
  63. package/dist/api/types.d.ts +0 -57
  64. package/dist/api/types.js +0 -33
@@ -1,28 +0,0 @@
1
- /**
2
- * Spots SDK Query Hooks Index
3
- *
4
- * Re-exports all query hooks and keys.
5
- */
6
- export * from './auth';
7
- export * from './users';
8
- export { userKeys } from './users';
9
- export * from './spots';
10
- export { spotKeys } from './spots';
11
- export * from './posts';
12
- export { postKeys } from './posts';
13
- export * from './conversations';
14
- export { conversationKeys } from './conversations';
15
- export * from './clubs';
16
- export { clubKeys } from './clubs';
17
- export * from './templates';
18
- export { templateKeys } from './templates';
19
- export * from './notifications';
20
- export { notificationKeys } from './notifications';
21
- export * from './misc';
22
- export { miscKeys } from './misc';
23
- export * from './products';
24
- export { productKeys } from './products';
25
- export * from './orders';
26
- export { orderKeys } from './orders';
27
- export * from './wallet';
28
- export { walletKeys } from './wallet';
@@ -1,69 +0,0 @@
1
- "use strict";
2
- /**
3
- * Spots SDK Query Hooks Index
4
- *
5
- * Re-exports all query hooks and keys.
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.walletKeys = exports.orderKeys = exports.productKeys = exports.miscKeys = exports.notificationKeys = exports.templateKeys = exports.clubKeys = exports.conversationKeys = exports.postKeys = exports.spotKeys = exports.userKeys = void 0;
23
- // Auth (mutations, but grouped with queries for convenience)
24
- __exportStar(require("./auth"), exports);
25
- // Users
26
- __exportStar(require("./users"), exports);
27
- var users_1 = require("./users");
28
- Object.defineProperty(exports, "userKeys", { enumerable: true, get: function () { return users_1.userKeys; } });
29
- // Spots
30
- __exportStar(require("./spots"), exports);
31
- var spots_1 = require("./spots");
32
- Object.defineProperty(exports, "spotKeys", { enumerable: true, get: function () { return spots_1.spotKeys; } });
33
- // Posts
34
- __exportStar(require("./posts"), exports);
35
- var posts_1 = require("./posts");
36
- Object.defineProperty(exports, "postKeys", { enumerable: true, get: function () { return posts_1.postKeys; } });
37
- // Conversations
38
- __exportStar(require("./conversations"), exports);
39
- var conversations_1 = require("./conversations");
40
- Object.defineProperty(exports, "conversationKeys", { enumerable: true, get: function () { return conversations_1.conversationKeys; } });
41
- // Clubs
42
- __exportStar(require("./clubs"), exports);
43
- var clubs_1 = require("./clubs");
44
- Object.defineProperty(exports, "clubKeys", { enumerable: true, get: function () { return clubs_1.clubKeys; } });
45
- // Templates
46
- __exportStar(require("./templates"), exports);
47
- var templates_1 = require("./templates");
48
- Object.defineProperty(exports, "templateKeys", { enumerable: true, get: function () { return templates_1.templateKeys; } });
49
- // Notifications
50
- __exportStar(require("./notifications"), exports);
51
- var notifications_1 = require("./notifications");
52
- Object.defineProperty(exports, "notificationKeys", { enumerable: true, get: function () { return notifications_1.notificationKeys; } });
53
- // Misc (cities, vibes, events)
54
- __exportStar(require("./misc"), exports);
55
- var misc_1 = require("./misc");
56
- Object.defineProperty(exports, "miscKeys", { enumerable: true, get: function () { return misc_1.miscKeys; } });
57
- // Products (marketplace)
58
- __exportStar(require("./products"), exports);
59
- var products_1 = require("./products");
60
- Object.defineProperty(exports, "productKeys", { enumerable: true, get: function () { return products_1.productKeys; } });
61
- // Orders (marketplace)
62
- __exportStar(require("./orders"), exports);
63
- var orders_1 = require("./orders");
64
- Object.defineProperty(exports, "orderKeys", { enumerable: true, get: function () { return orders_1.orderKeys; } });
65
- // Wallet (redemptions)
66
- __exportStar(require("./wallet"), exports);
67
- var wallet_1 = require("./wallet");
68
- Object.defineProperty(exports, "walletKeys", { enumerable: true, get: function () { return wallet_1.walletKeys; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkRBQTZEO0FBQzdELHlDQUFzQjtBQUV0QixRQUFRO0FBQ1IsMENBQXVCO0FBQ3ZCLGlDQUFnQztBQUF4QixpR0FBQSxRQUFRLE9BQUE7QUFFaEIsUUFBUTtBQUNSLDBDQUF1QjtBQUN2QixpQ0FBZ0M7QUFBeEIsaUdBQUEsUUFBUSxPQUFBO0FBRWhCLFFBQVE7QUFDUiwwQ0FBdUI7QUFDdkIsaUNBQWdDO0FBQXhCLGlHQUFBLFFBQVEsT0FBQTtBQUVoQixnQkFBZ0I7QUFDaEIsa0RBQStCO0FBQy9CLGlEQUFnRDtBQUF4QyxpSEFBQSxnQkFBZ0IsT0FBQTtBQUV4QixRQUFRO0FBQ1IsMENBQXVCO0FBQ3ZCLGlDQUFnQztBQUF4QixpR0FBQSxRQUFRLE9BQUE7QUFFaEIsWUFBWTtBQUNaLDhDQUEyQjtBQUMzQix5Q0FBd0M7QUFBaEMseUdBQUEsWUFBWSxPQUFBO0FBRXBCLGdCQUFnQjtBQUNoQixrREFBK0I7QUFDL0IsaURBQWdEO0FBQXhDLGlIQUFBLGdCQUFnQixPQUFBO0FBRXhCLCtCQUErQjtBQUMvQix5Q0FBc0I7QUFDdEIsK0JBQStCO0FBQXZCLGdHQUFBLFFBQVEsT0FBQTtBQUVoQix5QkFBeUI7QUFDekIsNkNBQTBCO0FBQzFCLHVDQUFzQztBQUE5Qix1R0FBQSxXQUFXLE9BQUE7QUFFbkIsdUJBQXVCO0FBQ3ZCLDJDQUF3QjtBQUN4QixtQ0FBa0M7QUFBMUIsbUdBQUEsU0FBUyxPQUFBO0FBRWpCLHVCQUF1QjtBQUN2QiwyQ0FBd0I7QUFDeEIsbUNBQW1DO0FBQTNCLG9HQUFBLFVBQVUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3BvdHMgU0RLIFF1ZXJ5IEhvb2tzIEluZGV4XG4gKlxuICogUmUtZXhwb3J0cyBhbGwgcXVlcnkgaG9va3MgYW5kIGtleXMuXG4gKi9cblxuLy8gQXV0aCAobXV0YXRpb25zLCBidXQgZ3JvdXBlZCB3aXRoIHF1ZXJpZXMgZm9yIGNvbnZlbmllbmNlKVxuZXhwb3J0ICogZnJvbSAnLi9hdXRoJ1xuXG4vLyBVc2Vyc1xuZXhwb3J0ICogZnJvbSAnLi91c2VycydcbmV4cG9ydCB7dXNlcktleXN9IGZyb20gJy4vdXNlcnMnXG5cbi8vIFNwb3RzXG5leHBvcnQgKiBmcm9tICcuL3Nwb3RzJ1xuZXhwb3J0IHtzcG90S2V5c30gZnJvbSAnLi9zcG90cydcblxuLy8gUG9zdHNcbmV4cG9ydCAqIGZyb20gJy4vcG9zdHMnXG5leHBvcnQge3Bvc3RLZXlzfSBmcm9tICcuL3Bvc3RzJ1xuXG4vLyBDb252ZXJzYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnXG5leHBvcnQge2NvbnZlcnNhdGlvbktleXN9IGZyb20gJy4vY29udmVyc2F0aW9ucydcblxuLy8gQ2x1YnNcbmV4cG9ydCAqIGZyb20gJy4vY2x1YnMnXG5leHBvcnQge2NsdWJLZXlzfSBmcm9tICcuL2NsdWJzJ1xuXG4vLyBUZW1wbGF0ZXNcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGVzJ1xuZXhwb3J0IHt0ZW1wbGF0ZUtleXN9IGZyb20gJy4vdGVtcGxhdGVzJ1xuXG4vLyBOb3RpZmljYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnXG5leHBvcnQge25vdGlmaWNhdGlvbktleXN9IGZyb20gJy4vbm90aWZpY2F0aW9ucydcblxuLy8gTWlzYyAoY2l0aWVzLCB2aWJlcywgZXZlbnRzKVxuZXhwb3J0ICogZnJvbSAnLi9taXNjJ1xuZXhwb3J0IHttaXNjS2V5c30gZnJvbSAnLi9taXNjJ1xuXG4vLyBQcm9kdWN0cyAobWFya2V0cGxhY2UpXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3RzJ1xuZXhwb3J0IHtwcm9kdWN0S2V5c30gZnJvbSAnLi9wcm9kdWN0cydcblxuLy8gT3JkZXJzIChtYXJrZXRwbGFjZSlcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzJ1xuZXhwb3J0IHtvcmRlcktleXN9IGZyb20gJy4vb3JkZXJzJ1xuXG4vLyBXYWxsZXQgKHJlZGVtcHRpb25zKVxuZXhwb3J0ICogZnJvbSAnLi93YWxsZXQnXG5leHBvcnQge3dhbGxldEtleXN9IGZyb20gJy4vd2FsbGV0J1xuIl19
@@ -1,30 +0,0 @@
1
- /**
2
- * Misc Query Hooks
3
- *
4
- * TanStack Query hooks for cities, vibes, and other reference data.
5
- */
6
- import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
7
- import { type City, type LifeSituation, type Vibe } from '../types';
8
- export declare const miscKeys: {
9
- cities: () => readonly ["cities"];
10
- vibes: () => readonly ["vibes"];
11
- lifeSituations: () => readonly ["life-situations"];
12
- };
13
- /**
14
- * Get all cities
15
- *
16
- * @endpoint GET /cities
17
- */
18
- export declare function useCities(options?: Omit<UseQueryOptions<City[]>, 'queryKey' | 'queryFn'>): UseQueryResult<City[]>;
19
- /**
20
- * Get all vibes
21
- *
22
- * @endpoint GET /vibes
23
- */
24
- export declare function useVibes(options?: Omit<UseQueryOptions<Vibe[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Vibe[]>;
25
- /**
26
- * Get all life situations (for onboarding)
27
- *
28
- * @endpoint GET /life-situations
29
- */
30
- export declare function useLifeSituations(options?: Omit<UseQueryOptions<LifeSituation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<LifeSituation[]>;
@@ -1,91 +0,0 @@
1
- "use strict";
2
- /**
3
- * Misc Query Hooks
4
- *
5
- * TanStack Query hooks for cities, vibes, and other reference data.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.miscKeys = void 0;
9
- exports.useCities = useCities;
10
- exports.useVibes = useVibes;
11
- exports.useLifeSituations = useLifeSituations;
12
- const react_query_1 = require("@tanstack/react-query");
13
- const client_1 = require("../client");
14
- // ============================================================================
15
- // HELPER FUNCTIONS
16
- // ============================================================================
17
- function extractArrayData(data) {
18
- if (Array.isArray(data)) {
19
- return data;
20
- }
21
- if (data && typeof data === 'object' && 'data' in data) {
22
- const nested = data.data;
23
- if (Array.isArray(nested)) {
24
- return nested;
25
- }
26
- }
27
- return [];
28
- }
29
- // ============================================================================
30
- // QUERY KEYS
31
- // ============================================================================
32
- exports.miscKeys = {
33
- cities: () => ['cities'],
34
- vibes: () => ['vibes'],
35
- lifeSituations: () => ['life-situations'],
36
- };
37
- // ============================================================================
38
- // QUERY HOOKS
39
- // ============================================================================
40
- /**
41
- * Get all cities
42
- *
43
- * @endpoint GET /cities
44
- */
45
- function useCities(options) {
46
- return (0, react_query_1.useQuery)({
47
- queryKey: exports.miscKeys.cities(),
48
- queryFn: async () => {
49
- const client = (0, client_1.getApiClient)();
50
- const response = await client.get('/cities');
51
- return extractArrayData(response.data.data);
52
- },
53
- staleTime: 1000 * 60 * 60,
54
- ...options,
55
- });
56
- }
57
- /**
58
- * Get all vibes
59
- *
60
- * @endpoint GET /vibes
61
- */
62
- function useVibes(options) {
63
- return (0, react_query_1.useQuery)({
64
- queryKey: exports.miscKeys.vibes(),
65
- queryFn: async () => {
66
- const client = (0, client_1.getApiClient)();
67
- const response = await client.get('/vibes');
68
- return extractArrayData(response.data.data);
69
- },
70
- staleTime: 1000 * 60 * 60,
71
- ...options,
72
- });
73
- }
74
- /**
75
- * Get all life situations (for onboarding)
76
- *
77
- * @endpoint GET /life-situations
78
- */
79
- function useLifeSituations(options) {
80
- return (0, react_query_1.useQuery)({
81
- queryKey: exports.miscKeys.lifeSituations(),
82
- queryFn: async () => {
83
- const client = (0, client_1.getApiClient)();
84
- const response = await client.get('/life-situations');
85
- return extractArrayData(response.data.data);
86
- },
87
- staleTime: 1000 * 60 * 60,
88
- ...options,
89
- });
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFvREgsOEJBYUM7QUFPRCw0QkFhQztBQU9ELDhDQWNDO0FBeEdELHVEQUk4QjtBQUU5QixzQ0FBc0M7QUFRdEMsK0VBQStFO0FBQy9FLG1CQUFtQjtBQUNuQiwrRUFBK0U7QUFFL0UsU0FBUyxnQkFBZ0IsQ0FBSSxJQUFhO0lBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUksSUFBd0IsQ0FBQyxJQUFJLENBQUE7UUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBVTtJQUNqQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQVU7SUFDL0IsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQVU7Q0FDbkQsQ0FBQTtBQUVELCtFQUErRTtBQUMvRSxjQUFjO0FBQ2QsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxFQUFFO1FBQzNCLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUF1QixTQUFTLENBQUMsQ0FBQTtZQUNsRSxPQUFPLGdCQUFnQixDQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUNELFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDekIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsS0FBSyxFQUFFO1FBQzFCLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUF1QixRQUFRLENBQUMsQ0FBQTtZQUNqRSxPQUFPLGdCQUFnQixDQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUNELFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDekIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsT0FBd0U7SUFFeEUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxjQUFjLEVBQUU7UUFDbkMsT0FBTyxFQUFFLEtBQUssSUFBOEIsRUFBRTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FDWixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQXVCLGtCQUFrQixDQUFDLENBQUE7WUFDNUQsT0FBTyxnQkFBZ0IsQ0FBZ0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQ0QsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUN6QixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNaXNjIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIGNpdGllcywgdmliZXMsIGFuZCBvdGhlciByZWZlcmVuY2UgZGF0YS5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIHR5cGUgQXBpUmVzcG9uc2UsXG4gIHR5cGUgQ2l0eSxcbiAgdHlwZSBMaWZlU2l0dWF0aW9uLFxuICB0eXBlIFZpYmUsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGV4dHJhY3RBcnJheURhdGE8VD4oZGF0YTogdW5rbm93bik6IFRbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGRhdGEpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSAoZGF0YSBhcyB7ZGF0YTogdW5rbm93bn0pLmRhdGFcbiAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWQpKSB7XG4gICAgICByZXR1cm4gbmVzdGVkXG4gICAgfVxuICB9XG4gIHJldHVybiBbXVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBtaXNjS2V5cyA9IHtcbiAgY2l0aWVzOiAoKSA9PiBbJ2NpdGllcyddIGFzIGNvbnN0LFxuICB2aWJlczogKCkgPT4gWyd2aWJlcyddIGFzIGNvbnN0LFxuICBsaWZlU2l0dWF0aW9uczogKCkgPT4gWydsaWZlLXNpdHVhdGlvbnMnXSBhcyBjb25zdCxcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgYWxsIGNpdGllc1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL2NpdGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2l0aWVzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2l0eVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxDaXR5W10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogbWlzY0tleXMuY2l0aWVzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2l0eVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL2NpdGllcycpXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxDaXR5PihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICBzdGFsZVRpbWU6IDEwMDAgKiA2MCAqIDYwLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGFsbCB2aWJlc1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3ZpYmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VWaWJlcyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFZpYmVbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8VmliZVtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG1pc2NLZXlzLnZpYmVzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8VmliZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL3ZpYmVzJylcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFZpYmU+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIHN0YWxlVGltZTogMTAwMCAqIDYwICogNjAsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgYWxsIGxpZmUgc2l0dWF0aW9ucyAoZm9yIG9uYm9hcmRpbmcpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvbGlmZS1zaXR1YXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMaWZlU2l0dWF0aW9ucyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPExpZmVTaXR1YXRpb25bXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8TGlmZVNpdHVhdGlvbltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG1pc2NLZXlzLmxpZmVTaXR1YXRpb25zKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TGlmZVNpdHVhdGlvbltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL2xpZmUtc2l0dWF0aW9ucycpXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxMaWZlU2l0dWF0aW9uPihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICBzdGFsZVRpbWU6IDEwMDAgKiA2MCAqIDYwLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
@@ -1,34 +0,0 @@
1
- /**
2
- * Notifications Query Hooks
3
- *
4
- * TanStack Query hooks for notification operations.
5
- */
6
- import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
7
- import { type Notification } from '../types';
8
- export declare const notificationKeys: {
9
- all: readonly ["notifications"];
10
- lists: () => readonly ["notifications", "list"];
11
- list: (params?: {
12
- limit?: number;
13
- unreadOnly?: boolean;
14
- }) => readonly ["notifications", "list", {
15
- limit?: number;
16
- unreadOnly?: boolean;
17
- } | undefined];
18
- unreadCount: () => readonly ["notifications", "unreadCount"];
19
- };
20
- /**
21
- * Get notifications for current user
22
- *
23
- * @endpoint GET /notifications
24
- */
25
- export declare function useNotifications(params?: {
26
- limit?: number;
27
- unreadOnly?: boolean;
28
- }, options?: Omit<UseQueryOptions<Notification[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Notification[]>;
29
- /**
30
- * Get unread notification count
31
- *
32
- * @endpoint GET /notifications/unread-count
33
- */
34
- export declare function useUnreadNotificationCount(options?: Omit<UseQueryOptions<number>, 'queryKey' | 'queryFn'>): UseQueryResult<number>;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- /**
3
- * Notifications Query Hooks
4
- *
5
- * TanStack Query hooks for notification operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.notificationKeys = void 0;
9
- exports.useNotifications = useNotifications;
10
- exports.useUnreadNotificationCount = useUnreadNotificationCount;
11
- const react_query_1 = require("@tanstack/react-query");
12
- const client_1 = require("../client");
13
- // ============================================================================
14
- // QUERY KEYS
15
- // ============================================================================
16
- exports.notificationKeys = {
17
- all: ['notifications'],
18
- lists: () => [...exports.notificationKeys.all, 'list'],
19
- list: (params) => [...exports.notificationKeys.lists(), params],
20
- unreadCount: () => [...exports.notificationKeys.all, 'unreadCount'],
21
- };
22
- // ============================================================================
23
- // QUERY HOOKS
24
- // ============================================================================
25
- /**
26
- * Get notifications for current user
27
- *
28
- * @endpoint GET /notifications
29
- */
30
- function useNotifications(params, options) {
31
- return (0, react_query_1.useQuery)({
32
- queryKey: exports.notificationKeys.list(params),
33
- queryFn: async () => {
34
- const client = (0, client_1.getApiClient)();
35
- const queryParams = new URLSearchParams();
36
- if (params?.limit)
37
- queryParams.set('limit', String(params.limit));
38
- if (params?.unreadOnly)
39
- queryParams.set('unreadOnly', String(params.unreadOnly));
40
- const response = await client.get(`/notifications?${queryParams}`);
41
- return response.data.data;
42
- },
43
- ...options,
44
- });
45
- }
46
- /**
47
- * Get unread notification count
48
- *
49
- * @endpoint GET /notifications/unread-count
50
- */
51
- function useUnreadNotificationCount(options) {
52
- return (0, react_query_1.useQuery)({
53
- queryKey: exports.notificationKeys.unreadCount(),
54
- queryFn: async () => {
55
- const client = (0, client_1.getApiClient)();
56
- const response = await client.get('/notifications/unread-count');
57
- return response.data.data.count;
58
- },
59
- ...options,
60
- });
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9ub3RpZmljYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFnQ0gsNENBbUJDO0FBT0QsZ0VBY0M7QUF0RUQsdURBSThCO0FBRTlCLHNDQUFzQztBQUd0QywrRUFBK0U7QUFDL0UsYUFBYTtBQUNiLCtFQUErRTtBQUVsRSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBVTtJQUMvQixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLHdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQVU7SUFDdkQsSUFBSSxFQUFFLENBQUMsTUFBK0MsRUFBRSxFQUFFLENBQ3hELENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLENBQVU7SUFDaEQsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFVO0NBQ3JFLENBQUE7QUFFRCwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQStDLEVBQy9DLE9BQXVFO0lBRXZFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkMsT0FBTyxFQUFFLEtBQUssSUFBNkIsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1lBQ3pDLElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQ2pFLElBQUksTUFBTSxFQUFFLFVBQVU7Z0JBQ3BCLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGtCQUFrQixXQUFXLEVBQUUsQ0FDaEMsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLFdBQVcsRUFBRTtRQUN4QyxPQUFPLEVBQUUsS0FBSyxJQUFxQixFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsNkJBQTZCLENBQzlCLENBQUE7WUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm90aWZpY2F0aW9ucyBRdWVyeSBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciBub3RpZmljYXRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7dHlwZSBBcGlSZXNwb25zZSwgdHlwZSBOb3RpZmljYXRpb259IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb25LZXlzID0ge1xuICBhbGw6IFsnbm90aWZpY2F0aW9ucyddIGFzIGNvbnN0LFxuICBsaXN0czogKCkgPT4gWy4uLm5vdGlmaWNhdGlvbktleXMuYWxsLCAnbGlzdCddIGFzIGNvbnN0LFxuICBsaXN0OiAocGFyYW1zPzoge2xpbWl0PzogbnVtYmVyOyB1bnJlYWRPbmx5PzogYm9vbGVhbn0pID0+XG4gICAgWy4uLm5vdGlmaWNhdGlvbktleXMubGlzdHMoKSwgcGFyYW1zXSBhcyBjb25zdCxcbiAgdW5yZWFkQ291bnQ6ICgpID0+IFsuLi5ub3RpZmljYXRpb25LZXlzLmFsbCwgJ3VucmVhZENvdW50J10gYXMgY29uc3QsXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IG5vdGlmaWNhdGlvbnMgZm9yIGN1cnJlbnQgdXNlclxuICpcbiAqIEBlbmRwb2ludCBHRVQgL25vdGlmaWNhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5vdGlmaWNhdGlvbnMoXG4gIHBhcmFtcz86IHtsaW1pdD86IG51bWJlcjsgdW5yZWFkT25seT86IGJvb2xlYW59LFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Tm90aWZpY2F0aW9uW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PE5vdGlmaWNhdGlvbltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG5vdGlmaWNhdGlvbktleXMubGlzdChwYXJhbXMpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPE5vdGlmaWNhdGlvbltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBpZiAocGFyYW1zPy51bnJlYWRPbmx5KVxuICAgICAgICBxdWVyeVBhcmFtcy5zZXQoJ3VucmVhZE9ubHknLCBTdHJpbmcocGFyYW1zLnVucmVhZE9ubHkpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE5vdGlmaWNhdGlvbltdPj4oXG4gICAgICAgIGAvbm90aWZpY2F0aW9ucz8ke3F1ZXJ5UGFyYW1zfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCB1bnJlYWQgbm90aWZpY2F0aW9uIGNvdW50XG4gKlxuICogQGVuZHBvaW50IEdFVCAvbm90aWZpY2F0aW9ucy91bnJlYWQtY291bnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVucmVhZE5vdGlmaWNhdGlvbkNvdW50KFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8bnVtYmVyPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxudW1iZXI+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogbm90aWZpY2F0aW9uS2V5cy51bnJlYWRDb3VudCgpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx7Y291bnQ6IG51bWJlcn0+PihcbiAgICAgICAgJy9ub3RpZmljYXRpb25zL3VucmVhZC1jb3VudCcsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhLmNvdW50XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
@@ -1,45 +0,0 @@
1
- /**
2
- * Orders Query Hooks
3
- *
4
- * TanStack Query hooks for order-related operations.
5
- */
6
- import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
7
- import type { Order, OrderItem, Product, Spot, OrderStatus, PaginatedResponse } from '../types';
8
- export declare const orderKeys: {
9
- all: readonly ["orders"];
10
- lists: () => readonly ["orders", "list"];
11
- list: (filters?: Record<string, unknown>) => readonly ["orders", "list", Record<string, unknown> | undefined];
12
- details: () => readonly ["orders", "detail"];
13
- detail: (id: string) => readonly ["orders", "detail", string];
14
- myOrders: () => readonly ["orders", "my"];
15
- spotOrders: (spotId: string) => readonly ["orders", "spot", string];
16
- };
17
- export interface OrderWithDetails extends Order {
18
- items: (OrderItem & {
19
- product: Pick<Product, 'id' | 'name' | 'slug' | 'type' | 'imageUrl'>;
20
- })[];
21
- spot: Pick<Spot, 'id' | 'name' | 'slug'>;
22
- }
23
- export interface OrderFilters {
24
- status?: OrderStatus;
25
- limit?: number;
26
- page?: number;
27
- }
28
- /**
29
- * Get current user's orders (purchases)
30
- *
31
- * @endpoint GET /users/me/orders
32
- */
33
- export declare function useMyOrders(params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
34
- /**
35
- * Get a single order by ID
36
- *
37
- * @endpoint GET /orders/{orderId}
38
- */
39
- export declare function useOrder(orderId: string, options?: Omit<UseQueryOptions<OrderWithDetails>, 'queryKey' | 'queryFn'>): UseQueryResult<OrderWithDetails>;
40
- /**
41
- * Get orders for a spot (seller view)
42
- *
43
- * @endpoint GET /seller/spots/{spotId}/orders
44
- */
45
- export declare function useSpotOrders(spotId: string, params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Orders Query Hooks
4
- *
5
- * TanStack Query hooks for order-related operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.orderKeys = void 0;
9
- exports.useMyOrders = useMyOrders;
10
- exports.useOrder = useOrder;
11
- exports.useSpotOrders = useSpotOrders;
12
- const react_query_1 = require("@tanstack/react-query");
13
- const client_1 = require("../client");
14
- // ============================================================================
15
- // QUERY KEYS
16
- // ============================================================================
17
- exports.orderKeys = {
18
- all: ['orders'],
19
- lists: () => [...exports.orderKeys.all, 'list'],
20
- list: (filters) => [...exports.orderKeys.lists(), filters],
21
- details: () => [...exports.orderKeys.all, 'detail'],
22
- detail: (id) => [...exports.orderKeys.details(), id],
23
- myOrders: () => [...exports.orderKeys.all, 'my'],
24
- spotOrders: (spotId) => [...exports.orderKeys.all, 'spot', spotId],
25
- };
26
- // ============================================================================
27
- // QUERY HOOKS
28
- // ============================================================================
29
- /**
30
- * Get current user's orders (purchases)
31
- *
32
- * @endpoint GET /users/me/orders
33
- */
34
- function useMyOrders(params, options) {
35
- return (0, react_query_1.useQuery)({
36
- queryKey: exports.orderKeys.list({ ...params, my: true }),
37
- queryFn: async () => {
38
- const client = (0, client_1.getApiClient)();
39
- const queryParams = new URLSearchParams();
40
- if (params?.status)
41
- queryParams.set('status', params.status);
42
- if (params?.limit)
43
- queryParams.set('limit', String(params.limit));
44
- if (params?.page)
45
- queryParams.set('page', String(params.page));
46
- const response = await client.get(`/users/me/orders?${queryParams}`);
47
- return response.data.data;
48
- },
49
- ...options,
50
- });
51
- }
52
- /**
53
- * Get a single order by ID
54
- *
55
- * @endpoint GET /orders/{orderId}
56
- */
57
- function useOrder(orderId, options) {
58
- return (0, react_query_1.useQuery)({
59
- queryKey: exports.orderKeys.detail(orderId),
60
- queryFn: async () => {
61
- const client = (0, client_1.getApiClient)();
62
- const response = await client.get(`/orders/${orderId}`);
63
- return response.data.data;
64
- },
65
- enabled: !!orderId,
66
- ...options,
67
- });
68
- }
69
- /**
70
- * Get orders for a spot (seller view)
71
- *
72
- * @endpoint GET /seller/spots/{spotId}/orders
73
- */
74
- function useSpotOrders(spotId, params, options) {
75
- return (0, react_query_1.useQuery)({
76
- queryKey: exports.orderKeys.spotOrders(spotId),
77
- queryFn: async () => {
78
- const client = (0, client_1.getApiClient)();
79
- const queryParams = new URLSearchParams();
80
- if (params?.status)
81
- queryParams.set('status', params.status);
82
- if (params?.limit)
83
- queryParams.set('limit', String(params.limit));
84
- if (params?.page)
85
- queryParams.set('page', String(params.page));
86
- const response = await client.get(`/seller/spots/${spotId}/orders?${queryParams}`);
87
- return response.data.data;
88
- },
89
- enabled: !!spotId,
90
- ...options,
91
- });
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9xdWVyaWVzL29yZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBdURILGtDQXNCQztBQU9ELDRCQWdCQztBQU9ELHNDQXdCQztBQWpJRCx1REFBeUY7QUFDekYsc0NBQXNDO0FBV3RDLCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBVTtJQUN4QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNoRCxJQUFJLEVBQUUsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ3BELE1BQU0sRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFVO0lBQzdELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFVO0lBQ2pELFVBQVUsRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7Q0FDNUUsQ0FBQTtBQW1CRCwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixNQUFxQixFQUNyQixPQUdDO0lBRUQsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFD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b250ZW50IjpbIi8qKlxuICogT3JkZXJzIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIG9yZGVyLXJlbGF0ZWQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge3VzZVF1ZXJ5LCB0eXBlIFVzZVF1ZXJ5T3B0aW9ucywgdHlwZSBVc2VRdWVyeVJlc3VsdH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5J1xuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgT3JkZXIsXG4gIE9yZGVySXRlbSxcbiAgUHJvZHVjdCxcbiAgU3BvdCxcbiAgT3JkZXJTdGF0dXMsXG4gIEFwaVJlc3BvbnNlLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IG9yZGVyS2V5cyA9IHtcbiAgYWxsOiBbJ29yZGVycyddIGFzIGNvbnN0LFxuICBsaXN0czogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+XG4gICAgWy4uLm9yZGVyS2V5cy5saXN0cygpLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLm9yZGVyS2V5cy5kZXRhaWxzKCksIGlkXSBhcyBjb25zdCxcbiAgbXlPcmRlcnM6ICgpID0+IFsuLi5vcmRlcktleXMuYWxsLCAnbXknXSBhcyBjb25zdCxcbiAgc3BvdE9yZGVyczogKHNwb3RJZDogc3RyaW5nKSA9PiBbLi4ub3JkZXJLZXlzLmFsbCwgJ3Nwb3QnLCBzcG90SWRdIGFzIGNvbnN0LFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyV2l0aERldGFpbHMgZXh0ZW5kcyBPcmRlciB7XG4gIGl0ZW1zOiAoT3JkZXJJdGVtICYge1xuICAgIHByb2R1Y3Q6IFBpY2s8UHJvZHVjdCwgJ2lkJyB8ICduYW1lJyB8ICdzbHVnJyB8ICd0eXBlJyB8ICdpbWFnZVVybCc+XG4gIH0pW11cbiAgc3BvdDogUGljazxTcG90LCAnaWQnIHwgJ25hbWUnIHwgJ3NsdWcnPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyRmlsdGVycyB7XG4gIHN0YXR1cz86IE9yZGVyU3RhdHVzXG4gIGxpbWl0PzogbnVtYmVyXG4gIHBhZ2U/OiBudW1iZXJcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgY3VycmVudCB1c2VyJ3Mgb3JkZXJzIChwdXJjaGFzZXMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWUvb3JkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNeU9yZGVycyhcbiAgcGFyYW1zPzogT3JkZXJGaWx0ZXJzLFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VRdWVyeU9wdGlvbnM8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+LFxuICAgICdxdWVyeUtleScgfCAncXVlcnlGbidcbiAgPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFBhZ2luYXRlZFJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG9yZGVyS2V5cy5saXN0KHsuLi5wYXJhbXMsIG15OiB0cnVlfSksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpXG4gICAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKVxuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSlcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxcbiAgICAgICAgQXBpUmVzcG9uc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+XG4gICAgICA+KGAvdXNlcnMvbWUvb3JkZXJzPyR7cXVlcnlQYXJhbXN9YClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGEgc2luZ2xlIG9yZGVyIGJ5IElEXG4gKlxuICogQGVuZHBvaW50IEdFVCAvb3JkZXJzL3tvcmRlcklkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlT3JkZXIoXG4gIG9yZGVySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPE9yZGVyV2l0aERldGFpbHM+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PE9yZGVyV2l0aERldGFpbHM+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLmRldGFpbChvcmRlcklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxPcmRlcldpdGhEZXRhaWxzPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgICAgYC9vcmRlcnMvJHtvcmRlcklkfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIW9yZGVySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgb3JkZXJzIGZvciBhIHNwb3QgKHNlbGxlciB2aWV3KVxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3NlbGxlci9zcG90cy97c3BvdElkfS9vcmRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNwb3RPcmRlcnMoXG4gIHNwb3RJZDogc3RyaW5nLFxuICBwYXJhbXM/OiBPcmRlckZpbHRlcnMsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZVF1ZXJ5T3B0aW9uczxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4sXG4gICAgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJ1xuICA+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLnNwb3RPcmRlcnMoc3BvdElkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICBpZiAocGFyYW1zPy5zdGF0dXMpIHF1ZXJ5UGFyYW1zLnNldCgnc3RhdHVzJywgcGFyYW1zLnN0YXR1cylcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFxuICAgICAgICBBcGlSZXNwb25zZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj5cbiAgICAgID4oYC9zZWxsZXIvc3BvdHMvJHtzcG90SWR9L29yZGVycz8ke3F1ZXJ5UGFyYW1zfWApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNwb3RJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
@@ -1,92 +0,0 @@
1
- /**
2
- * Posts Query Hooks
3
- *
4
- * TanStack Query hooks for post/board operations.
5
- */
6
- import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
7
- import { type Post, type PostResponse, type PostStatusDto, type PostUpvotesResponse } from '../types';
8
- export declare const postKeys: {
9
- all: readonly ["posts"];
10
- lists: () => readonly ["posts", "list"];
11
- list: (filters?: Record<string, unknown>) => readonly ["posts", "list", Record<string, unknown> | undefined];
12
- bySpot: (spotId: string, filters?: Record<string, unknown>) => readonly ["posts", "spot", string, Record<string, unknown> | undefined];
13
- details: () => readonly ["posts", "detail"];
14
- detail: (id: string) => readonly ["posts", "detail", string];
15
- responses: (postId: string) => readonly ["posts", "detail", string, "responses"];
16
- status: (postId: string) => readonly ["posts", "detail", string, "status"];
17
- upvotes: (postId: string, filters?: {
18
- limit?: number;
19
- offset?: number;
20
- }) => readonly ["posts", "detail", string, "upvotes", {
21
- limit?: number;
22
- offset?: number;
23
- } | undefined];
24
- };
25
- /**
26
- * Get posts for a spot
27
- *
28
- * @endpoint GET /spots/{spotId}/posts
29
- */
30
- export declare function useSpotPosts(spotId: string, params?: {
31
- postType?: string;
32
- status?: string;
33
- page?: number;
34
- limit?: number;
35
- }, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
36
- /**
37
- * Get a single post by ID
38
- *
39
- * @endpoint GET /posts/{postId}
40
- */
41
- export declare function usePost(postId: string, options?: Omit<UseQueryOptions<Post>, 'queryKey' | 'queryFn'>): UseQueryResult<Post>;
42
- /**
43
- * Get responses for a post
44
- *
45
- * @endpoint GET /posts/{postId}/responses
46
- */
47
- export declare function usePostResponses(postId: string, options?: Omit<UseQueryOptions<PostResponse[]>, 'queryKey' | 'queryFn'>): UseQueryResult<PostResponse[]>;
48
- /**
49
- * Get all posts (with filters)
50
- *
51
- * @endpoint GET /posts
52
- */
53
- export declare function usePosts(params?: {
54
- postType?: string;
55
- limit?: number;
56
- }, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
57
- /**
58
- * Get user's status for a post (read/hidden/pinned)
59
- *
60
- * @endpoint GET /posts/{postId}/status
61
- */
62
- export declare function usePostStatus(postId: string, options?: Omit<UseQueryOptions<PostStatusDto>, 'queryKey' | 'queryFn'>): UseQueryResult<PostStatusDto>;
63
- /**
64
- * Get upvotes for a post (list of users who upvoted)
65
- *
66
- * @endpoint GET /posts/{postId}/upvotes
67
- */
68
- export declare function usePostUpvotes(postId: string, params?: {
69
- limit?: number;
70
- offset?: number;
71
- }, options?: Omit<UseQueryOptions<PostUpvotesResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<PostUpvotesResponse>;
72
- /**
73
- * Get nearby posts feed
74
- *
75
- * @endpoint GET /posts/feed
76
- */
77
- export declare function usePostsFeed(params: {
78
- lat: number;
79
- lng: number;
80
- radius?: number;
81
- postType?: string;
82
- cursor?: string;
83
- limit?: number;
84
- }, options?: Omit<UseQueryOptions<{
85
- posts: Post[];
86
- hasMore: boolean;
87
- nextCursor?: string;
88
- }>, 'queryKey' | 'queryFn'>): UseQueryResult<{
89
- posts: Post[];
90
- hasMore: boolean;
91
- nextCursor?: string;
92
- }>;