@growsober/sdk 1.0.5 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/e2e.test.d.ts +30 -0
- package/dist/__tests__/e2e.test.js +959 -63
- package/dist/api/mutations/badges.d.ts +116 -0
- package/dist/api/mutations/badges.js +177 -0
- package/dist/api/mutations/brands.d.ts +251 -0
- package/dist/api/mutations/brands.js +242 -0
- package/dist/api/mutations/creators.d.ts +131 -0
- package/dist/api/mutations/creators.js +129 -0
- package/dist/api/mutations/event-chat.d.ts +2 -2
- package/dist/api/mutations/event-chat.js +9 -9
- package/dist/api/mutations/index.d.ts +4 -0
- package/dist/api/mutations/index.js +5 -1
- package/dist/api/mutations/jack.d.ts +29 -0
- package/dist/api/mutations/jack.js +41 -1
- package/dist/api/mutations/products.d.ts +175 -0
- package/dist/api/mutations/products.js +226 -0
- package/dist/api/mutations/support.d.ts +20 -1
- package/dist/api/mutations/support.js +36 -1
- package/dist/api/queries/badges.d.ts +221 -0
- package/dist/api/queries/badges.js +290 -0
- package/dist/api/queries/bookings.d.ts +1 -1
- package/dist/api/queries/brands.d.ts +248 -0
- package/dist/api/queries/brands.js +226 -0
- package/dist/api/queries/businesses.d.ts +61 -1
- package/dist/api/queries/businesses.js +27 -1
- package/dist/api/queries/creators.d.ts +332 -0
- package/dist/api/queries/creators.js +249 -0
- package/dist/api/queries/event-chat.d.ts +1 -1
- package/dist/api/queries/event-chat.js +4 -4
- package/dist/api/queries/events.d.ts +45 -0
- package/dist/api/queries/index.d.ts +5 -0
- package/dist/api/queries/index.js +6 -1
- package/dist/api/queries/jack.d.ts +80 -0
- package/dist/api/queries/jack.js +98 -1
- package/dist/api/queries/library.d.ts +8 -0
- package/dist/api/queries/products.d.ts +185 -0
- package/dist/api/queries/products.js +203 -0
- package/dist/api/queries/support.d.ts +46 -1
- package/dist/api/queries/support.js +48 -1
- package/dist/api/queries/venues.d.ts +304 -0
- package/dist/api/queries/venues.js +211 -0
- package/dist/api/types.d.ts +245 -0
- package/dist/api/types.js +6 -1
- package/dist/api/utils/eventGrouping.d.ts +104 -0
- package/dist/api/utils/eventGrouping.js +155 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -1
- package/package.json +5 -2
- package/src/__tests__/e2e.test.ts +996 -64
- package/src/api/mutations/badges.ts +228 -0
- package/src/api/mutations/brands.ts +376 -0
- package/src/api/mutations/creators.ts +171 -0
- package/src/api/mutations/event-chat.ts +8 -8
- package/src/api/mutations/index.ts +4 -0
- package/src/api/mutations/jack.ts +50 -1
- package/src/api/mutations/products.ts +336 -0
- package/src/api/mutations/support.ts +44 -0
- package/src/api/queries/badges.ts +385 -0
- package/src/api/queries/brands.ts +281 -0
- package/src/api/queries/businesses.ts +30 -1
- package/src/api/queries/creators.ts +308 -0
- package/src/api/queries/event-chat.ts +3 -3
- package/src/api/queries/index.ts +5 -0
- package/src/api/queries/jack.ts +139 -1
- package/src/api/queries/products.ts +312 -0
- package/src/api/queries/support.ts +54 -0
- package/src/api/queries/venues.ts +271 -0
- package/src/api/types.ts +317 -1
- package/src/api/utils/eventGrouping.ts +181 -0
- package/src/index.ts +6 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCreateBrand = useCreateBrand;
|
|
4
|
+
exports.useUpdateBrand = useUpdateBrand;
|
|
5
|
+
exports.useAddBrandOwner = useAddBrandOwner;
|
|
6
|
+
exports.useUpdateBrandOwnerRole = useUpdateBrandOwnerRole;
|
|
7
|
+
exports.useRemoveBrandOwner = useRemoveBrandOwner;
|
|
8
|
+
exports.useAddBrandCreator = useAddBrandCreator;
|
|
9
|
+
exports.useUpdateBrandCreator = useUpdateBrandCreator;
|
|
10
|
+
exports.useRemoveBrandCreator = useRemoveBrandCreator;
|
|
11
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
12
|
+
const client_1 = require("../client");
|
|
13
|
+
const brands_1 = require("../queries/brands");
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// MUTATION HOOKS
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Create a new brand
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const { mutateAsync: createBrand } = useCreateBrand();
|
|
23
|
+
*
|
|
24
|
+
* await createBrand({
|
|
25
|
+
* slug: 'wellness-co',
|
|
26
|
+
* name: 'Wellness Co',
|
|
27
|
+
* description: 'A wellness brand',
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
function useCreateBrand(options) {
|
|
32
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
33
|
+
return (0, react_query_1.useMutation)({
|
|
34
|
+
mutationFn: async (data) => {
|
|
35
|
+
const client = (0, client_1.getApiClient)();
|
|
36
|
+
const response = await client.post('/api/v1/brands', data);
|
|
37
|
+
return response.data;
|
|
38
|
+
},
|
|
39
|
+
onSuccess: () => {
|
|
40
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.all });
|
|
41
|
+
},
|
|
42
|
+
...options,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Update a brand
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* const { mutateAsync: updateBrand } = useUpdateBrand();
|
|
51
|
+
*
|
|
52
|
+
* await updateBrand({
|
|
53
|
+
* id: 'brand-123',
|
|
54
|
+
* data: { description: 'Updated description' },
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
function useUpdateBrand(options) {
|
|
59
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
60
|
+
return (0, react_query_1.useMutation)({
|
|
61
|
+
mutationFn: async ({ id, data }) => {
|
|
62
|
+
const client = (0, client_1.getApiClient)();
|
|
63
|
+
const response = await client.patch(`/api/v1/brands/${id}`, data);
|
|
64
|
+
return response.data;
|
|
65
|
+
},
|
|
66
|
+
onSuccess: (_, variables) => {
|
|
67
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.detail(variables.id) });
|
|
68
|
+
},
|
|
69
|
+
...options,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Add a brand owner
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* const { mutateAsync: addOwner } = useAddBrandOwner();
|
|
78
|
+
*
|
|
79
|
+
* await addOwner({
|
|
80
|
+
* brandId: 'brand-123',
|
|
81
|
+
* userId: 'user-456',
|
|
82
|
+
* role: 'MANAGER',
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
function useAddBrandOwner(options) {
|
|
87
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
88
|
+
return (0, react_query_1.useMutation)({
|
|
89
|
+
mutationFn: async ({ brandId, userId, role, }) => {
|
|
90
|
+
const client = (0, client_1.getApiClient)();
|
|
91
|
+
const response = await client.post(`/api/v1/brands/${brandId}/owners`, { userId, role });
|
|
92
|
+
return response.data;
|
|
93
|
+
},
|
|
94
|
+
onSuccess: (_, variables) => {
|
|
95
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.owners(variables.brandId) });
|
|
96
|
+
},
|
|
97
|
+
...options,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Update a brand owner's role
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```tsx
|
|
105
|
+
* const { mutateAsync: updateOwnerRole } = useUpdateBrandOwnerRole();
|
|
106
|
+
*
|
|
107
|
+
* await updateOwnerRole({
|
|
108
|
+
* brandId: 'brand-123',
|
|
109
|
+
* userId: 'user-456',
|
|
110
|
+
* role: 'OWNER',
|
|
111
|
+
* });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
function useUpdateBrandOwnerRole(options) {
|
|
115
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
116
|
+
return (0, react_query_1.useMutation)({
|
|
117
|
+
mutationFn: async ({ brandId, userId, role, }) => {
|
|
118
|
+
const client = (0, client_1.getApiClient)();
|
|
119
|
+
const response = await client.patch(`/api/v1/brands/${brandId}/owners/${userId}`, { role });
|
|
120
|
+
return response.data;
|
|
121
|
+
},
|
|
122
|
+
onSuccess: (_, variables) => {
|
|
123
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.owners(variables.brandId) });
|
|
124
|
+
},
|
|
125
|
+
...options,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Remove a brand owner
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```tsx
|
|
133
|
+
* const { mutateAsync: removeOwner } = useRemoveBrandOwner();
|
|
134
|
+
*
|
|
135
|
+
* await removeOwner({
|
|
136
|
+
* brandId: 'brand-123',
|
|
137
|
+
* userId: 'user-456',
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
function useRemoveBrandOwner(options) {
|
|
142
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
143
|
+
return (0, react_query_1.useMutation)({
|
|
144
|
+
mutationFn: async ({ brandId, userId, }) => {
|
|
145
|
+
const client = (0, client_1.getApiClient)();
|
|
146
|
+
await client.delete(`/api/v1/brands/${brandId}/owners/${userId}`);
|
|
147
|
+
},
|
|
148
|
+
onSuccess: (_, variables) => {
|
|
149
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.owners(variables.brandId) });
|
|
150
|
+
},
|
|
151
|
+
...options,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Add a creator partnership to a brand
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```tsx
|
|
159
|
+
* const { mutateAsync: addCreator } = useAddBrandCreator();
|
|
160
|
+
*
|
|
161
|
+
* await addCreator({
|
|
162
|
+
* brandId: 'brand-123',
|
|
163
|
+
* creatorId: 'creator-456',
|
|
164
|
+
* commissionRate: 0.15,
|
|
165
|
+
* });
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
function useAddBrandCreator(options) {
|
|
169
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
170
|
+
return (0, react_query_1.useMutation)({
|
|
171
|
+
mutationFn: async ({ brandId, creatorId, startDate, endDate, commissionRate, isActive, }) => {
|
|
172
|
+
const client = (0, client_1.getApiClient)();
|
|
173
|
+
const response = await client.post(`/api/v1/brands/${brandId}/creators`, {
|
|
174
|
+
creatorId,
|
|
175
|
+
startDate,
|
|
176
|
+
endDate,
|
|
177
|
+
commissionRate,
|
|
178
|
+
isActive,
|
|
179
|
+
});
|
|
180
|
+
return response.data;
|
|
181
|
+
},
|
|
182
|
+
onSuccess: (_, variables) => {
|
|
183
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.creators(variables.brandId) });
|
|
184
|
+
},
|
|
185
|
+
...options,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Update a creator partnership
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```tsx
|
|
193
|
+
* const { mutateAsync: updateCreator } = useUpdateBrandCreator();
|
|
194
|
+
*
|
|
195
|
+
* await updateCreator({
|
|
196
|
+
* brandId: 'brand-123',
|
|
197
|
+
* creatorId: 'creator-456',
|
|
198
|
+
* isActive: false,
|
|
199
|
+
* });
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
function useUpdateBrandCreator(options) {
|
|
203
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
204
|
+
return (0, react_query_1.useMutation)({
|
|
205
|
+
mutationFn: async ({ brandId, creatorId, ...data }) => {
|
|
206
|
+
const client = (0, client_1.getApiClient)();
|
|
207
|
+
const response = await client.patch(`/api/v1/brands/${brandId}/creators/${creatorId}`, data);
|
|
208
|
+
return response.data;
|
|
209
|
+
},
|
|
210
|
+
onSuccess: (_, variables) => {
|
|
211
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.creators(variables.brandId) });
|
|
212
|
+
},
|
|
213
|
+
...options,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Remove a creator partnership from a brand
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```tsx
|
|
221
|
+
* const { mutateAsync: removeCreator } = useRemoveBrandCreator();
|
|
222
|
+
*
|
|
223
|
+
* await removeCreator({
|
|
224
|
+
* brandId: 'brand-123',
|
|
225
|
+
* creatorId: 'creator-456',
|
|
226
|
+
* });
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
function useRemoveBrandCreator(options) {
|
|
230
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
231
|
+
return (0, react_query_1.useMutation)({
|
|
232
|
+
mutationFn: async ({ brandId, creatorId, }) => {
|
|
233
|
+
const client = (0, client_1.getApiClient)();
|
|
234
|
+
await client.delete(`/api/v1/brands/${brandId}/creators/${creatorId}`);
|
|
235
|
+
},
|
|
236
|
+
onSuccess: (_, variables) => {
|
|
237
|
+
queryClient.invalidateQueries({ queryKey: brands_1.brandKeys.creators(variables.brandId) });
|
|
238
|
+
},
|
|
239
|
+
...options,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tdXRhdGlvbnMvYnJhbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOEJBLHdDQWdCQztBQWVELHdDQW1CQztBQWdCRCw0Q0ErQkM7QUFnQkQsMERBK0JDO0FBZUQsa0RBd0JDO0FBZ0JELGdEQWtEQztBQWdCRCxzREF5Q0M7QUFlRCxzREF3QkM7QUF2WEQsdURBQXdGO0FBQ3hGLHNDQUF5QztBQUN6Qyw4Q0FBOEM7QUFVOUMsK0VBQStFO0FBQy9FLGlCQUFpQjtBQUNqQiwrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsT0FBMEY7SUFFMUYsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUF3QixFQUEwQixFQUFFO1lBQ3JFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxF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QVMsRUFBRSxFQUFFO1lBQzFCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQkFBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTXV0YXRpb24sIHVzZVF1ZXJ5Q2xpZW50LCBVc2VNdXRhdGlvbk9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IGJyYW5kS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvYnJhbmRzJztcbmltcG9ydCB0eXBlIHtcbiAgQnJhbmRSZXNwb25zZSxcbiAgQnJhbmRPd25lclJlc3BvbnNlLFxuICBCcmFuZENyZWF0b3JSZXNwb25zZSxcbiAgQnJhbmRPd25lclJvbGUsXG4gIENyZWF0ZUJyYW5kUmVxdWVzdCxcbiAgVXBkYXRlQnJhbmRSZXF1ZXN0LFxufSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGJyYW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogY3JlYXRlQnJhbmQgfSA9IHVzZUNyZWF0ZUJyYW5kKCk7XG4gKlxuICogYXdhaXQgY3JlYXRlQnJhbmQoe1xuICogICBzbHVnOiAnd2VsbG5lc3MtY28nLFxuICogICBuYW1lOiAnV2VsbG5lc3MgQ28nLFxuICogICBkZXNjcmlwdGlvbjogJ0Egd2VsbG5lc3MgYnJhbmQnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZUJyYW5kKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8QnJhbmRSZXNwb25zZSwgRXJyb3IsIENyZWF0ZUJyYW5kUmVxdWVzdD4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQnJhbmRSZXF1ZXN0KTogUHJvbWlzZTxCcmFuZFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy9hcGkvdjEvYnJhbmRzJywgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLmFsbCB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIGJyYW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogdXBkYXRlQnJhbmQgfSA9IHVzZVVwZGF0ZUJyYW5kKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlQnJhbmQoe1xuICogICBpZDogJ2JyYW5kLTEyMycsXG4gKiAgIGRhdGE6IHsgZGVzY3JpcHRpb246ICdVcGRhdGVkIGRlc2NyaXB0aW9uJyB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUJyYW5kKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8QnJhbmRSZXNwb25zZSwgRXJyb3IsIHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlQnJhbmRSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVCcmFuZFJlcXVlc3QgfSk6IFByb21pc2U8QnJhbmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS9icmFuZHMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBicmFuZEtleXMuZGV0YWlsKHZhcmlhYmxlcy5pZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYSBicmFuZCBvd25lclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IGFkZE93bmVyIH0gPSB1c2VBZGRCcmFuZE93bmVyKCk7XG4gKlxuICogYXdhaXQgYWRkT3duZXIoe1xuICogICBicmFuZElkOiAnYnJhbmQtMTIzJyxcbiAqICAgdXNlcklkOiAndXNlci00NTYnLFxuICogICByb2xlOiAnTUFOQUdFUicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQWRkQnJhbmRPd25lcihcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFxuICAgICAgQnJhbmRPd25lclJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7IGJyYW5kSWQ6IHN0cmluZzsgdXNlcklkOiBzdHJpbmc7IHJvbGU6IEJyYW5kT3duZXJSb2xlIH1cbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJyYW5kSWQsXG4gICAgICB1c2VySWQsXG4gICAgICByb2xlLFxuICAgIH06IHtcbiAgICAgIGJyYW5kSWQ6IHN0cmluZztcbiAgICAgIHVzZXJJZDogc3RyaW5nO1xuICAgICAgcm9sZTogQnJhbmRPd25lclJvbGU7XG4gICAgfSk6IFByb21pc2U8QnJhbmRPd25lclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvYnJhbmRzLyR7YnJhbmRJZH0vb3duZXJzYCwgeyB1c2VySWQsIHJvbGUgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLm93bmVycyh2YXJpYWJsZXMuYnJhbmRJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBicmFuZCBvd25lcidzIHJvbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiB1cGRhdGVPd25lclJvbGUgfSA9IHVzZVVwZGF0ZUJyYW5kT3duZXJSb2xlKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlT3duZXJSb2xlKHtcbiAqICAgYnJhbmRJZDogJ2JyYW5kLTEyMycsXG4gKiAgIHVzZXJJZDogJ3VzZXItNDU2JyxcbiAqICAgcm9sZTogJ09XTkVSJyxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVCcmFuZE93bmVyUm9sZShcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFxuICAgICAgQnJhbmRPd25lclJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7IGJyYW5kSWQ6IHN0cmluZzsgdXNlcklkOiBzdHJpbmc7IHJvbGU6IEJyYW5kT3duZXJSb2xlIH1cbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJyYW5kSWQsXG4gICAgICB1c2VySWQsXG4gICAgICByb2xlLFxuICAgIH06IHtcbiAgICAgIGJyYW5kSWQ6IHN0cmluZztcbiAgICAgIHVzZXJJZDogc3RyaW5nO1xuICAgICAgcm9sZTogQnJhbmRPd25lclJvbGU7XG4gICAgfSk6IFByb21pc2U8QnJhbmRPd25lclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBhdGNoKGAvYXBpL3YxL2JyYW5kcy8ke2JyYW5kSWR9L293bmVycy8ke3VzZXJJZH1gLCB7IHJvbGUgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLm93bmVycyh2YXJpYWJsZXMuYnJhbmRJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYSBicmFuZCBvd25lclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IHJlbW92ZU93bmVyIH0gPSB1c2VSZW1vdmVCcmFuZE93bmVyKCk7XG4gKlxuICogYXdhaXQgcmVtb3ZlT3duZXIoe1xuICogICBicmFuZElkOiAnYnJhbmQtMTIzJyxcbiAqICAgdXNlcklkOiAndXNlci00NTYnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbW92ZUJyYW5kT3duZXIoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgeyBicmFuZElkOiBzdHJpbmc7IHVzZXJJZDogc3RyaW5nIH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJyYW5kSWQsXG4gICAgICB1c2VySWQsXG4gICAgfToge1xuICAgICAgYnJhbmRJZDogc3RyaW5nO1xuICAgICAgdXNlcklkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2JyYW5kcy8ke2JyYW5kSWR9L293bmVycy8ke3VzZXJJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLm93bmVycyh2YXJpYWJsZXMuYnJhbmRJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYSBjcmVhdG9yIHBhcnRuZXJzaGlwIHRvIGEgYnJhbmRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiBhZGRDcmVhdG9yIH0gPSB1c2VBZGRCcmFuZENyZWF0b3IoKTtcbiAqXG4gKiBhd2FpdCBhZGRDcmVhdG9yKHtcbiAqICAgYnJhbmRJZDogJ2JyYW5kLTEyMycsXG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItNDU2JyxcbiAqICAgY29tbWlzc2lvblJhdGU6IDAuMTUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQWRkQnJhbmRDcmVhdG9yKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBCcmFuZENyZWF0b3JSZXNwb25zZSxcbiAgICAgIEVycm9yLFxuICAgICAge1xuICAgICAgICBicmFuZElkOiBzdHJpbmc7XG4gICAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgICBzdGFydERhdGU/OiBzdHJpbmc7XG4gICAgICAgIGVuZERhdGU/OiBzdHJpbmc7XG4gICAgICAgIGNvbW1pc3Npb25SYXRlPzogbnVtYmVyO1xuICAgICAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gICAgICB9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBicmFuZElkLFxuICAgICAgY3JlYXRvcklkLFxuICAgICAgc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZSxcbiAgICAgIGNvbW1pc3Npb25SYXRlLFxuICAgICAgaXNBY3RpdmUsXG4gICAgfToge1xuICAgICAgYnJhbmRJZDogc3RyaW5nO1xuICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICBzdGFydERhdGU/OiBzdHJpbmc7XG4gICAgICBlbmREYXRlPzogc3RyaW5nO1xuICAgICAgY29tbWlzc2lvblJhdGU/OiBudW1iZXI7XG4gICAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gICAgfSk6IFByb21pc2U8QnJhbmRDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9icmFuZHMvJHticmFuZElkfS9jcmVhdG9yc2AsIHtcbiAgICAgICAgY3JlYXRvcklkLFxuICAgICAgICBzdGFydERhdGUsXG4gICAgICAgIGVuZERhdGUsXG4gICAgICAgIGNvbW1pc3Npb25SYXRlLFxuICAgICAgICBpc0FjdGl2ZSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGJyYW5kS2V5cy5jcmVhdG9ycyh2YXJpYWJsZXMuYnJhbmRJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBjcmVhdG9yIHBhcnRuZXJzaGlwXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogdXBkYXRlQ3JlYXRvciB9ID0gdXNlVXBkYXRlQnJhbmRDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlQ3JlYXRvcih7XG4gKiAgIGJyYW5kSWQ6ICdicmFuZC0xMjMnLFxuICogICBjcmVhdG9ySWQ6ICdjcmVhdG9yLTQ1NicsXG4gKiAgIGlzQWN0aXZlOiBmYWxzZSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVCcmFuZENyZWF0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxcbiAgICAgIEJyYW5kQ3JlYXRvclJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7XG4gICAgICAgIGJyYW5kSWQ6IHN0cmluZztcbiAgICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICAgIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgICAgICAgZW5kRGF0ZT86IHN0cmluZztcbiAgICAgICAgY29tbWlzc2lvblJhdGU/OiBudW1iZXI7XG4gICAgICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgICAgIH1cbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJyYW5kSWQsXG4gICAgICBjcmVhdG9ySWQsXG4gICAgICAuLi5kYXRhXG4gICAgfToge1xuICAgICAgYnJhbmRJZDogc3RyaW5nO1xuICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICBzdGFydERhdGU/OiBzdHJpbmc7XG4gICAgICBlbmREYXRlPzogc3RyaW5nO1xuICAgICAgY29tbWlzc2lvblJhdGU/OiBudW1iZXI7XG4gICAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gICAgfSk6IFByb21pc2U8QnJhbmRDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvYnJhbmRzLyR7YnJhbmRJZH0vY3JlYXRvcnMvJHtjcmVhdG9ySWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLmNyZWF0b3JzKHZhcmlhYmxlcy5icmFuZElkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhIGNyZWF0b3IgcGFydG5lcnNoaXAgZnJvbSBhIGJyYW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogcmVtb3ZlQ3JlYXRvciB9ID0gdXNlUmVtb3ZlQnJhbmRDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgcmVtb3ZlQ3JlYXRvcih7XG4gKiAgIGJyYW5kSWQ6ICdicmFuZC0xMjMnLFxuICogICBjcmVhdG9ySWQ6ICdjcmVhdG9yLTQ1NicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVtb3ZlQnJhbmRDcmVhdG9yKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHsgYnJhbmRJZDogc3RyaW5nOyBjcmVhdG9ySWQ6IHN0cmluZyB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBicmFuZElkLFxuICAgICAgY3JlYXRvcklkLFxuICAgIH06IHtcbiAgICAgIGJyYW5kSWQ6IHN0cmluZztcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9icmFuZHMvJHticmFuZElkfS9jcmVhdG9ycy8ke2NyZWF0b3JJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogYnJhbmRLZXlzLmNyZWF0b3JzKHZhcmlhYmxlcy5icmFuZElkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { UseMutationOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { CreatorResponse, CreatorAvailabilityResponse, CreateCreatorRequest, UpdateCreatorRequest, CreateAvailabilityRequest } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Create a new creator profile for the current user
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const { mutateAsync: createCreator } = useCreateCreator();
|
|
9
|
+
*
|
|
10
|
+
* await createCreator({
|
|
11
|
+
* slug: 'john-doe',
|
|
12
|
+
* displayName: 'John Doe',
|
|
13
|
+
* bio: 'Wellness facilitator',
|
|
14
|
+
* canFacilitate: true,
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function useCreateCreator(options?: Omit<UseMutationOptions<CreatorResponse, Error, CreateCreatorRequest>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<{
|
|
19
|
+
id: string;
|
|
20
|
+
userId: string;
|
|
21
|
+
slug: string;
|
|
22
|
+
displayName: string;
|
|
23
|
+
bio?: Record<string, never>;
|
|
24
|
+
avatarUrl?: Record<string, never>;
|
|
25
|
+
cityIds: string[];
|
|
26
|
+
canFacilitate: boolean;
|
|
27
|
+
canCreateContent: boolean;
|
|
28
|
+
isInfluencer: boolean;
|
|
29
|
+
specialties: string[];
|
|
30
|
+
certifications: string[];
|
|
31
|
+
sessionRate?: number;
|
|
32
|
+
isVerified: boolean;
|
|
33
|
+
isActive: boolean;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
updatedAt: string;
|
|
36
|
+
user?: import("@growsober/types/dist/generated").components["schemas"]["CreatorUserDto"];
|
|
37
|
+
}, Error, CreateCreatorRequest, unknown>;
|
|
38
|
+
/**
|
|
39
|
+
* Update a creator profile
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* const { mutateAsync: updateCreator } = useUpdateCreator();
|
|
44
|
+
*
|
|
45
|
+
* await updateCreator({
|
|
46
|
+
* id: 'creator-123',
|
|
47
|
+
* data: { bio: 'Updated bio' },
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function useUpdateCreator(options?: Omit<UseMutationOptions<CreatorResponse, Error, {
|
|
52
|
+
id: string;
|
|
53
|
+
data: UpdateCreatorRequest;
|
|
54
|
+
}>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<{
|
|
55
|
+
id: string;
|
|
56
|
+
userId: string;
|
|
57
|
+
slug: string;
|
|
58
|
+
displayName: string;
|
|
59
|
+
bio?: Record<string, never>;
|
|
60
|
+
avatarUrl?: Record<string, never>;
|
|
61
|
+
cityIds: string[];
|
|
62
|
+
canFacilitate: boolean;
|
|
63
|
+
canCreateContent: boolean;
|
|
64
|
+
isInfluencer: boolean;
|
|
65
|
+
specialties: string[];
|
|
66
|
+
certifications: string[];
|
|
67
|
+
sessionRate?: number;
|
|
68
|
+
isVerified: boolean;
|
|
69
|
+
isActive: boolean;
|
|
70
|
+
createdAt: string;
|
|
71
|
+
updatedAt: string;
|
|
72
|
+
user?: import("@growsober/types/dist/generated").components["schemas"]["CreatorUserDto"];
|
|
73
|
+
}, Error, {
|
|
74
|
+
id: string;
|
|
75
|
+
data: UpdateCreatorRequest;
|
|
76
|
+
}, unknown>;
|
|
77
|
+
/**
|
|
78
|
+
* Add an availability slot for a creator
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```tsx
|
|
82
|
+
* const { mutateAsync: addAvailability } = useAddCreatorAvailability();
|
|
83
|
+
*
|
|
84
|
+
* await addAvailability({
|
|
85
|
+
* creatorId: 'creator-123',
|
|
86
|
+
* data: {
|
|
87
|
+
* dayOfWeek: 1, // Monday
|
|
88
|
+
* startTime: '09:00',
|
|
89
|
+
* endTime: '17:00',
|
|
90
|
+
* timezone: 'Europe/London',
|
|
91
|
+
* isRecurring: true,
|
|
92
|
+
* },
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function useAddCreatorAvailability(options?: Omit<UseMutationOptions<CreatorAvailabilityResponse, Error, {
|
|
97
|
+
creatorId: string;
|
|
98
|
+
data: CreateAvailabilityRequest;
|
|
99
|
+
}>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<{
|
|
100
|
+
id: string;
|
|
101
|
+
creatorId: string;
|
|
102
|
+
dayOfWeek: Record<string, never>;
|
|
103
|
+
startTime: string;
|
|
104
|
+
endTime: string;
|
|
105
|
+
timezone: string;
|
|
106
|
+
isRecurring: boolean;
|
|
107
|
+
specificDate?: string;
|
|
108
|
+
}, Error, {
|
|
109
|
+
creatorId: string;
|
|
110
|
+
data: CreateAvailabilityRequest;
|
|
111
|
+
}, unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* Remove an availability slot for a creator
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```tsx
|
|
117
|
+
* const { mutateAsync: removeAvailability } = useRemoveCreatorAvailability();
|
|
118
|
+
*
|
|
119
|
+
* await removeAvailability({
|
|
120
|
+
* creatorId: 'creator-123',
|
|
121
|
+
* availabilityId: 'availability-456',
|
|
122
|
+
* });
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function useRemoveCreatorAvailability(options?: Omit<UseMutationOptions<void, Error, {
|
|
126
|
+
creatorId: string;
|
|
127
|
+
availabilityId: string;
|
|
128
|
+
}>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<void, Error, {
|
|
129
|
+
creatorId: string;
|
|
130
|
+
availabilityId: string;
|
|
131
|
+
}, unknown>;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCreateCreator = useCreateCreator;
|
|
4
|
+
exports.useUpdateCreator = useUpdateCreator;
|
|
5
|
+
exports.useAddCreatorAvailability = useAddCreatorAvailability;
|
|
6
|
+
exports.useRemoveCreatorAvailability = useRemoveCreatorAvailability;
|
|
7
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
8
|
+
const client_1 = require("../client");
|
|
9
|
+
const creators_1 = require("../queries/creators");
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// MUTATION HOOKS
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Create a new creator profile for the current user
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const { mutateAsync: createCreator } = useCreateCreator();
|
|
19
|
+
*
|
|
20
|
+
* await createCreator({
|
|
21
|
+
* slug: 'john-doe',
|
|
22
|
+
* displayName: 'John Doe',
|
|
23
|
+
* bio: 'Wellness facilitator',
|
|
24
|
+
* canFacilitate: true,
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
function useCreateCreator(options) {
|
|
29
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
30
|
+
return (0, react_query_1.useMutation)({
|
|
31
|
+
mutationFn: async (data) => {
|
|
32
|
+
const client = (0, client_1.getApiClient)();
|
|
33
|
+
const response = await client.post('/api/v1/creators', data);
|
|
34
|
+
return response.data;
|
|
35
|
+
},
|
|
36
|
+
onSuccess: () => {
|
|
37
|
+
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.all });
|
|
38
|
+
},
|
|
39
|
+
...options,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Update a creator profile
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const { mutateAsync: updateCreator } = useUpdateCreator();
|
|
48
|
+
*
|
|
49
|
+
* await updateCreator({
|
|
50
|
+
* id: 'creator-123',
|
|
51
|
+
* data: { bio: 'Updated bio' },
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
function useUpdateCreator(options) {
|
|
56
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
57
|
+
return (0, react_query_1.useMutation)({
|
|
58
|
+
mutationFn: async ({ id, data }) => {
|
|
59
|
+
const client = (0, client_1.getApiClient)();
|
|
60
|
+
const response = await client.patch(`/api/v1/creators/${id}`, data);
|
|
61
|
+
return response.data;
|
|
62
|
+
},
|
|
63
|
+
onSuccess: (_, variables) => {
|
|
64
|
+
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.detail(variables.id) });
|
|
65
|
+
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.me() });
|
|
66
|
+
},
|
|
67
|
+
...options,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Add an availability slot for a creator
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* const { mutateAsync: addAvailability } = useAddCreatorAvailability();
|
|
76
|
+
*
|
|
77
|
+
* await addAvailability({
|
|
78
|
+
* creatorId: 'creator-123',
|
|
79
|
+
* data: {
|
|
80
|
+
* dayOfWeek: 1, // Monday
|
|
81
|
+
* startTime: '09:00',
|
|
82
|
+
* endTime: '17:00',
|
|
83
|
+
* timezone: 'Europe/London',
|
|
84
|
+
* isRecurring: true,
|
|
85
|
+
* },
|
|
86
|
+
* });
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
function useAddCreatorAvailability(options) {
|
|
90
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
91
|
+
return (0, react_query_1.useMutation)({
|
|
92
|
+
mutationFn: async ({ creatorId, data, }) => {
|
|
93
|
+
const client = (0, client_1.getApiClient)();
|
|
94
|
+
const response = await client.post(`/api/v1/creators/${creatorId}/availability`, data);
|
|
95
|
+
return response.data;
|
|
96
|
+
},
|
|
97
|
+
onSuccess: (_, variables) => {
|
|
98
|
+
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.availability(variables.creatorId) });
|
|
99
|
+
},
|
|
100
|
+
...options,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Remove an availability slot for a creator
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```tsx
|
|
108
|
+
* const { mutateAsync: removeAvailability } = useRemoveCreatorAvailability();
|
|
109
|
+
*
|
|
110
|
+
* await removeAvailability({
|
|
111
|
+
* creatorId: 'creator-123',
|
|
112
|
+
* availabilityId: 'availability-456',
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
function useRemoveCreatorAvailability(options) {
|
|
117
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
118
|
+
return (0, react_query_1.useMutation)({
|
|
119
|
+
mutationFn: async ({ creatorId, availabilityId, }) => {
|
|
120
|
+
const client = (0, client_1.getApiClient)();
|
|
121
|
+
await client.delete(`/api/v1/creators/${creatorId}/availability/${availabilityId}`);
|
|
122
|
+
},
|
|
123
|
+
onSuccess: (_, variables) => {
|
|
124
|
+
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.availability(variables.creatorId) });
|
|
125
|
+
},
|
|
126
|
+
...options,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jcmVhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSw0Q0FnQkM7QUFlRCw0Q0FvQkM7QUFxQkQsOERBNkJDO0FBZUQsb0VBd0JDO0FBMUtELHVEQUF3RjtBQUN4RixzQ0FBeUM7QUFDekMsa0RBQWtEO0FBU2xELCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BQThGO0lBRTlGLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBMEIsRUFBNEIsRUFBRTtZQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQThDLEVBQTRCLEVBQUU7WUFDdkcsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUMxQixXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLE9BT0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQ2pCLFNBQVMsRUFDVCxJQUFJLEdBSUwsRUFBd0MsRUFBRTtZQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLFNBQVMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQzFCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLE9BR0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQ2pCLFNBQVMsRUFDVCxjQUFjLEdBSWYsRUFBaUIsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLFNBQVMsaUJBQWlCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUMxQixXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zIH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdG9yS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvY3JlYXRvcnMnO1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdG9yUmVzcG9uc2UsXG4gIENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgQ3JlYXRlQ3JlYXRvclJlcXVlc3QsXG4gIFVwZGF0ZUNyZWF0b3JSZXF1ZXN0LFxuICBDcmVhdGVBdmFpbGFiaWxpdHlSZXF1ZXN0LFxufSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGNyZWF0b3IgcHJvZmlsZSBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IGNyZWF0ZUNyZWF0b3IgfSA9IHVzZUNyZWF0ZUNyZWF0b3IoKTtcbiAqXG4gKiBhd2FpdCBjcmVhdGVDcmVhdG9yKHtcbiAqICAgc2x1ZzogJ2pvaG4tZG9lJyxcbiAqICAgZGlzcGxheU5hbWU6ICdKb2huIERvZScsXG4gKiAgIGJpbzogJ1dlbGxuZXNzIGZhY2lsaXRhdG9yJyxcbiAqICAgY2FuRmFjaWxpdGF0ZTogdHJ1ZSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVDcmVhdG9yKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlLCBFcnJvciwgQ3JlYXRlQ3JlYXRvclJlcXVlc3Q+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IENyZWF0ZUNyZWF0b3JSZXF1ZXN0KTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdCgnL2FwaS92MS9jcmVhdG9ycycsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbCB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIGNyZWF0b3IgcHJvZmlsZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IHVwZGF0ZUNyZWF0b3IgfSA9IHVzZVVwZGF0ZUNyZWF0b3IoKTtcbiAqXG4gKiBhd2FpdCB1cGRhdGVDcmVhdG9yKHtcbiAqICAgaWQ6ICdjcmVhdG9yLTEyMycsXG4gKiAgIGRhdGE6IHsgYmlvOiAnVXBkYXRlZCBiaW8nIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlQ3JlYXRvcihcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPENyZWF0b3JSZXNwb25zZSwgRXJyb3IsIHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlQ3JlYXRvclJlcXVlc3QgfT4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoeyBpZCwgZGF0YSB9OiB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXF1ZXN0IH0pOiBQcm9taXNlPENyZWF0b3JSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS9jcmVhdG9ycy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmRldGFpbCh2YXJpYWJsZXMuaWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMubWUoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEFkZCBhbiBhdmFpbGFiaWxpdHkgc2xvdCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogYWRkQXZhaWxhYmlsaXR5IH0gPSB1c2VBZGRDcmVhdG9yQXZhaWxhYmlsaXR5KCk7XG4gKlxuICogYXdhaXQgYWRkQXZhaWxhYmlsaXR5KHtcbiAqICAgY3JlYXRvcklkOiAnY3JlYXRvci0xMjMnLFxuICogICBkYXRhOiB7XG4gKiAgICAgZGF5T2ZXZWVrOiAxLCAvLyBNb25kYXlcbiAqICAgICBzdGFydFRpbWU6ICcwOTowMCcsXG4gKiAgICAgZW5kVGltZTogJzE3OjAwJyxcbiAqICAgICB0aW1lem9uZTogJ0V1cm9wZS9Mb25kb24nLFxuICogICAgIGlzUmVjdXJyaW5nOiB0cnVlLFxuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFkZENyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxcbiAgICAgIENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgICAgIEVycm9yLFxuICAgICAgeyBjcmVhdG9ySWQ6IHN0cmluZzsgZGF0YTogQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCB9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgZGF0YTogQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdDtcbiAgICB9KTogUHJvbWlzZTxDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vYXZhaWxhYmlsaXR5YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXZhaWxhYmlsaXR5KHZhcmlhYmxlcy5jcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogUmVtb3ZlIGFuIGF2YWlsYWJpbGl0eSBzbG90IGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiByZW1vdmVBdmFpbGFiaWxpdHkgfSA9IHVzZVJlbW92ZUNyZWF0b3JBdmFpbGFiaWxpdHkoKTtcbiAqXG4gKiBhd2FpdCByZW1vdmVBdmFpbGFiaWxpdHkoe1xuICogICBjcmVhdG9ySWQ6ICdjcmVhdG9yLTEyMycsXG4gKiAgIGF2YWlsYWJpbGl0eUlkOiAnYXZhaWxhYmlsaXR5LTQ1NicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVtb3ZlQ3JlYXRvckF2YWlsYWJpbGl0eShcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCB7IGNyZWF0b3JJZDogc3RyaW5nOyBhdmFpbGFiaWxpdHlJZDogc3RyaW5nIH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGNyZWF0b3JJZCxcbiAgICAgIGF2YWlsYWJpbGl0eUlkLFxuICAgIH06IHtcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgYXZhaWxhYmlsaXR5SWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2F2YWlsYWJpbGl0eS8ke2F2YWlsYWJpbGl0eUlkfWApO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hdmFpbGFiaWxpdHkodmFyaWFibGVzLmNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -23,7 +23,7 @@ export declare function useJoinEventChat(eventId: string): import("@tanstack/rea
|
|
|
23
23
|
id: string;
|
|
24
24
|
chatId: string;
|
|
25
25
|
userId: string;
|
|
26
|
-
role: "
|
|
26
|
+
role: "ATTENDEE" | "CREATOR" | "VENUE_REP" | "BRAND_REP" | "ADMIN" | "MODERATOR";
|
|
27
27
|
nickname?: string;
|
|
28
28
|
isMuted: boolean;
|
|
29
29
|
lastReadAt?: string;
|
|
@@ -42,7 +42,7 @@ export declare function useUpdateMemberSettings(eventId: string): import("@tanst
|
|
|
42
42
|
id: string;
|
|
43
43
|
chatId: string;
|
|
44
44
|
userId: string;
|
|
45
|
-
role: "
|
|
45
|
+
role: "ATTENDEE" | "CREATOR" | "VENUE_REP" | "BRAND_REP" | "ADMIN" | "MODERATOR";
|
|
46
46
|
nickname?: string;
|
|
47
47
|
isMuted: boolean;
|
|
48
48
|
lastReadAt?: string;
|