@spotsdev/sdk 1.0.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 (79) hide show
  1. package/dist/api/client.d.ts +12 -0
  2. package/dist/api/client.js +68 -0
  3. package/dist/api/mutations/clubs.d.ts +47 -0
  4. package/dist/api/mutations/clubs.js +95 -0
  5. package/dist/api/mutations/conversations.d.ts +45 -0
  6. package/dist/api/mutations/conversations.js +110 -0
  7. package/dist/api/mutations/index.d.ts +13 -0
  8. package/dist/api/mutations/index.js +38 -0
  9. package/dist/api/mutations/notifications.d.ts +38 -0
  10. package/dist/api/mutations/notifications.js +64 -0
  11. package/dist/api/mutations/orders.d.ts +73 -0
  12. package/dist/api/mutations/orders.js +116 -0
  13. package/dist/api/mutations/posts.d.ts +123 -0
  14. package/dist/api/mutations/posts.js +229 -0
  15. package/dist/api/mutations/products.d.ts +81 -0
  16. package/dist/api/mutations/products.js +102 -0
  17. package/dist/api/mutations/spots.d.ts +59 -0
  18. package/dist/api/mutations/spots.js +129 -0
  19. package/dist/api/mutations/users.d.ts +71 -0
  20. package/dist/api/mutations/users.js +173 -0
  21. package/dist/api/queries/auth.d.ts +37 -0
  22. package/dist/api/queries/auth.js +61 -0
  23. package/dist/api/queries/clubs.d.ts +52 -0
  24. package/dist/api/queries/clubs.js +116 -0
  25. package/dist/api/queries/conversations.d.ts +52 -0
  26. package/dist/api/queries/conversations.js +83 -0
  27. package/dist/api/queries/index.d.ts +26 -0
  28. package/dist/api/queries/index.js +65 -0
  29. package/dist/api/queries/misc.d.ts +54 -0
  30. package/dist/api/queries/misc.js +129 -0
  31. package/dist/api/queries/notifications.d.ts +34 -0
  32. package/dist/api/queries/notifications.js +62 -0
  33. package/dist/api/queries/orders.d.ts +45 -0
  34. package/dist/api/queries/orders.js +93 -0
  35. package/dist/api/queries/posts.d.ts +55 -0
  36. package/dist/api/queries/posts.js +130 -0
  37. package/dist/api/queries/products.d.ts +52 -0
  38. package/dist/api/queries/products.js +89 -0
  39. package/dist/api/queries/spots.d.ts +78 -0
  40. package/dist/api/queries/spots.js +168 -0
  41. package/dist/api/queries/templates.d.ts +42 -0
  42. package/dist/api/queries/templates.js +86 -0
  43. package/dist/api/queries/users.d.ts +90 -0
  44. package/dist/api/queries/users.js +187 -0
  45. package/dist/api/services/index.d.ts +2 -0
  46. package/dist/api/services/index.js +8 -0
  47. package/dist/api/services/marketplace.d.ts +129 -0
  48. package/dist/api/services/marketplace.js +168 -0
  49. package/dist/api/types.d.ts +54 -0
  50. package/dist/api/types.js +34 -0
  51. package/dist/index.d.ts +38 -0
  52. package/dist/index.js +73 -0
  53. package/package.json +57 -0
  54. package/src/api/client.ts +78 -0
  55. package/src/api/mutations/clubs.ts +107 -0
  56. package/src/api/mutations/conversations.ts +124 -0
  57. package/src/api/mutations/index.ts +29 -0
  58. package/src/api/mutations/notifications.ts +70 -0
  59. package/src/api/mutations/orders.ts +174 -0
  60. package/src/api/mutations/posts.ts +278 -0
  61. package/src/api/mutations/products.ts +160 -0
  62. package/src/api/mutations/spots.ts +146 -0
  63. package/src/api/mutations/users.ts +197 -0
  64. package/src/api/queries/auth.ts +67 -0
  65. package/src/api/queries/clubs.ts +135 -0
  66. package/src/api/queries/conversations.ts +94 -0
  67. package/src/api/queries/index.ts +48 -0
  68. package/src/api/queries/misc.ts +140 -0
  69. package/src/api/queries/notifications.ts +66 -0
  70. package/src/api/queries/orders.ts +119 -0
  71. package/src/api/queries/posts.ts +142 -0
  72. package/src/api/queries/products.ts +123 -0
  73. package/src/api/queries/spots.ts +201 -0
  74. package/src/api/queries/templates.ts +95 -0
  75. package/src/api/queries/users.ts +206 -0
  76. package/src/api/services/index.ts +6 -0
  77. package/src/api/services/marketplace.ts +265 -0
  78. package/src/api/types.ts +144 -0
  79. package/src/index.ts +63 -0
@@ -0,0 +1,12 @@
1
+ import { AxiosInstance } from 'axios';
2
+ export interface SDKConfig {
3
+ baseURL: string;
4
+ getAccessToken: () => string | null | Promise<string | null>;
5
+ refreshAccessToken?: () => Promise<string>;
6
+ onUnauthorized?: () => void;
7
+ }
8
+ declare let apiClient: AxiosInstance | null;
9
+ export declare function configureSDK(sdkConfig: SDKConfig): void;
10
+ export declare function getApiClient(): AxiosInstance;
11
+ export declare function getConfig(): SDKConfig;
12
+ export { apiClient };
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiClient = void 0;
7
+ exports.configureSDK = configureSDK;
8
+ exports.getApiClient = getApiClient;
9
+ exports.getConfig = getConfig;
10
+ const axios_1 = __importDefault(require("axios"));
11
+ let config = null;
12
+ let apiClient = null;
13
+ exports.apiClient = apiClient;
14
+ function configureSDK(sdkConfig) {
15
+ config = sdkConfig;
16
+ exports.apiClient = apiClient = createApiClient(sdkConfig);
17
+ }
18
+ function getApiClient() {
19
+ if (!apiClient) {
20
+ throw new Error('SDK not configured. Call configureSDK() first.');
21
+ }
22
+ return apiClient;
23
+ }
24
+ function getConfig() {
25
+ if (!config) {
26
+ throw new Error('SDK not configured. Call configureSDK() first.');
27
+ }
28
+ return config;
29
+ }
30
+ function createApiClient(sdkConfig) {
31
+ const client = axios_1.default.create({
32
+ baseURL: sdkConfig.baseURL,
33
+ headers: {
34
+ 'Content-Type': 'application/json',
35
+ },
36
+ });
37
+ // Request interceptor - add auth token
38
+ client.interceptors.request.use(async (requestConfig) => {
39
+ const token = await sdkConfig.getAccessToken();
40
+ if (token) {
41
+ requestConfig.headers.Authorization = `Bearer ${token}`;
42
+ }
43
+ return requestConfig;
44
+ }, (error) => Promise.reject(error));
45
+ // Response interceptor - handle 401
46
+ client.interceptors.response.use((response) => response, async (error) => {
47
+ if (error.response?.status === 401) {
48
+ if (sdkConfig.refreshAccessToken) {
49
+ try {
50
+ const newToken = await sdkConfig.refreshAccessToken();
51
+ if (newToken && error.config) {
52
+ error.config.headers.Authorization = `Bearer ${newToken}`;
53
+ return client.request(error.config);
54
+ }
55
+ }
56
+ catch {
57
+ sdkConfig.onUnauthorized?.();
58
+ }
59
+ }
60
+ else {
61
+ sdkConfig.onUnauthorized?.();
62
+ }
63
+ }
64
+ return Promise.reject(error);
65
+ });
66
+ return client;
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBWUEsb0NBR0M7QUFFRCxvQ0FLQztBQUVELDhCQUtDO0FBN0JELGtEQUFxRjtBQVNyRixJQUFJLE1BQU0sR0FBcUIsSUFBSSxDQUFDO0FBQ3BDLElBQUksU0FBUyxHQUF5QixJQUFJLENBQUM7QUFtRWxDLDhCQUFTO0FBakVsQixTQUFnQixZQUFZLENBQUMsU0FBb0I7SUFDL0MsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNuQixvQkFBQSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxTQUFnQixZQUFZO0lBQzFCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLFNBQVM7SUFDdkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsU0FBb0I7SUFDM0MsTUFBTSxNQUFNLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDMUIsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQztLQUNGLENBQUMsQ0FBQztJQUVILHVDQUF1QztJQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQzdCLEtBQUssRUFBRSxhQUF5QyxFQUFFLEVBQUU7UUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLFVBQVUsS0FBSyxFQUFFLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDakMsQ0FBQztJQUVGLG9DQUFvQztJQUNwQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQzlCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQ3RCLEtBQUssRUFBRSxLQUFpQixFQUFFLEVBQUU7UUFDMUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsVUFBVSxRQUFRLEVBQUUsQ0FBQzt3QkFDMUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEMsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSwgQXhpb3NFcnJvciwgSW50ZXJuYWxBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU0RLQ29uZmlnIHtcbiAgYmFzZVVSTDogc3RyaW5nO1xuICBnZXRBY2Nlc3NUb2tlbjogKCkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gIHJlZnJlc2hBY2Nlc3NUb2tlbj86ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgb25VbmF1dGhvcml6ZWQ/OiAoKSA9PiB2b2lkO1xufVxuXG5sZXQgY29uZmlnOiBTREtDb25maWcgfCBudWxsID0gbnVsbDtcbmxldCBhcGlDbGllbnQ6IEF4aW9zSW5zdGFuY2UgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZVNESyhzZGtDb25maWc6IFNES0NvbmZpZyk6IHZvaWQge1xuICBjb25maWcgPSBzZGtDb25maWc7XG4gIGFwaUNsaWVudCA9IGNyZWF0ZUFwaUNsaWVudChzZGtDb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBpQ2xpZW50KCk6IEF4aW9zSW5zdGFuY2Uge1xuICBpZiAoIWFwaUNsaWVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU0RLIG5vdCBjb25maWd1cmVkLiBDYWxsIGNvbmZpZ3VyZVNESygpIGZpcnN0LicpO1xuICB9XG4gIHJldHVybiBhcGlDbGllbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWcoKTogU0RLQ29uZmlnIHtcbiAgaWYgKCFjb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NESyBub3QgY29uZmlndXJlZC4gQ2FsbCBjb25maWd1cmVTREsoKSBmaXJzdC4nKTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBcGlDbGllbnQoc2RrQ29uZmlnOiBTREtDb25maWcpOiBBeGlvc0luc3RhbmNlIHtcbiAgY29uc3QgY2xpZW50ID0gYXhpb3MuY3JlYXRlKHtcbiAgICBiYXNlVVJMOiBzZGtDb25maWcuYmFzZVVSTCxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFJlcXVlc3QgaW50ZXJjZXB0b3IgLSBhZGQgYXV0aCB0b2tlblxuICBjbGllbnQuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKFxuICAgIGFzeW5jIChyZXF1ZXN0Q29uZmlnOiBJbnRlcm5hbEF4aW9zUmVxdWVzdENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBzZGtDb25maWcuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICh0b2tlbikge1xuICAgICAgICByZXF1ZXN0Q29uZmlnLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcXVlc3RDb25maWc7XG4gICAgfSxcbiAgICAoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKVxuICApO1xuXG4gIC8vIFJlc3BvbnNlIGludGVyY2VwdG9yIC0gaGFuZGxlIDQwMVxuICBjbGllbnQuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShcbiAgICAocmVzcG9uc2UpID0+IHJlc3BvbnNlLFxuICAgIGFzeW5jIChlcnJvcjogQXhpb3NFcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICBpZiAoc2RrQ29uZmlnLnJlZnJlc2hBY2Nlc3NUb2tlbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb2tlbiA9IGF3YWl0IHNka0NvbmZpZy5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcbiAgICAgICAgICAgIGlmIChuZXdUb2tlbiAmJiBlcnJvci5jb25maWcpIHtcbiAgICAgICAgICAgICAgZXJyb3IuY29uZmlnLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHtuZXdUb2tlbn1gO1xuICAgICAgICAgICAgICByZXR1cm4gY2xpZW50LnJlcXVlc3QoZXJyb3IuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHNka0NvbmZpZy5vblVuYXV0aG9yaXplZD8uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNka0NvbmZpZy5vblVuYXV0aG9yaXplZD8uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxuICApO1xuXG4gIHJldHVybiBjbGllbnQ7XG59XG5cbmV4cG9ydCB7IGFwaUNsaWVudCB9O1xuIl19
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Clubs Mutation Hooks
3
+ *
4
+ * TanStack Query hooks for club mutation operations.
5
+ */
6
+ import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
7
+ import type { Club } from '../types';
8
+ /**
9
+ * Create a new club
10
+ *
11
+ * @endpoint POST /api/v1/clubs
12
+ */
13
+ export declare function useCreateClub(options?: Omit<UseMutationOptions<Club, Error, {
14
+ spotId: string;
15
+ name: string;
16
+ description?: string;
17
+ }>, 'mutationFn'>): UseMutationResult<Club, Error, {
18
+ spotId: string;
19
+ name: string;
20
+ description?: string;
21
+ }>;
22
+ /**
23
+ * Update a club
24
+ *
25
+ * @endpoint PUT /api/v1/clubs/{id}
26
+ */
27
+ export declare function useUpdateClub(options?: Omit<UseMutationOptions<Club, Error, {
28
+ clubId: string;
29
+ name?: string;
30
+ description?: string;
31
+ }>, 'mutationFn'>): UseMutationResult<Club, Error, {
32
+ clubId: string;
33
+ name?: string;
34
+ description?: string;
35
+ }>;
36
+ /**
37
+ * Join a club
38
+ *
39
+ * @endpoint POST /api/v1/clubs/{id}/join
40
+ */
41
+ export declare function useJoinClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
42
+ /**
43
+ * Leave a club
44
+ *
45
+ * @endpoint POST /api/v1/clubs/{id}/leave
46
+ */
47
+ export declare function useLeaveClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * Clubs Mutation Hooks
4
+ *
5
+ * TanStack Query hooks for club mutation operations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.useCreateClub = useCreateClub;
9
+ exports.useUpdateClub = useUpdateClub;
10
+ exports.useJoinClub = useJoinClub;
11
+ exports.useLeaveClub = useLeaveClub;
12
+ const react_query_1 = require("@tanstack/react-query");
13
+ const client_1 = require("../client");
14
+ const clubs_1 = require("../queries/clubs");
15
+ const users_1 = require("../queries/users");
16
+ // ============================================================================
17
+ // MUTATION HOOKS
18
+ // ============================================================================
19
+ /**
20
+ * Create a new club
21
+ *
22
+ * @endpoint POST /api/v1/clubs
23
+ */
24
+ function useCreateClub(options) {
25
+ const queryClient = (0, react_query_1.useQueryClient)();
26
+ return (0, react_query_1.useMutation)({
27
+ mutationFn: async (data) => {
28
+ const client = (0, client_1.getApiClient)();
29
+ const response = await client.post('/api/v1/clubs', data);
30
+ return response.data.data;
31
+ },
32
+ onSuccess: (_, variables) => {
33
+ queryClient.invalidateQueries({ queryKey: clubs_1.clubKeys.bySpot(variables.spotId) });
34
+ },
35
+ ...options,
36
+ });
37
+ }
38
+ /**
39
+ * Update a club
40
+ *
41
+ * @endpoint PUT /api/v1/clubs/{id}
42
+ */
43
+ function useUpdateClub(options) {
44
+ const queryClient = (0, react_query_1.useQueryClient)();
45
+ return (0, react_query_1.useMutation)({
46
+ mutationFn: async ({ clubId, ...data }) => {
47
+ const client = (0, client_1.getApiClient)();
48
+ const response = await client.put(`/api/v1/clubs/${clubId}`, data);
49
+ return response.data.data;
50
+ },
51
+ onSuccess: (data, variables) => {
52
+ queryClient.setQueryData(clubs_1.clubKeys.detail(variables.clubId), data);
53
+ },
54
+ ...options,
55
+ });
56
+ }
57
+ /**
58
+ * Join a club
59
+ *
60
+ * @endpoint POST /api/v1/clubs/{id}/join
61
+ */
62
+ function useJoinClub(options) {
63
+ const queryClient = (0, react_query_1.useQueryClient)();
64
+ return (0, react_query_1.useMutation)({
65
+ mutationFn: async (clubId) => {
66
+ const client = (0, client_1.getApiClient)();
67
+ await client.post(`/api/v1/clubs/${clubId}/join`);
68
+ },
69
+ onSuccess: (_, clubId) => {
70
+ queryClient.invalidateQueries({ queryKey: clubs_1.clubKeys.detail(clubId) });
71
+ queryClient.invalidateQueries({ queryKey: users_1.userKeys.clubs() });
72
+ },
73
+ ...options,
74
+ });
75
+ }
76
+ /**
77
+ * Leave a club
78
+ *
79
+ * @endpoint POST /api/v1/clubs/{id}/leave
80
+ */
81
+ function useLeaveClub(options) {
82
+ const queryClient = (0, react_query_1.useQueryClient)();
83
+ return (0, react_query_1.useMutation)({
84
+ mutationFn: async (clubId) => {
85
+ const client = (0, client_1.getApiClient)();
86
+ await client.post(`/api/v1/clubs/${clubId}/leave`);
87
+ },
88
+ onSuccess: (_, clubId) => {
89
+ queryClient.invalidateQueries({ queryKey: clubs_1.clubKeys.detail(clubId) });
90
+ queryClient.invalidateQueries({ queryKey: users_1.userKeys.clubs() });
91
+ },
92
+ ...options,
93
+ });
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jbHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUFpQkgsc0NBZ0JDO0FBT0Qsc0NBZ0JDO0FBT0Qsa0NBZ0JDO0FBT0Qsb0NBZ0JDO0FBcEdELHVEQUEyRztBQUMzRyxzQ0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDRDQUE0QztBQUc1QywrRUFBK0U7QUFDL0UsaUJBQWlCO0FBQ2pCLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQUFxSDtJQUVySCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBaUIsRUFBRTtZQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQW9CLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDMUIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQUFzSDtJQUV0SCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQWlCLEVBQUU7WUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFvQixpQkFBaUIsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQzdCLFdBQVcsQ0FBQyxZQUFZLENBQUMsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FDekIsT0FBcUU7SUFFckUsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFjLEVBQWlCLEVBQUU7WUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixNQUFNLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixPQUFxRTtJQUVyRSxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQWMsRUFBaUIsRUFBRTtZQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLE1BQU0sUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN2QixXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQkFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2x1YnMgTXV0YXRpb24gSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgY2x1YiBtdXRhdGlvbiBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zLCBVc2VNdXRhdGlvblJlc3VsdCB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgY2x1YktleXMgfSBmcm9tICcuLi9xdWVyaWVzL2NsdWJzJztcbmltcG9ydCB7IHVzZXJLZXlzIH0gZnJvbSAnLi4vcXVlcmllcy91c2Vycyc7XG5pbXBvcnQgdHlwZSB7IENsdWIsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBjbHViXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9jbHVic1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ2x1YihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPENsdWIsIEVycm9yLCB7IHNwb3RJZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDxDbHViLCBFcnJvciwgeyBzcG90SWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhKTogUHJvbWlzZTxDbHViPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8Q2x1Yj4+KCcvYXBpL3YxL2NsdWJzJywgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjbHViS2V5cy5ieVNwb3QodmFyaWFibGVzLnNwb3RJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBjbHViXG4gKlxuICogQGVuZHBvaW50IFBVVCAvYXBpL3YxL2NsdWJzL3tpZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNsdWIoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczxDbHViLCBFcnJvciwgeyBjbHViSWQ6IHN0cmluZzsgbmFtZT86IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfT4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PENsdWIsIEVycm9yLCB7IGNsdWJJZDogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7IGNsdWJJZCwgLi4uZGF0YSB9KTogUHJvbWlzZTxDbHViPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dDxBcGlSZXNwb25zZTxDbHViPj4oYC9hcGkvdjEvY2x1YnMvJHtjbHViSWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoZGF0YSwgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5zZXRRdWVyeURhdGEoY2x1YktleXMuZGV0YWlsKHZhcmlhYmxlcy5jbHViSWQpLCBkYXRhKTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEpvaW4gYSBjbHViXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9jbHVicy97aWR9L2pvaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUpvaW5DbHViKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCBzdHJpbmc+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGNsdWJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NsdWJzLyR7Y2x1YklkfS9qb2luYCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCBjbHViSWQpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNsdWJLZXlzLmRldGFpbChjbHViSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogdXNlcktleXMuY2x1YnMoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIExlYXZlIGEgY2x1YlxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9hcGkvdjEvY2x1YnMve2lkfS9sZWF2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTGVhdmVDbHViKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCBzdHJpbmc+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGNsdWJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NsdWJzLyR7Y2x1YklkfS9sZWF2ZWApO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgY2x1YklkKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjbHViS2V5cy5kZXRhaWwoY2x1YklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHVzZXJLZXlzLmNsdWJzKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Conversations Mutation Hooks
3
+ *
4
+ * TanStack Query hooks for conversation/messaging mutation operations.
5
+ */
6
+ import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
7
+ import type { Conversation, Message, CreateConversationRequest, SendMessageRequest } from '../types';
8
+ /**
9
+ * Create a new conversation
10
+ *
11
+ * @endpoint POST /api/v1/conversations
12
+ */
13
+ export declare function useCreateConversation(options?: Omit<UseMutationOptions<Conversation, Error, CreateConversationRequest>, 'mutationFn'>): UseMutationResult<Conversation, Error, CreateConversationRequest>;
14
+ /**
15
+ * Create or get direct conversation with a user
16
+ *
17
+ * @endpoint POST /api/v1/conversations/direct
18
+ */
19
+ export declare function useCreateDirectConversation(options?: Omit<UseMutationOptions<Conversation, Error, {
20
+ userId: string;
21
+ }>, 'mutationFn'>): UseMutationResult<Conversation, Error, {
22
+ userId: string;
23
+ }>;
24
+ /**
25
+ * Send a message in a conversation
26
+ *
27
+ * @endpoint POST /api/v1/conversations/{id}/messages
28
+ */
29
+ export declare function useSendMessage(options?: Omit<UseMutationOptions<Message, Error, {
30
+ conversationId: string;
31
+ } & SendMessageRequest>, 'mutationFn'>): UseMutationResult<Message, Error, {
32
+ conversationId: string;
33
+ } & SendMessageRequest>;
34
+ /**
35
+ * Mark conversation as read
36
+ *
37
+ * @endpoint PUT /api/v1/conversations/{id}/read
38
+ */
39
+ export declare function useMarkConversationAsRead(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
40
+ /**
41
+ * Send typing indicator
42
+ *
43
+ * @endpoint POST /api/v1/conversations/{id}/typing
44
+ */
45
+ export declare function useSendTypingIndicator(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * Conversations Mutation Hooks
4
+ *
5
+ * TanStack Query hooks for conversation/messaging mutation operations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.useCreateConversation = useCreateConversation;
9
+ exports.useCreateDirectConversation = useCreateDirectConversation;
10
+ exports.useSendMessage = useSendMessage;
11
+ exports.useMarkConversationAsRead = useMarkConversationAsRead;
12
+ exports.useSendTypingIndicator = useSendTypingIndicator;
13
+ const react_query_1 = require("@tanstack/react-query");
14
+ const client_1 = require("../client");
15
+ const conversations_1 = require("../queries/conversations");
16
+ // ============================================================================
17
+ // MUTATION HOOKS
18
+ // ============================================================================
19
+ /**
20
+ * Create a new conversation
21
+ *
22
+ * @endpoint POST /api/v1/conversations
23
+ */
24
+ function useCreateConversation(options) {
25
+ const queryClient = (0, react_query_1.useQueryClient)();
26
+ return (0, react_query_1.useMutation)({
27
+ mutationFn: async (data) => {
28
+ const client = (0, client_1.getApiClient)();
29
+ const response = await client.post('/api/v1/conversations', data);
30
+ return response.data.data;
31
+ },
32
+ onSuccess: () => {
33
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
34
+ },
35
+ ...options,
36
+ });
37
+ }
38
+ /**
39
+ * Create or get direct conversation with a user
40
+ *
41
+ * @endpoint POST /api/v1/conversations/direct
42
+ */
43
+ function useCreateDirectConversation(options) {
44
+ const queryClient = (0, react_query_1.useQueryClient)();
45
+ return (0, react_query_1.useMutation)({
46
+ mutationFn: async (data) => {
47
+ const client = (0, client_1.getApiClient)();
48
+ const response = await client.post('/api/v1/conversations/direct', data);
49
+ return response.data.data;
50
+ },
51
+ onSuccess: () => {
52
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
53
+ },
54
+ ...options,
55
+ });
56
+ }
57
+ /**
58
+ * Send a message in a conversation
59
+ *
60
+ * @endpoint POST /api/v1/conversations/{id}/messages
61
+ */
62
+ function useSendMessage(options) {
63
+ const queryClient = (0, react_query_1.useQueryClient)();
64
+ return (0, react_query_1.useMutation)({
65
+ mutationFn: async ({ conversationId, ...data }) => {
66
+ const client = (0, client_1.getApiClient)();
67
+ const response = await client.post(`/api/v1/conversations/${conversationId}/messages`, data);
68
+ return response.data.data;
69
+ },
70
+ onSuccess: (_, variables) => {
71
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.messages(variables.conversationId) });
72
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
73
+ },
74
+ ...options,
75
+ });
76
+ }
77
+ /**
78
+ * Mark conversation as read
79
+ *
80
+ * @endpoint PUT /api/v1/conversations/{id}/read
81
+ */
82
+ function useMarkConversationAsRead(options) {
83
+ const queryClient = (0, react_query_1.useQueryClient)();
84
+ return (0, react_query_1.useMutation)({
85
+ mutationFn: async (conversationId) => {
86
+ const client = (0, client_1.getApiClient)();
87
+ await client.put(`/api/v1/conversations/${conversationId}/read`);
88
+ },
89
+ onSuccess: (_, conversationId) => {
90
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.detail(conversationId) });
91
+ queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
92
+ },
93
+ ...options,
94
+ });
95
+ }
96
+ /**
97
+ * Send typing indicator
98
+ *
99
+ * @endpoint POST /api/v1/conversations/{id}/typing
100
+ */
101
+ function useSendTypingIndicator(options) {
102
+ return (0, react_query_1.useMutation)({
103
+ mutationFn: async (conversationId) => {
104
+ const client = (0, client_1.getApiClient)();
105
+ await client.post(`/api/v1/conversations/${conversationId}/typing`);
106
+ },
107
+ ...options,
108
+ });
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvbXV0YXRpb25zL2NvbnZlcnNhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7O0FBZ0JILHNEQWdCQztBQU9ELGtFQWdCQztBQU9ELHdDQWlCQztBQU9ELDhEQWdCQztBQU9ELHdEQVVDO0FBckhELHVEQUEyRztBQUMzRyxzQ0FBeUM7QUFDekMsNERBQTREO0FBRzVELCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsT0FBZ0c7SUFFaEcsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUErQixFQUF5QixFQUFFO1lBQzNFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBNEIsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQXlGO0lBRXpGLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFL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IENvbnZlcnNhdGlvbnMgTXV0YXRpb24gSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgY29udmVyc2F0aW9uL21lc3NhZ2luZyBtdXRhdGlvbiBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zLCBVc2VNdXRhdGlvblJlc3VsdCB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgY29udmVyc2F0aW9uS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IENvbnZlcnNhdGlvbiwgTWVzc2FnZSwgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCwgU2VuZE1lc3NhZ2VSZXF1ZXN0LCBBcGlSZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgY29udmVyc2F0aW9uXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9jb252ZXJzYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVDb252ZXJzYXRpb24oXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczxDb252ZXJzYXRpb24sIEVycm9yLCBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKTogVXNlTXV0YXRpb25SZXN1bHQ8Q29udmVyc2F0aW9uLCBFcnJvciwgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdD4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCk6IFByb21pc2U8Q29udmVyc2F0aW9uPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8Q29udmVyc2F0aW9uPj4oJy9hcGkvdjEvY29udmVyc2F0aW9ucycsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY29udmVyc2F0aW9uS2V5cy5saXN0cygpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIG9yIGdldCBkaXJlY3QgY29udmVyc2F0aW9uIHdpdGggYSB1c2VyXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9jb252ZXJzYXRpb25zL2RpcmVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlRGlyZWN0Q29udmVyc2F0aW9uKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8Q29udmVyc2F0aW9uLCBFcnJvciwgeyB1c2VySWQ6IHN0cmluZyB9PiwgJ211dGF0aW9uRm4nPlxuKTogVXNlTXV0YXRpb25SZXN1bHQ8Q29udmVyc2F0aW9uLCBFcnJvciwgeyB1c2VySWQ6IHN0cmluZyB9PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiB7IHVzZXJJZDogc3RyaW5nIH0pOiBQcm9taXNlPENvbnZlcnNhdGlvbj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPENvbnZlcnNhdGlvbj4+KCcvYXBpL3YxL2NvbnZlcnNhdGlvbnMvZGlyZWN0JywgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjb252ZXJzYXRpb25LZXlzLmxpc3RzKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBTZW5kIGEgbWVzc2FnZSBpbiBhIGNvbnZlcnNhdGlvblxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9hcGkvdjEvY29udmVyc2F0aW9ucy97aWR9L21lc3NhZ2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZW5kTWVzc2FnZShcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPE1lc3NhZ2UsIEVycm9yLCB7IGNvbnZlcnNhdGlvbklkOiBzdHJpbmcgfSAmIFNlbmRNZXNzYWdlUmVxdWVzdD4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PE1lc3NhZ2UsIEVycm9yLCB7IGNvbnZlcnNhdGlvbklkOiBzdHJpbmcgfSAmIFNlbmRNZXNzYWdlUmVxdWVzdD4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoeyBjb252ZXJzYXRpb25JZCwgLi4uZGF0YSB9KTogUHJvbWlzZTxNZXNzYWdlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8TWVzc2FnZT4+KGAvYXBpL3YxL2NvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH0vbWVzc2FnZXNgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubWVzc2FnZXModmFyaWFibGVzLmNvbnZlcnNhdGlvbklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubGlzdHMoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIE1hcmsgY29udmVyc2F0aW9uIGFzIHJlYWRcbiAqXG4gKiBAZW5kcG9pbnQgUFVUIC9hcGkvdjEvY29udmVyc2F0aW9ucy97aWR9L3JlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1hcmtDb252ZXJzYXRpb25Bc1JlYWQoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPlxuKTogVXNlTXV0YXRpb25SZXN1bHQ8dm9pZCwgRXJyb3IsIHN0cmluZz4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQucHV0KGAvYXBpL3YxL2NvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH0vcmVhZGApO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgY29udmVyc2F0aW9uSWQpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMuZGV0YWlsKGNvbnZlcnNhdGlvbklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubGlzdHMoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFNlbmQgdHlwaW5nIGluZGljYXRvclxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9hcGkvdjEvY29udmVyc2F0aW9ucy97aWR9L3R5cGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VuZFR5cGluZ0luZGljYXRvcihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDx2b2lkLCBFcnJvciwgc3RyaW5nPiB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfS90eXBpbmdgKTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Spots SDK Mutation Hooks Index
3
+ *
4
+ * Re-exports all mutation hooks.
5
+ */
6
+ export * from './users';
7
+ export * from './posts';
8
+ export * from './spots';
9
+ export * from './conversations';
10
+ export * from './clubs';
11
+ export * from './notifications';
12
+ export * from './products';
13
+ export * from './orders';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * Spots SDK Mutation Hooks Index
4
+ *
5
+ * Re-exports all mutation hooks.
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
+ // Users
23
+ __exportStar(require("./users"), exports);
24
+ // Posts
25
+ __exportStar(require("./posts"), exports);
26
+ // Spots
27
+ __exportStar(require("./spots"), exports);
28
+ // Conversations
29
+ __exportStar(require("./conversations"), exports);
30
+ // Clubs
31
+ __exportStar(require("./clubs"), exports);
32
+ // Notifications
33
+ __exportStar(require("./notifications"), exports);
34
+ // Products (marketplace)
35
+ __exportStar(require("./products"), exports);
36
+ // Orders (marketplace)
37
+ __exportStar(require("./orders"), exports);
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILFFBQVE7QUFDUiwwQ0FBd0I7QUFFeEIsUUFBUTtBQUNSLDBDQUF3QjtBQUV4QixRQUFRO0FBQ1IsMENBQXdCO0FBRXhCLGdCQUFnQjtBQUNoQixrREFBZ0M7QUFFaEMsUUFBUTtBQUNSLDBDQUF3QjtBQUV4QixnQkFBZ0I7QUFDaEIsa0RBQWdDO0FBRWhDLHlCQUF5QjtBQUN6Qiw2Q0FBMkI7QUFFM0IsdUJBQXVCO0FBQ3ZCLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3BvdHMgU0RLIE11dGF0aW9uIEhvb2tzIEluZGV4XG4gKlxuICogUmUtZXhwb3J0cyBhbGwgbXV0YXRpb24gaG9va3MuXG4gKi9cblxuLy8gVXNlcnNcbmV4cG9ydCAqIGZyb20gJy4vdXNlcnMnO1xuXG4vLyBQb3N0c1xuZXhwb3J0ICogZnJvbSAnLi9wb3N0cyc7XG5cbi8vIFNwb3RzXG5leHBvcnQgKiBmcm9tICcuL3Nwb3RzJztcblxuLy8gQ29udmVyc2F0aW9uc1xuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJzYXRpb25zJztcblxuLy8gQ2x1YnNcbmV4cG9ydCAqIGZyb20gJy4vY2x1YnMnO1xuXG4vLyBOb3RpZmljYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuXG4vLyBQcm9kdWN0cyAobWFya2V0cGxhY2UpXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3RzJztcblxuLy8gT3JkZXJzIChtYXJrZXRwbGFjZSlcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzJztcbiJdfQ==
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Notifications Mutation Hooks
3
+ *
4
+ * TanStack Query hooks for notification mutation operations.
5
+ */
6
+ import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
7
+ /**
8
+ * Mark notifications as read
9
+ *
10
+ * @endpoint PUT /api/v1/notifications/read
11
+ */
12
+ export declare function useMarkNotificationsRead(options?: Omit<UseMutationOptions<void, Error, {
13
+ notificationIds?: string[];
14
+ }>, 'mutationFn'>): UseMutationResult<void, Error, {
15
+ notificationIds?: string[];
16
+ }>;
17
+ /**
18
+ * Register device token for push notifications
19
+ *
20
+ * @endpoint POST /api/v1/device-tokens
21
+ */
22
+ export declare function useRegisterDeviceToken(options?: Omit<UseMutationOptions<void, Error, {
23
+ token: string;
24
+ platform: 'ios' | 'android' | 'web';
25
+ }>, 'mutationFn'>): UseMutationResult<void, Error, {
26
+ token: string;
27
+ platform: 'ios' | 'android' | 'web';
28
+ }>;
29
+ /**
30
+ * Remove device token
31
+ *
32
+ * @endpoint DELETE /api/v1/device-tokens
33
+ */
34
+ export declare function useRemoveDeviceToken(options?: Omit<UseMutationOptions<void, Error, {
35
+ token: string;
36
+ }>, 'mutationFn'>): UseMutationResult<void, Error, {
37
+ token: string;
38
+ }>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * Notifications Mutation Hooks
4
+ *
5
+ * TanStack Query hooks for notification mutation operations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.useMarkNotificationsRead = useMarkNotificationsRead;
9
+ exports.useRegisterDeviceToken = useRegisterDeviceToken;
10
+ exports.useRemoveDeviceToken = useRemoveDeviceToken;
11
+ const react_query_1 = require("@tanstack/react-query");
12
+ const client_1 = require("../client");
13
+ const notifications_1 = require("../queries/notifications");
14
+ // ============================================================================
15
+ // MUTATION HOOKS
16
+ // ============================================================================
17
+ /**
18
+ * Mark notifications as read
19
+ *
20
+ * @endpoint PUT /api/v1/notifications/read
21
+ */
22
+ function useMarkNotificationsRead(options) {
23
+ const queryClient = (0, react_query_1.useQueryClient)();
24
+ return (0, react_query_1.useMutation)({
25
+ mutationFn: async (data) => {
26
+ const client = (0, client_1.getApiClient)();
27
+ await client.put('/api/v1/notifications/read', data);
28
+ },
29
+ onSuccess: () => {
30
+ queryClient.invalidateQueries({ queryKey: notifications_1.notificationKeys.lists() });
31
+ queryClient.invalidateQueries({ queryKey: notifications_1.notificationKeys.unreadCount() });
32
+ },
33
+ ...options,
34
+ });
35
+ }
36
+ /**
37
+ * Register device token for push notifications
38
+ *
39
+ * @endpoint POST /api/v1/device-tokens
40
+ */
41
+ function useRegisterDeviceToken(options) {
42
+ return (0, react_query_1.useMutation)({
43
+ mutationFn: async (data) => {
44
+ const client = (0, client_1.getApiClient)();
45
+ await client.post('/api/v1/device-tokens', data);
46
+ },
47
+ ...options,
48
+ });
49
+ }
50
+ /**
51
+ * Remove device token
52
+ *
53
+ * @endpoint DELETE /api/v1/device-tokens
54
+ */
55
+ function useRemoveDeviceToken(options) {
56
+ return (0, react_query_1.useMutation)({
57
+ mutationFn: async (data) => {
58
+ const client = (0, client_1.getApiClient)();
59
+ await client.delete('/api/v1/device-tokens', { data });
60
+ },
61
+ ...options,
62
+ });
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvbXV0YXRpb25zL25vdGlmaWNhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7O0FBZUgsNERBZ0JDO0FBT0Qsd0RBVUM7QUFPRCxvREFVQztBQS9ERCx1REFBMkc7QUFDM0csc0NBQXlDO0FBQ3pDLDREQUE0RDtBQUU1RCwrRUFBK0U7QUFDL0UsaUJBQWlCO0FBQ2pCLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLE9BQTZGO0lBRTdGLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBb0MsRUFBaUIsRUFBRTtZQUN4RSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0NBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLE9BQXFIO0lBRXJILE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFpQixFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsT0FBZ0Y7SUFFaEYsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWlCLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm90aWZpY2F0aW9ucyBNdXRhdGlvbiBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciBub3RpZmljYXRpb24gbXV0YXRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQgeyB1c2VNdXRhdGlvbiwgdXNlUXVlcnlDbGllbnQsIFVzZU11dGF0aW9uT3B0aW9ucywgVXNlTXV0YXRpb25SZXN1bHQgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IG5vdGlmaWNhdGlvbktleXMgfSBmcm9tICcuLi9xdWVyaWVzL25vdGlmaWNhdGlvbnMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE1hcmsgbm90aWZpY2F0aW9ucyBhcyByZWFkXG4gKlxuICogQGVuZHBvaW50IFBVVCAvYXBpL3YxL25vdGlmaWNhdGlvbnMvcmVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTWFya05vdGlmaWNhdGlvbnNSZWFkKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHsgbm90aWZpY2F0aW9uSWRzPzogc3RyaW5nW10gfT4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCB7IG5vdGlmaWNhdGlvbklkcz86IHN0cmluZ1tdIH0+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IHsgbm90aWZpY2F0aW9uSWRzPzogc3RyaW5nW10gfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQucHV0KCcvYXBpL3YxL25vdGlmaWNhdGlvbnMvcmVhZCcsIGRhdGEpO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBub3RpZmljYXRpb25LZXlzLmxpc3RzKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBub3RpZmljYXRpb25LZXlzLnVucmVhZENvdW50KCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBkZXZpY2UgdG9rZW4gZm9yIHB1c2ggbm90aWZpY2F0aW9uc1xuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9hcGkvdjEvZGV2aWNlLXRva2Vuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVnaXN0ZXJEZXZpY2VUb2tlbihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCB7IHRva2VuOiBzdHJpbmc7IHBsYXRmb3JtOiAnaW9zJyB8ICdhbmRyb2lkJyB8ICd3ZWInIH0+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDx2b2lkLCBFcnJvciwgeyB0b2tlbjogc3RyaW5nOyBwbGF0Zm9ybTogJ2lvcycgfCAnYW5kcm9pZCcgfCAnd2ViJyB9PiB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGEpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LnBvc3QoJy9hcGkvdjEvZGV2aWNlLXRva2VucycsIGRhdGEpO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogUmVtb3ZlIGRldmljZSB0b2tlblxuICpcbiAqIEBlbmRwb2ludCBERUxFVEUgL2FwaS92MS9kZXZpY2UtdG9rZW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZW1vdmVEZXZpY2VUb2tlbihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCB7IHRva2VuOiBzdHJpbmcgfT4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCB7IHRva2VuOiBzdHJpbmcgfT4ge1xuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoJy9hcGkvdjEvZGV2aWNlLXRva2VucycsIHsgZGF0YSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Orders Mutation Hooks
3
+ *
4
+ * TanStack Query hooks for order mutation operations.
5
+ */
6
+ import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
7
+ import { OrderWithDetails } from '../queries/orders';
8
+ import type { Order, OrderStatus } from '../types';
9
+ export interface CartItem {
10
+ productId: string;
11
+ quantity: number;
12
+ }
13
+ export interface CreateOrderRequest {
14
+ spotId: string;
15
+ items: CartItem[];
16
+ notes?: string;
17
+ deliveryAddress?: string;
18
+ }
19
+ export interface CreateOrderResponse extends Order {
20
+ items: Array<{
21
+ id: string;
22
+ productId: string;
23
+ productName: string;
24
+ quantity: number;
25
+ unitPrice: number;
26
+ totalPrice: number;
27
+ }>;
28
+ }
29
+ export interface PaymentIntentResponse {
30
+ clientSecret: string;
31
+ paymentIntentId: string;
32
+ }
33
+ export interface CoinbaseChargeResponse {
34
+ chargeId: string;
35
+ chargeCode: string;
36
+ hostedUrl: string;
37
+ }
38
+ /**
39
+ * Create a new order
40
+ *
41
+ * @endpoint POST /api/v1/orders
42
+ */
43
+ export declare function useCreateOrder(options?: Omit<UseMutationOptions<CreateOrderResponse, Error, CreateOrderRequest>, 'mutationFn'>): UseMutationResult<CreateOrderResponse, Error, CreateOrderRequest>;
44
+ /**
45
+ * Create Stripe PaymentIntent for an order
46
+ *
47
+ * @endpoint POST /api/v1/payments/stripe/intent/{orderId}
48
+ */
49
+ export declare function useCreateStripeIntent(options?: Omit<UseMutationOptions<PaymentIntentResponse, Error, string>, 'mutationFn'>): UseMutationResult<PaymentIntentResponse, Error, string>;
50
+ /**
51
+ * Create Coinbase Commerce charge for an order
52
+ *
53
+ * @endpoint POST /api/v1/payments/coinbase/charge/{orderId}
54
+ */
55
+ export declare function useCreateCoinbaseCharge(options?: Omit<UseMutationOptions<CoinbaseChargeResponse, Error, string>, 'mutationFn'>): UseMutationResult<CoinbaseChargeResponse, Error, string>;
56
+ /**
57
+ * Update order status (seller action)
58
+ *
59
+ * @endpoint PUT /api/v1/orders/{orderId}/status
60
+ */
61
+ export declare function useUpdateOrderStatus(options?: Omit<UseMutationOptions<OrderWithDetails, Error, {
62
+ orderId: string;
63
+ status: OrderStatus;
64
+ }>, 'mutationFn'>): UseMutationResult<OrderWithDetails, Error, {
65
+ orderId: string;
66
+ status: OrderStatus;
67
+ }>;
68
+ /**
69
+ * Cancel an order (buyer action, only for pending orders)
70
+ *
71
+ * @endpoint POST /api/v1/orders/{orderId}/cancel
72
+ */
73
+ export declare function useCancelOrder(options?: Omit<UseMutationOptions<OrderWithDetails, Error, string>, 'mutationFn'>): UseMutationResult<OrderWithDetails, Error, string>;