@growsober/sdk 1.0.9 → 1.0.11

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.
@@ -113,4 +113,93 @@ export declare function useUpdatePartnerReward(businessId: string, options?: Omi
113
113
  isActive: boolean;
114
114
  }>;
115
115
  }, unknown>;
116
+ interface UpdateRewardRequest {
117
+ isActive?: boolean;
118
+ title?: string;
119
+ description?: string;
120
+ code?: string;
121
+ redeemType?: 'IN_PERSON' | 'ONLINE' | 'BOTH';
122
+ maxRedemptions?: number;
123
+ perUserLimit?: number;
124
+ validFrom?: string;
125
+ validUntil?: string;
126
+ }
127
+ /**
128
+ * Update a venue reward
129
+ *
130
+ * @param venueId - Venue ID
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * const updateReward = useUpdateVenueReward('venue-123');
135
+ *
136
+ * const handleUpdate = async (rewardId: string) => {
137
+ * await updateReward.mutateAsync({
138
+ * id: rewardId,
139
+ * data: { isActive: false },
140
+ * });
141
+ * };
142
+ * ```
143
+ */
144
+ export declare function useUpdateVenueReward(venueId: string, options?: Omit<UseMutationOptions<unknown, Error, {
145
+ id: string;
146
+ data: UpdateRewardRequest;
147
+ }>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
148
+ id: string;
149
+ data: UpdateRewardRequest;
150
+ }, unknown>;
151
+ /**
152
+ * Delete a venue reward
153
+ *
154
+ * @param venueId - Venue ID
155
+ *
156
+ * @example
157
+ * ```tsx
158
+ * const deleteReward = useDeleteVenueReward('venue-123');
159
+ *
160
+ * const handleDelete = async (rewardId: string) => {
161
+ * await deleteReward.mutateAsync(rewardId);
162
+ * };
163
+ * ```
164
+ */
165
+ export declare function useDeleteVenueReward(venueId: string, options?: Omit<UseMutationOptions<unknown, Error, string>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
166
+ /**
167
+ * Update a brand reward
168
+ *
169
+ * @param brandId - Brand ID
170
+ *
171
+ * @example
172
+ * ```tsx
173
+ * const updateReward = useUpdateBrandReward('brand-123');
174
+ *
175
+ * const handleUpdate = async (rewardId: string) => {
176
+ * await updateReward.mutateAsync({
177
+ * id: rewardId,
178
+ * data: { isActive: false },
179
+ * });
180
+ * };
181
+ * ```
182
+ */
183
+ export declare function useUpdateBrandReward(brandId: string, options?: Omit<UseMutationOptions<unknown, Error, {
184
+ id: string;
185
+ data: UpdateRewardRequest;
186
+ }>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
187
+ id: string;
188
+ data: UpdateRewardRequest;
189
+ }, unknown>;
190
+ /**
191
+ * Delete a brand reward
192
+ *
193
+ * @param brandId - Brand ID
194
+ *
195
+ * @example
196
+ * ```tsx
197
+ * const deleteReward = useDeleteBrandReward('brand-123');
198
+ *
199
+ * const handleDelete = async (rewardId: string) => {
200
+ * await deleteReward.mutateAsync(rewardId);
201
+ * };
202
+ * ```
203
+ */
204
+ export declare function useDeleteBrandReward(brandId: string, options?: Omit<UseMutationOptions<unknown, Error, string>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
116
205
  export {};
@@ -5,6 +5,10 @@ exports.useCreatePartnerReward = useCreatePartnerReward;
5
5
  exports.useCreateVenueReward = useCreateVenueReward;
6
6
  exports.useCreateBrandReward = useCreateBrandReward;
7
7
  exports.useUpdatePartnerReward = useUpdatePartnerReward;
8
+ exports.useUpdateVenueReward = useUpdateVenueReward;
9
+ exports.useDeleteVenueReward = useDeleteVenueReward;
10
+ exports.useUpdateBrandReward = useUpdateBrandReward;
11
+ exports.useDeleteBrandReward = useDeleteBrandReward;
8
12
  const react_query_1 = require("@tanstack/react-query");
9
13
  const client_1 = require("../client");
10
14
  const badges_1 = require("../queries/badges");
@@ -174,4 +178,129 @@ function useUpdatePartnerReward(businessId, options) {
174
178
  ...options,
175
179
  });
176
180
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tdXRhdGlvbnMvYmFkZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLDBDQW1CQztBQW9CRCx3REFpQkM7QUFxQ0Qsb0RBa0JDO0FBc0JELG9EQWtCQztBQW1CRCx3REErQkM7QUFuT0QsdURBQXdGO0FBQ3hGLHNDQUF5QztBQUN6Qyw4Q0FBMEQ7QUFPMUQsK0VBQStFO0FBQy9FLHdCQUF3QjtBQUN4QiwrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixPQUFnRztJQUVoRyxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQWdCLEVBQTRDLEVBQUU7WUFDL0UsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixRQUFRLFNBQVMsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztRQUM5QyxDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLG9EQUFvRDtZQUNwRCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFVLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxtQkFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFD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Q1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLFVBQWtCLEVBQ2xCLE9BT0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQ2pCLEVBQUUsRUFDRixJQUFJLEdBSUwsRUFBa0MsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLFVBQVUsWUFBWSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RixPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDOUMsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxtQkFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zIH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBiYWRnZUtleXMsIHJld2FyZEtleXMgfSBmcm9tICcuLi9xdWVyaWVzL2JhZGdlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhcnRuZXJSZXdhcmRSZXNwb25zZSxcbiAgUGFydG5lclJld2FyZFJlZGVtcHRpb25SZXNwb25zZSxcbiAgQ3JlYXRlUGFydG5lclJld2FyZFJlcXVlc3QsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUkVXQVJEIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVkZWVtIGEgcGFydG5lciByZXdhcmRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCByZWRlZW1SZXdhcmQgPSB1c2VSZWRlZW1SZXdhcmQoKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVSZWRlZW0gPSBhc3luYyAocmV3YXJkSWQ6IHN0cmluZykgPT4ge1xuICogICBhd2FpdCByZWRlZW1SZXdhcmQubXV0YXRlQXN5bmMocmV3YXJkSWQpO1xuICogICAvLyBTaG93IHN1Y2Nlc3MgbWVzc2FnZVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVkZWVtUmV3YXJkKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8UGFydG5lclJld2FyZFJlZGVtcHRpb25SZXNwb25zZSwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAocmV3YXJkSWQ6IHN0cmluZyk6IFByb21pc2U8UGFydG5lclJld2FyZFJlZGVtcHRpb25SZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL3Jld2FyZHMvJHtyZXdhcmRJZH0vcmVkZWVtYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICAvLyBJbnZhbGlkYXRlIHdhbGxldCwgYXZhaWxhYmxlIGFuZCByZWRlZW1lZCByZXdhcmRzXG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLndhbGxldCgpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5hdmFpbGFibGUoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMucmVkZWVtZWQoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHBhcnRuZXIgcmV3YXJkIChmb3IgYnVzaW5lc3MgZGFzaGJvYXJkKVxuICpcbiAqIEBwYXJhbSBidXNpbmVzc0lkIC0gQnVzaW5lc3MgSUQgY3JlYXRpbmcgdGhlIHJld2FyZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGNyZWF0ZVJld2FyZCA9IHVzZUNyZWF0ZVBhcnRuZXJSZXdhcmQoJ2J1c2luZXNzLTEyMycpO1xuICpcbiAqIGNvbnN0IGhhbmRsZUNyZWF0ZSA9IGFzeW5jICgpID0+IHtcbiAqICAgYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgICBiYWRnZUlkOiAnYmFkZ2Utd2Vlay13YXJyaW9yJyxcbiAqICAgICB0aXRsZTogJ0ZyZWUgQ29mZmVlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ1Nob3cgeW91ciBiYWRnZSBmb3IgYSBmcmVlIGNvZmZlZScsXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlUGFydG5lclJld2FyZChcbiAgYnVzaW5lc3NJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8UGFydG5lclJld2FyZFJlc3BvbnNlLCBFcnJvciwgQ3JlYXRlUGFydG5lclJld2FyZFJlcXVlc3Q+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IENyZWF0ZVBhcnRuZXJSZXdhcmRSZXF1ZXN0KTogUHJvbWlzZTxQYXJ0bmVyUmV3YXJkUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9idXNpbmVzc2VzLyR7YnVzaW5lc3NJZH0vcmV3YXJkc2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5mb3JCdXNpbmVzcyhidXNpbmVzc0lkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVTklGSUVEIFJFV0FSRCBNVVRBVElPTlMgKFZlbnVlICYgQnJhbmQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmludGVyZmFjZSBDcmVhdGVSZXdhcmRSZXF1ZXN0IHtcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgcmVkZWVtVHlwZT86ICdJTl9QRVJTT04nIHwgJ09OTElORScgfCAnQk9USCc7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ/OiBudW1iZXI7XG4gIHZhbGlkRnJvbT86IHN0cmluZztcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSByZXdhcmQgZm9yIGEgdmVudWVcbiAqXG4gKiBAcGFyYW0gdmVudWVJZCAtIFZlbnVlIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgY3JlYXRlUmV3YXJkID0gdXNlQ3JlYXRlVmVudWVSZXdhcmQoJ3ZlbnVlLTEyMycpO1xuICpcbiAqIGNvbnN0IGhhbmRsZUNyZWF0ZSA9IGFzeW5jICgpID0+IHtcbiAqICAgYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgICBiYWRnZUlkOiAnYmFkZ2Utd2Vlay13YXJyaW9yJyxcbiAqICAgICB0aXRsZTogJ0ZyZWUgQ29mZmVlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ1Nob3cgeW91ciBiYWRnZSBmb3IgYSBmcmVlIGNvZmZlZScsXG4gKiAgICAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicsXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlVmVudWVSZXdhcmQoXG4gIHZlbnVlSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHVua25vd24sIEVycm9yLCBDcmVhdGVSZXdhcmRSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVSZXdhcmRSZXF1ZXN0KSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvdmVudWVzLyR7dmVudWVJZH0vcmV3YXJkc2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5mb3JWZW51ZSh2ZW51ZUlkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuYXZhaWxhYmxlKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSByZXdhcmQgZm9yIGEgYnJhbmRcbiAqXG4gKiBAcGFyYW0gYnJhbmRJZCAtIEJyYW5kIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgY3JlYXRlUmV3YXJkID0gdXNlQ3JlYXRlQnJhbmRSZXdhcmQoJ2JyYW5kLTEyMycpO1xuICpcbiAqIGNvbnN0IGhhbmRsZUNyZWF0ZSA9IGFzeW5jICgpID0+IHtcbiAqICAgYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgICBiYWRnZUlkOiAnYmFkZ2Utd2Vlay13YXJyaW9yJyxcbiAqICAgICB0aXRsZTogJzEwJSBPZmYnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnVXNlIGNvZGUgYXQgY2hlY2tvdXQnLFxuICogICAgIGNvZGU6ICdTT0JFUjEwJyxcbiAqICAgICByZWRlZW1UeXBlOiAnT05MSU5FJyxcbiAqICAgfSk7XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVCcmFuZFJld2FyZChcbiAgYnJhbmRJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dW5rbm93biwgRXJyb3IsIENyZWF0ZVJld2FyZFJlcXVlc3Q+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IENyZWF0ZVJld2FyZFJlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9icmFuZHMvJHticmFuZElkfS9yZXdhcmRzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmZvckJyYW5kKGJyYW5kSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5hdmFpbGFibGUoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIHBhcnRuZXIgcmV3YXJkIChmb3IgYnVzaW5lc3MgZGFzaGJvYXJkKVxuICpcbiAqIEBwYXJhbSBidXNpbmVzc0lkIC0gQnVzaW5lc3MgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1cGRhdGVSZXdhcmQgPSB1c2VVcGRhdGVQYXJ0bmVyUmV3YXJkKCdidXNpbmVzcy0xMjMnKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVVcGRhdGUgPSBhc3luYyAocmV3YXJkSWQ6IHN0cmluZykgPT4ge1xuICogICBhd2FpdCB1cGRhdGVSZXdhcmQubXV0YXRlQXN5bmMoe1xuICogICAgIGlkOiByZXdhcmRJZCxcbiAqICAgICBkYXRhOiB7IHRpdGxlOiAnVXBkYXRlZCBUaXRsZScsIGlzQWN0aXZlOiBmYWxzZSB9LFxuICogICB9KTtcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZVBhcnRuZXJSZXdhcmQoXG4gIGJ1c2luZXNzSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFxuICAgICAgUGFydG5lclJld2FyZFJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7IGlkOiBzdHJpbmc7IGRhdGE6IFBhcnRpYWw8Q3JlYXRlUGFydG5lclJld2FyZFJlcXVlc3QgJiB7IGlzQWN0aXZlOiBib29sZWFuIH0+IH1cbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGlkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgZGF0YTogUGFydGlhbDxDcmVhdGVQYXJ0bmVyUmV3YXJkUmVxdWVzdCAmIHsgaXNBY3RpdmU6IGJvb2xlYW4gfT47XG4gICAgfSk6IFByb21pc2U8UGFydG5lclJld2FyZFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBhdGNoKGAvYXBpL3YxL2J1c2luZXNzZXMvJHtidXNpbmVzc0lkfS9yZXdhcmRzLyR7aWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmZvckJ1c2luZXNzKGJ1c2luZXNzSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5hdmFpbGFibGUoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
181
+ /**
182
+ * Update a venue reward
183
+ *
184
+ * @param venueId - Venue ID
185
+ *
186
+ * @example
187
+ * ```tsx
188
+ * const updateReward = useUpdateVenueReward('venue-123');
189
+ *
190
+ * const handleUpdate = async (rewardId: string) => {
191
+ * await updateReward.mutateAsync({
192
+ * id: rewardId,
193
+ * data: { isActive: false },
194
+ * });
195
+ * };
196
+ * ```
197
+ */
198
+ function useUpdateVenueReward(venueId, options) {
199
+ const queryClient = (0, react_query_1.useQueryClient)();
200
+ return (0, react_query_1.useMutation)({
201
+ mutationFn: async ({ id, data }) => {
202
+ const client = (0, client_1.getApiClient)();
203
+ const response = await client.patch(`/api/v1/venues/${venueId}/rewards/${id}`, data);
204
+ return response.data?.data || response.data;
205
+ },
206
+ onSuccess: () => {
207
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.forVenue(venueId) });
208
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.available() });
209
+ },
210
+ ...options,
211
+ });
212
+ }
213
+ /**
214
+ * Delete a venue reward
215
+ *
216
+ * @param venueId - Venue ID
217
+ *
218
+ * @example
219
+ * ```tsx
220
+ * const deleteReward = useDeleteVenueReward('venue-123');
221
+ *
222
+ * const handleDelete = async (rewardId: string) => {
223
+ * await deleteReward.mutateAsync(rewardId);
224
+ * };
225
+ * ```
226
+ */
227
+ function useDeleteVenueReward(venueId, options) {
228
+ const queryClient = (0, react_query_1.useQueryClient)();
229
+ return (0, react_query_1.useMutation)({
230
+ mutationFn: async (rewardId) => {
231
+ const client = (0, client_1.getApiClient)();
232
+ const response = await client.delete(`/api/v1/venues/${venueId}/rewards/${rewardId}`);
233
+ return response.data?.data || response.data;
234
+ },
235
+ onSuccess: () => {
236
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.forVenue(venueId) });
237
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.available() });
238
+ },
239
+ ...options,
240
+ });
241
+ }
242
+ // ============================================================================
243
+ // BRAND REWARD MUTATIONS
244
+ // ============================================================================
245
+ /**
246
+ * Update a brand reward
247
+ *
248
+ * @param brandId - Brand ID
249
+ *
250
+ * @example
251
+ * ```tsx
252
+ * const updateReward = useUpdateBrandReward('brand-123');
253
+ *
254
+ * const handleUpdate = async (rewardId: string) => {
255
+ * await updateReward.mutateAsync({
256
+ * id: rewardId,
257
+ * data: { isActive: false },
258
+ * });
259
+ * };
260
+ * ```
261
+ */
262
+ function useUpdateBrandReward(brandId, options) {
263
+ const queryClient = (0, react_query_1.useQueryClient)();
264
+ return (0, react_query_1.useMutation)({
265
+ mutationFn: async ({ id, data }) => {
266
+ const client = (0, client_1.getApiClient)();
267
+ const response = await client.patch(`/api/v1/brands/${brandId}/rewards/${id}`, data);
268
+ return response.data?.data || response.data;
269
+ },
270
+ onSuccess: () => {
271
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.forBrand(brandId) });
272
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.available() });
273
+ },
274
+ ...options,
275
+ });
276
+ }
277
+ /**
278
+ * Delete a brand reward
279
+ *
280
+ * @param brandId - Brand ID
281
+ *
282
+ * @example
283
+ * ```tsx
284
+ * const deleteReward = useDeleteBrandReward('brand-123');
285
+ *
286
+ * const handleDelete = async (rewardId: string) => {
287
+ * await deleteReward.mutateAsync(rewardId);
288
+ * };
289
+ * ```
290
+ */
291
+ function useDeleteBrandReward(brandId, options) {
292
+ const queryClient = (0, react_query_1.useQueryClient)();
293
+ return (0, react_query_1.useMutation)({
294
+ mutationFn: async (rewardId) => {
295
+ const client = (0, client_1.getApiClient)();
296
+ const response = await client.delete(`/api/v1/brands/${brandId}/rewards/${rewardId}`);
297
+ return response.data?.data || response.data;
298
+ },
299
+ onSuccess: () => {
300
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.forBrand(brandId) });
301
+ queryClient.invalidateQueries({ queryKey: badges_1.rewardKeys.available() });
302
+ },
303
+ ...options,
304
+ });
305
+ }
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tdXRhdGlvbnMvYmFkZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLDBDQW1CQztBQW9CRCx3REFpQkM7QUFxQ0Qsb0RBa0JDO0FBc0JELG9EQWtCQztBQW1CRCx3REErQkM7QUFtQ0Qsb0RBcUJDO0FBZ0JELG9EQWtCQztBQXVCRCxvREFxQkM7QUFnQkQsb0RBa0JDO0FBM1lELHVEQUF3RjtBQUN4RixzQ0FBeUM7QUFDekMsOENBQTBEO0FBTzFELCtFQUErRTtBQUMvRSx3QkFBd0I7QUFDeEIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsT0FBZ0c7SUFFaEcsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFnQixFQUE0QyxFQUFFO1lBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsUUFBUSxTQUFTLENBQUMsQ0FBQztZQUN6RSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDOUMsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxvREFBb0Q7WUFDcEQsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxtQkFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFR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QkFBb0IsQ0FDbEMsT0FBZSxFQUNmLE9BQXdFO0lBRXhFLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsT0FBTyxZQUFZLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEYsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlDLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNdXRhdGlvbiwgdXNlUXVlcnlDbGllbnQsIFVzZU11dGF0aW9uT3B0aW9ucyB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgYmFkZ2VLZXlzLCByZXdhcmRLZXlzIH0gZnJvbSAnLi4vcXVlcmllcy9iYWRnZXMnO1xuaW1wb3J0IHR5cGUge1xuICBQYXJ0bmVyUmV3YXJkUmVzcG9uc2UsXG4gIFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2UsXG4gIENyZWF0ZVBhcnRuZXJSZXdhcmRSZXF1ZXN0LFxufSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFV0FSRCBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlZGVlbSBhIHBhcnRuZXIgcmV3YXJkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgcmVkZWVtUmV3YXJkID0gdXNlUmVkZWVtUmV3YXJkKCk7XG4gKlxuICogY29uc3QgaGFuZGxlUmVkZWVtID0gYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpID0+IHtcbiAqICAgYXdhaXQgcmVkZWVtUmV3YXJkLm11dGF0ZUFzeW5jKHJld2FyZElkKTtcbiAqICAgLy8gU2hvdyBzdWNjZXNzIG1lc3NhZ2VcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlZGVlbVJld2FyZChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2UsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpOiBQcm9taXNlPFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9yZXdhcmRzLyR7cmV3YXJkSWR9L3JlZGVlbWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgLy8gSW52YWxpZGF0ZSB3YWxsZXQsIGF2YWlsYWJsZSBhbmQgcmVkZWVtZWQgcmV3YXJkc1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy53YWxsZXQoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuYXZhaWxhYmxlKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLnJlZGVlbWVkKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXJ0bmVyIHJld2FyZCAoZm9yIGJ1c2luZXNzIGRhc2hib2FyZClcbiAqXG4gKiBAcGFyYW0gYnVzaW5lc3NJZCAtIEJ1c2luZXNzIElEIGNyZWF0aW5nIHRoZSByZXdhcmRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVSZXdhcmQgPSB1c2VDcmVhdGVQYXJ0bmVyUmV3YXJkKCdidXNpbmVzcy0xMjMnKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVDcmVhdGUgPSBhc3luYyAoKSA9PiB7XG4gKiAgIGF3YWl0IGNyZWF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgICAgYmFkZ2VJZDogJ2JhZGdlLXdlZWstd2FycmlvcicsXG4gKiAgICAgdGl0bGU6ICdGcmVlIENvZmZlZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdTaG93IHlvdXIgYmFkZ2UgZm9yIGEgZnJlZSBjb2ZmZWUnLFxuICogICB9KTtcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZVBhcnRuZXJSZXdhcmQoXG4gIGJ1c2luZXNzSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPFBhcnRuZXJSZXdhcmRSZXNwb25zZSwgRXJyb3IsIENyZWF0ZVBhcnRuZXJSZXdhcmRSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVQYXJ0bmVyUmV3YXJkUmVxdWVzdCk6IFByb21pc2U8UGFydG5lclJld2FyZFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvYnVzaW5lc3Nlcy8ke2J1c2luZXNzSWR9L3Jld2FyZHNgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuZm9yQnVzaW5lc3MoYnVzaW5lc3NJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVU5JRklFRCBSRVdBUkQgTVVUQVRJT05TIChWZW51ZSAmIEJyYW5kKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbnRlcmZhY2UgQ3JlYXRlUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIHJlZGVlbVR5cGU/OiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0PzogbnVtYmVyO1xuICB2YWxpZEZyb20/OiBzdHJpbmc7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgcmV3YXJkIGZvciBhIHZlbnVlXG4gKlxuICogQHBhcmFtIHZlbnVlSWQgLSBWZW51ZSBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGNyZWF0ZVJld2FyZCA9IHVzZUNyZWF0ZVZlbnVlUmV3YXJkKCd2ZW51ZS0xMjMnKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVDcmVhdGUgPSBhc3luYyAoKSA9PiB7XG4gKiAgIGF3YWl0IGNyZWF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgICAgYmFkZ2VJZDogJ2JhZGdlLXdlZWstd2FycmlvcicsXG4gKiAgICAgdGl0bGU6ICdGcmVlIENvZmZlZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdTaG93IHlvdXIgYmFkZ2UgZm9yIGEgZnJlZSBjb2ZmZWUnLFxuICogICAgIHJlZGVlbVR5cGU6ICdJTl9QRVJTT04nLFxuICogICB9KTtcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZVZlbnVlUmV3YXJkKFxuICB2ZW51ZUlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx1bmtub3duLCBFcnJvciwgQ3JlYXRlUmV3YXJkUmVxdWVzdD4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlUmV3YXJkUmVxdWVzdCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL3ZlbnVlcy8ke3ZlbnVlSWR9L3Jld2FyZHNgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuZm9yVmVudWUodmVudWVJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmF2YWlsYWJsZSgpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgcmV3YXJkIGZvciBhIGJyYW5kXG4gKlxuICogQHBhcmFtIGJyYW5kSWQgLSBCcmFuZCBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGNyZWF0ZVJld2FyZCA9IHVzZUNyZWF0ZUJyYW5kUmV3YXJkKCdicmFuZC0xMjMnKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVDcmVhdGUgPSBhc3luYyAoKSA9PiB7XG4gKiAgIGF3YWl0IGNyZWF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgICAgYmFkZ2VJZDogJ2JhZGdlLXdlZWstd2FycmlvcicsXG4gKiAgICAgdGl0bGU6ICcxMCUgT2ZmJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ1VzZSBjb2RlIGF0IGNoZWNrb3V0JyxcbiAqICAgICBjb2RlOiAnU09CRVIxMCcsXG4gKiAgICAgcmVkZWVtVHlwZTogJ09OTElORScsXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQnJhbmRSZXdhcmQoXG4gIGJyYW5kSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHVua25vd24sIEVycm9yLCBDcmVhdGVSZXdhcmRSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVSZXdhcmRSZXF1ZXN0KSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvYnJhbmRzLyR7YnJhbmRJZH0vcmV3YXJkc2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5mb3JCcmFuZChicmFuZElkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuYXZhaWxhYmxlKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBwYXJ0bmVyIHJld2FyZCAoZm9yIGJ1c2luZXNzIGRhc2hib2FyZClcbiAqXG4gKiBAcGFyYW0gYnVzaW5lc3NJZCAtIEJ1c2luZXNzIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgdXBkYXRlUmV3YXJkID0gdXNlVXBkYXRlUGFydG5lclJld2FyZCgnYnVzaW5lc3MtMTIzJyk7XG4gKlxuICogY29uc3QgaGFuZGxlVXBkYXRlID0gYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpID0+IHtcbiAqICAgYXdhaXQgdXBkYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgICBpZDogcmV3YXJkSWQsXG4gKiAgICAgZGF0YTogeyB0aXRsZTogJ1VwZGF0ZWQgVGl0bGUnLCBpc0FjdGl2ZTogZmFsc2UgfSxcbiAqICAgfSk7XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVQYXJ0bmVyUmV3YXJkKFxuICBidXNpbmVzc0lkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxcbiAgICAgIFBhcnRuZXJSZXdhcmRSZXNwb25zZSxcbiAgICAgIEVycm9yLFxuICAgICAgeyBpZDogc3RyaW5nOyBkYXRhOiBQYXJ0aWFsPENyZWF0ZVBhcnRuZXJSZXdhcmRSZXF1ZXN0ICYgeyBpc0FjdGl2ZTogYm9vbGVhbiB9PiB9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBpZCxcbiAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IFBhcnRpYWw8Q3JlYXRlUGFydG5lclJld2FyZFJlcXVlc3QgJiB7IGlzQWN0aXZlOiBib29sZWFuIH0+O1xuICAgIH0pOiBQcm9taXNlPFBhcnRuZXJSZXdhcmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS9idXNpbmVzc2VzLyR7YnVzaW5lc3NJZH0vcmV3YXJkcy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5mb3JCdXNpbmVzcyhidXNpbmVzc0lkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuYXZhaWxhYmxlKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVOVUUgUkVXQVJEIE1VVEFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbnRlcmZhY2UgVXBkYXRlUmV3YXJkUmVxdWVzdCB7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdD86IG51bWJlcjtcbiAgdmFsaWRGcm9tPzogc3RyaW5nO1xuICB2YWxpZFVudGlsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIHZlbnVlIHJld2FyZFxuICpcbiAqIEBwYXJhbSB2ZW51ZUlkIC0gVmVudWUgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1cGRhdGVSZXdhcmQgPSB1c2VVcGRhdGVWZW51ZVJld2FyZCgndmVudWUtMTIzJyk7XG4gKlxuICogY29uc3QgaGFuZGxlVXBkYXRlID0gYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpID0+IHtcbiAqICAgYXdhaXQgdXBkYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgICBpZDogcmV3YXJkSWQsXG4gKiAgICAgZGF0YTogeyBpc0FjdGl2ZTogZmFsc2UgfSxcbiAqICAgfSk7XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVWZW51ZVJld2FyZChcbiAgdmVudWVJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8dW5rbm93biwgRXJyb3IsIHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlUmV3YXJkUmVxdWVzdCB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7IGlkLCBkYXRhIH06IHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlUmV3YXJkUmVxdWVzdCB9KSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBhdGNoKGAvYXBpL3YxL3ZlbnVlcy8ke3ZlbnVlSWR9L3Jld2FyZHMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuZm9yVmVudWUodmVudWVJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmF2YWlsYWJsZSgpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGEgdmVudWUgcmV3YXJkXG4gKlxuICogQHBhcmFtIHZlbnVlSWQgLSBWZW51ZSBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGRlbGV0ZVJld2FyZCA9IHVzZURlbGV0ZVZlbnVlUmV3YXJkKCd2ZW51ZS0xMjMnKTtcbiAqXG4gKiBjb25zdCBoYW5kbGVEZWxldGUgPSBhc3luYyAocmV3YXJkSWQ6IHN0cmluZykgPT4ge1xuICogICBhd2FpdCBkZWxldGVSZXdhcmQubXV0YXRlQXN5bmMocmV3YXJkSWQpO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlVmVudWVSZXdhcmQoXG4gIHZlbnVlSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHVua25vd24sIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL3ZlbnVlcy8ke3ZlbnVlSWR9L3Jld2FyZHMvJHtyZXdhcmRJZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHJld2FyZEtleXMuZm9yVmVudWUodmVudWVJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmF2YWlsYWJsZSgpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJSQU5EIFJFV0FSRCBNVVRBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBVcGRhdGUgYSBicmFuZCByZXdhcmRcbiAqXG4gKiBAcGFyYW0gYnJhbmRJZCAtIEJyYW5kIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgdXBkYXRlUmV3YXJkID0gdXNlVXBkYXRlQnJhbmRSZXdhcmQoJ2JyYW5kLTEyMycpO1xuICpcbiAqIGNvbnN0IGhhbmRsZVVwZGF0ZSA9IGFzeW5jIChyZXdhcmRJZDogc3RyaW5nKSA9PiB7XG4gKiAgIGF3YWl0IHVwZGF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgICAgaWQ6IHJld2FyZElkLFxuICogICAgIGRhdGE6IHsgaXNBY3RpdmU6IGZhbHNlIH0sXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlQnJhbmRSZXdhcmQoXG4gIGJyYW5kSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPHVua25vd24sIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZVJld2FyZFJlcXVlc3QgfT4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoeyBpZCwgZGF0YSB9OiB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZVJld2FyZFJlcXVlc3QgfSkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS9icmFuZHMvJHticmFuZElkfS9yZXdhcmRzLyR7aWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmZvckJyYW5kKGJyYW5kSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5hdmFpbGFibGUoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGV0ZSBhIGJyYW5kIHJld2FyZFxuICpcbiAqIEBwYXJhbSBicmFuZElkIC0gQnJhbmQgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBkZWxldGVSZXdhcmQgPSB1c2VEZWxldGVCcmFuZFJld2FyZCgnYnJhbmQtMTIzJyk7XG4gKlxuICogY29uc3QgaGFuZGxlRGVsZXRlID0gYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpID0+IHtcbiAqICAgYXdhaXQgZGVsZXRlUmV3YXJkLm11dGF0ZUFzeW5jKHJld2FyZElkKTtcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlbGV0ZUJyYW5kUmV3YXJkKFxuICBicmFuZElkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx1bmtub3duLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChyZXdhcmRJZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9icmFuZHMvJHticmFuZElkfS9yZXdhcmRzLyR7cmV3YXJkSWR9YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiByZXdhcmRLZXlzLmZvckJyYW5kKGJyYW5kSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcmV3YXJkS2V5cy5hdmFpbGFibGUoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
@@ -25,3 +25,4 @@ export * from './badges';
25
25
  export * from './creators';
26
26
  export * from './brands';
27
27
  export * from './products';
28
+ export * from './venues';
@@ -41,4 +41,5 @@ __exportStar(require("./badges"), exports);
41
41
  __exportStar(require("./creators"), exports);
42
42
  __exportStar(require("./brands"), exports);
43
43
  __exportStar(require("./products"), exports);
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLHdDQUFzQjtBQUN0QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsMkNBQXlCO0FBQ3pCLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTXV0YXRpb24gSG9va3NcbiAqXG4gKiBSZS1leHBvcnRzIGFsbCBtdXRhdGlvbiBob29rcyBmb3IgQVBJIGVuZHBvaW50cy5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FkbWluJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2tpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vaHVicyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYnJhcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vb2ZmZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N1cHBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL2phY2snO1xuZXhwb3J0ICogZnJvbSAnLi9hbWJhc3NhZG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3c5MCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtY2hhdCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItcGlucyc7XG5leHBvcnQgKiBmcm9tICcuL2JhZGdlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vYnJhbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHMnO1xuIl19
44
+ __exportStar(require("./venues"), exports);
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLHdDQUFzQjtBQUN0QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE11dGF0aW9uIEhvb2tzXG4gKlxuICogUmUtZXhwb3J0cyBhbGwgbXV0YXRpb24gaG9va3MgZm9yIEFQSSBlbmRwb2ludHMuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZG1pbic7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2h1YnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWJyYXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL29mZmVycyc7XG5leHBvcnQgKiBmcm9tICcuL3N1YnNjcmlwdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdXBwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9qYWNrJztcbmV4cG9ydCAqIGZyb20gJy4vYW1iYXNzYWRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm93OTAnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRjaGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LWNoYXQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXBpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYWRnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2JyYW5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3RzJztcbmV4cG9ydCAqIGZyb20gJy4vdmVudWVzJztcbiJdfQ==
@@ -0,0 +1,126 @@
1
+ import { UseMutationOptions } from '@tanstack/react-query';
2
+ import type { VenueResponse, CreateVenueRequest, UpdateVenueRequest } from '../types';
3
+ /**
4
+ * Update a venue
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * const updateVenue = useUpdateVenue({
9
+ * onSuccess: () => toast.success('Venue updated'),
10
+ * });
11
+ *
12
+ * const handleSave = () => {
13
+ * updateVenue.mutate({
14
+ * id: venueId,
15
+ * data: { name: 'Updated Name', hasAfDrinks: true },
16
+ * });
17
+ * };
18
+ * ```
19
+ */
20
+ export declare function useUpdateVenue(options?: Omit<UseMutationOptions<VenueResponse, Error, {
21
+ id: string;
22
+ data: UpdateVenueRequest;
23
+ }>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<{
24
+ id: string;
25
+ appId: string;
26
+ name: string;
27
+ slug: string;
28
+ description?: Record<string, never>;
29
+ type: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
30
+ hasAfDrinks: boolean;
31
+ isAfVenue: boolean;
32
+ afHighlights: string[];
33
+ address?: Record<string, never>;
34
+ cityId?: Record<string, never>;
35
+ locationLat?: Record<string, never>;
36
+ locationLong?: Record<string, never>;
37
+ phone?: Record<string, never>;
38
+ email?: Record<string, never>;
39
+ website?: Record<string, never>;
40
+ instagram?: Record<string, never>;
41
+ profileImage?: Record<string, never>;
42
+ bannerImage?: Record<string, never>;
43
+ photos: string[];
44
+ openingHours?: Record<string, never>;
45
+ rating?: Record<string, never>;
46
+ reviewCount: number;
47
+ isActive: boolean;
48
+ isVerified: boolean;
49
+ isFeatured: boolean;
50
+ isFoundingPartner: boolean;
51
+ createdAt: string;
52
+ updatedAt: string;
53
+ }, Error, {
54
+ id: string;
55
+ data: UpdateVenueRequest;
56
+ }, unknown>;
57
+ /**
58
+ * Create a venue
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * const createVenue = useCreateVenue({
63
+ * onSuccess: (venue) => {
64
+ * toast.success('Venue created');
65
+ * router.push(`/venues/${venue.id}`);
66
+ * },
67
+ * });
68
+ *
69
+ * const handleCreate = () => {
70
+ * createVenue.mutate({
71
+ * name: 'My Venue',
72
+ * address: '123 Main St',
73
+ * hasAfDrinks: true,
74
+ * });
75
+ * };
76
+ * ```
77
+ */
78
+ export declare function useCreateVenue(options?: Omit<UseMutationOptions<VenueResponse, Error, CreateVenueRequest>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<{
79
+ id: string;
80
+ appId: string;
81
+ name: string;
82
+ slug: string;
83
+ description?: Record<string, never>;
84
+ type: "COFFEE_SHOP" | "RESTAURANT" | "BAR" | "WELLNESS" | "VENUE" | "ACTIVITY" | "RETAIL" | "OTHER";
85
+ hasAfDrinks: boolean;
86
+ isAfVenue: boolean;
87
+ afHighlights: string[];
88
+ address?: Record<string, never>;
89
+ cityId?: Record<string, never>;
90
+ locationLat?: Record<string, never>;
91
+ locationLong?: Record<string, never>;
92
+ phone?: Record<string, never>;
93
+ email?: Record<string, never>;
94
+ website?: Record<string, never>;
95
+ instagram?: Record<string, never>;
96
+ profileImage?: Record<string, never>;
97
+ bannerImage?: Record<string, never>;
98
+ photos: string[];
99
+ openingHours?: Record<string, never>;
100
+ rating?: Record<string, never>;
101
+ reviewCount: number;
102
+ isActive: boolean;
103
+ isVerified: boolean;
104
+ isFeatured: boolean;
105
+ isFoundingPartner: boolean;
106
+ createdAt: string;
107
+ updatedAt: string;
108
+ }, Error, CreateVenueRequest, unknown>;
109
+ /**
110
+ * Delete a venue
111
+ *
112
+ * @example
113
+ * ```tsx
114
+ * const deleteVenue = useDeleteVenue({
115
+ * onSuccess: () => {
116
+ * toast.success('Venue deleted');
117
+ * router.push('/venues');
118
+ * },
119
+ * });
120
+ *
121
+ * const handleDelete = (venueId: string) => {
122
+ * deleteVenue.mutate(venueId);
123
+ * };
124
+ * ```
125
+ */
126
+ export declare function useDeleteVenue(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useUpdateVenue = useUpdateVenue;
4
+ exports.useCreateVenue = useCreateVenue;
5
+ exports.useDeleteVenue = useDeleteVenue;
6
+ const react_query_1 = require("@tanstack/react-query");
7
+ const client_1 = require("../client");
8
+ const venues_1 = require("../queries/venues");
9
+ // ============================================================================
10
+ // VENUE MUTATION HOOKS
11
+ // ============================================================================
12
+ /**
13
+ * Update a venue
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const updateVenue = useUpdateVenue({
18
+ * onSuccess: () => toast.success('Venue updated'),
19
+ * });
20
+ *
21
+ * const handleSave = () => {
22
+ * updateVenue.mutate({
23
+ * id: venueId,
24
+ * data: { name: 'Updated Name', hasAfDrinks: true },
25
+ * });
26
+ * };
27
+ * ```
28
+ */
29
+ function useUpdateVenue(options) {
30
+ const queryClient = (0, react_query_1.useQueryClient)();
31
+ return (0, react_query_1.useMutation)({
32
+ mutationFn: async ({ id, data, }) => {
33
+ const client = (0, client_1.getApiClient)();
34
+ const response = await client.patch(`/api/v1/venues/${id}`, data);
35
+ return response.data?.data || response.data;
36
+ },
37
+ onSuccess: (_, variables) => {
38
+ queryClient.invalidateQueries({ queryKey: venues_1.venueKeys.detail(variables.id) });
39
+ queryClient.invalidateQueries({ queryKey: venues_1.venueKeys.lists() });
40
+ },
41
+ ...options,
42
+ });
43
+ }
44
+ /**
45
+ * Create a venue
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * const createVenue = useCreateVenue({
50
+ * onSuccess: (venue) => {
51
+ * toast.success('Venue created');
52
+ * router.push(`/venues/${venue.id}`);
53
+ * },
54
+ * });
55
+ *
56
+ * const handleCreate = () => {
57
+ * createVenue.mutate({
58
+ * name: 'My Venue',
59
+ * address: '123 Main St',
60
+ * hasAfDrinks: true,
61
+ * });
62
+ * };
63
+ * ```
64
+ */
65
+ function useCreateVenue(options) {
66
+ const queryClient = (0, react_query_1.useQueryClient)();
67
+ return (0, react_query_1.useMutation)({
68
+ mutationFn: async (data) => {
69
+ const client = (0, client_1.getApiClient)();
70
+ const response = await client.post('/api/v1/venues', data);
71
+ return response.data?.data || response.data;
72
+ },
73
+ onSuccess: () => {
74
+ queryClient.invalidateQueries({ queryKey: venues_1.venueKeys.lists() });
75
+ },
76
+ ...options,
77
+ });
78
+ }
79
+ /**
80
+ * Delete a venue
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * const deleteVenue = useDeleteVenue({
85
+ * onSuccess: () => {
86
+ * toast.success('Venue deleted');
87
+ * router.push('/venues');
88
+ * },
89
+ * });
90
+ *
91
+ * const handleDelete = (venueId: string) => {
92
+ * deleteVenue.mutate(venueId);
93
+ * };
94
+ * ```
95
+ */
96
+ function useDeleteVenue(options) {
97
+ const queryClient = (0, react_query_1.useQueryClient)();
98
+ return (0, react_query_1.useMutation)({
99
+ mutationFn: async (venueId) => {
100
+ const client = (0, client_1.getApiClient)();
101
+ await client.delete(`/api/v1/venues/${venueId}`);
102
+ },
103
+ onSuccess: (_, venueId) => {
104
+ queryClient.invalidateQueries({ queryKey: venues_1.venueKeys.detail(venueId) });
105
+ queryClient.invalidateQueries({ queryKey: venues_1.venueKeys.lists() });
106
+ },
107
+ ...options,
108
+ });
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVudWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tdXRhdGlvbnMvdmVudWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLHdDQTBCQztBQXVCRCx3Q0FnQkM7QUFtQkQsd0NBZ0JDO0FBOUhELHVEQUF3RjtBQUN4RixzQ0FBeUM7QUFDekMsOENBQThDO0FBRzlDLCtFQUErRTtBQUMvRSx1QkFBdUI7QUFDdkIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUNqQixFQUFFLEVBQ0YsSUFBSSxHQUlMLEVBQTBCLEVBQUU7WUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDOUMsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUMxQixXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxTQUFnQixjQUFjLENBQzVCLE9BQTBGO0lBRTFGLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBd0IsRUFBMEIsRUFBRTtZQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0QsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlDLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxTQUFnQixjQUFjLENBQzVCLE9BQXFFO0lBRXJFLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBZSxFQUFpQixFQUFFO1lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3hCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQkFBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTXV0YXRpb24sIHVzZVF1ZXJ5Q2xpZW50LCBVc2VNdXRhdGlvbk9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IHZlbnVlS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvdmVudWVzJztcbmltcG9ydCB0eXBlIHsgVmVudWVSZXNwb25zZSwgQ3JlYXRlVmVudWVSZXF1ZXN0LCBVcGRhdGVWZW51ZVJlcXVlc3QgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFTlVFIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVXBkYXRlIGEgdmVudWVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1cGRhdGVWZW51ZSA9IHVzZVVwZGF0ZVZlbnVlKHtcbiAqICAgb25TdWNjZXNzOiAoKSA9PiB0b2FzdC5zdWNjZXNzKCdWZW51ZSB1cGRhdGVkJyksXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBoYW5kbGVTYXZlID0gKCkgPT4ge1xuICogICB1cGRhdGVWZW51ZS5tdXRhdGUoe1xuICogICAgIGlkOiB2ZW51ZUlkLFxuICogICAgIGRhdGE6IHsgbmFtZTogJ1VwZGF0ZWQgTmFtZScsIGhhc0FmRHJpbmtzOiB0cnVlIH0sXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlVmVudWUoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxWZW51ZVJlc3BvbnNlLCBFcnJvciwgeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVWZW51ZVJlcXVlc3QgfT4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgaWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBVcGRhdGVWZW51ZVJlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8VmVudWVSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS92ZW51ZXMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHZlbnVlS2V5cy5kZXRhaWwodmFyaWFibGVzLmlkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHZlbnVlS2V5cy5saXN0cygpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdmVudWVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVWZW51ZSA9IHVzZUNyZWF0ZVZlbnVlKHtcbiAqICAgb25TdWNjZXNzOiAodmVudWUpID0+IHtcbiAqICAgICB0b2FzdC5zdWNjZXNzKCdWZW51ZSBjcmVhdGVkJyk7XG4gKiAgICAgcm91dGVyLnB1c2goYC92ZW51ZXMvJHt2ZW51ZS5pZH1gKTtcbiAqICAgfSxcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGhhbmRsZUNyZWF0ZSA9ICgpID0+IHtcbiAqICAgY3JlYXRlVmVudWUubXV0YXRlKHtcbiAqICAgICBuYW1lOiAnTXkgVmVudWUnLFxuICogICAgIGFkZHJlc3M6ICcxMjMgTWFpbiBTdCcsXG4gKiAgICAgaGFzQWZEcmlua3M6IHRydWUsXG4gKiAgIH0pO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlVmVudWUoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczxWZW51ZVJlc3BvbnNlLCBFcnJvciwgQ3JlYXRlVmVudWVSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVWZW51ZVJlcXVlc3QpOiBQcm9taXNlPFZlbnVlUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdCgnL2FwaS92MS92ZW51ZXMnLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHZlbnVlS2V5cy5saXN0cygpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGEgdmVudWVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBkZWxldGVWZW51ZSA9IHVzZURlbGV0ZVZlbnVlKHtcbiAqICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gKiAgICAgdG9hc3Quc3VjY2VzcygnVmVudWUgZGVsZXRlZCcpO1xuICogICAgIHJvdXRlci5wdXNoKCcvdmVudWVzJyk7XG4gKiAgIH0sXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBoYW5kbGVEZWxldGUgPSAodmVudWVJZDogc3RyaW5nKSA9PiB7XG4gKiAgIGRlbGV0ZVZlbnVlLm11dGF0ZSh2ZW51ZUlkKTtcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlbGV0ZVZlbnVlKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAodmVudWVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvdmVudWVzLyR7dmVudWVJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZlbnVlSWQpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHZlbnVlS2V5cy5kZXRhaWwodmVudWVJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiB2ZW51ZUtleXMubGlzdHMoKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growsober/sdk",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Shared TypeScript SDK for GrowSober API - TanStack Query hooks, API client, and utilities",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -226,3 +226,171 @@ export function useUpdatePartnerReward(
226
226
  ...options,
227
227
  });
228
228
  }
229
+
230
+ // ============================================================================
231
+ // VENUE REWARD MUTATIONS
232
+ // ============================================================================
233
+
234
+ interface UpdateRewardRequest {
235
+ isActive?: boolean;
236
+ title?: string;
237
+ description?: string;
238
+ code?: string;
239
+ redeemType?: 'IN_PERSON' | 'ONLINE' | 'BOTH';
240
+ maxRedemptions?: number;
241
+ perUserLimit?: number;
242
+ validFrom?: string;
243
+ validUntil?: string;
244
+ }
245
+
246
+ /**
247
+ * Update a venue reward
248
+ *
249
+ * @param venueId - Venue ID
250
+ *
251
+ * @example
252
+ * ```tsx
253
+ * const updateReward = useUpdateVenueReward('venue-123');
254
+ *
255
+ * const handleUpdate = async (rewardId: string) => {
256
+ * await updateReward.mutateAsync({
257
+ * id: rewardId,
258
+ * data: { isActive: false },
259
+ * });
260
+ * };
261
+ * ```
262
+ */
263
+ export function useUpdateVenueReward(
264
+ venueId: string,
265
+ options?: Omit<
266
+ UseMutationOptions<unknown, Error, { id: string; data: UpdateRewardRequest }>,
267
+ 'mutationFn'
268
+ >
269
+ ) {
270
+ const queryClient = useQueryClient();
271
+
272
+ return useMutation({
273
+ mutationFn: async ({ id, data }: { id: string; data: UpdateRewardRequest }) => {
274
+ const client = getApiClient();
275
+ const response = await client.patch(`/api/v1/venues/${venueId}/rewards/${id}`, data);
276
+ return response.data?.data || response.data;
277
+ },
278
+ onSuccess: () => {
279
+ queryClient.invalidateQueries({ queryKey: rewardKeys.forVenue(venueId) });
280
+ queryClient.invalidateQueries({ queryKey: rewardKeys.available() });
281
+ },
282
+ ...options,
283
+ });
284
+ }
285
+
286
+ /**
287
+ * Delete a venue reward
288
+ *
289
+ * @param venueId - Venue ID
290
+ *
291
+ * @example
292
+ * ```tsx
293
+ * const deleteReward = useDeleteVenueReward('venue-123');
294
+ *
295
+ * const handleDelete = async (rewardId: string) => {
296
+ * await deleteReward.mutateAsync(rewardId);
297
+ * };
298
+ * ```
299
+ */
300
+ export function useDeleteVenueReward(
301
+ venueId: string,
302
+ options?: Omit<UseMutationOptions<unknown, Error, string>, 'mutationFn'>
303
+ ) {
304
+ const queryClient = useQueryClient();
305
+
306
+ return useMutation({
307
+ mutationFn: async (rewardId: string) => {
308
+ const client = getApiClient();
309
+ const response = await client.delete(`/api/v1/venues/${venueId}/rewards/${rewardId}`);
310
+ return response.data?.data || response.data;
311
+ },
312
+ onSuccess: () => {
313
+ queryClient.invalidateQueries({ queryKey: rewardKeys.forVenue(venueId) });
314
+ queryClient.invalidateQueries({ queryKey: rewardKeys.available() });
315
+ },
316
+ ...options,
317
+ });
318
+ }
319
+
320
+ // ============================================================================
321
+ // BRAND REWARD MUTATIONS
322
+ // ============================================================================
323
+
324
+ /**
325
+ * Update a brand reward
326
+ *
327
+ * @param brandId - Brand ID
328
+ *
329
+ * @example
330
+ * ```tsx
331
+ * const updateReward = useUpdateBrandReward('brand-123');
332
+ *
333
+ * const handleUpdate = async (rewardId: string) => {
334
+ * await updateReward.mutateAsync({
335
+ * id: rewardId,
336
+ * data: { isActive: false },
337
+ * });
338
+ * };
339
+ * ```
340
+ */
341
+ export function useUpdateBrandReward(
342
+ brandId: string,
343
+ options?: Omit<
344
+ UseMutationOptions<unknown, Error, { id: string; data: UpdateRewardRequest }>,
345
+ 'mutationFn'
346
+ >
347
+ ) {
348
+ const queryClient = useQueryClient();
349
+
350
+ return useMutation({
351
+ mutationFn: async ({ id, data }: { id: string; data: UpdateRewardRequest }) => {
352
+ const client = getApiClient();
353
+ const response = await client.patch(`/api/v1/brands/${brandId}/rewards/${id}`, data);
354
+ return response.data?.data || response.data;
355
+ },
356
+ onSuccess: () => {
357
+ queryClient.invalidateQueries({ queryKey: rewardKeys.forBrand(brandId) });
358
+ queryClient.invalidateQueries({ queryKey: rewardKeys.available() });
359
+ },
360
+ ...options,
361
+ });
362
+ }
363
+
364
+ /**
365
+ * Delete a brand reward
366
+ *
367
+ * @param brandId - Brand ID
368
+ *
369
+ * @example
370
+ * ```tsx
371
+ * const deleteReward = useDeleteBrandReward('brand-123');
372
+ *
373
+ * const handleDelete = async (rewardId: string) => {
374
+ * await deleteReward.mutateAsync(rewardId);
375
+ * };
376
+ * ```
377
+ */
378
+ export function useDeleteBrandReward(
379
+ brandId: string,
380
+ options?: Omit<UseMutationOptions<unknown, Error, string>, 'mutationFn'>
381
+ ) {
382
+ const queryClient = useQueryClient();
383
+
384
+ return useMutation({
385
+ mutationFn: async (rewardId: string) => {
386
+ const client = getApiClient();
387
+ const response = await client.delete(`/api/v1/brands/${brandId}/rewards/${rewardId}`);
388
+ return response.data?.data || response.data;
389
+ },
390
+ onSuccess: () => {
391
+ queryClient.invalidateQueries({ queryKey: rewardKeys.forBrand(brandId) });
392
+ queryClient.invalidateQueries({ queryKey: rewardKeys.available() });
393
+ },
394
+ ...options,
395
+ });
396
+ }
@@ -26,3 +26,4 @@ export * from './badges';
26
26
  export * from './creators';
27
27
  export * from './brands';
28
28
  export * from './products';
29
+ export * from './venues';
@@ -0,0 +1,127 @@
1
+ import { useMutation, useQueryClient, UseMutationOptions } from '@tanstack/react-query';
2
+ import { getApiClient } from '../client';
3
+ import { venueKeys } from '../queries/venues';
4
+ import type { VenueResponse, CreateVenueRequest, UpdateVenueRequest } from '../types';
5
+
6
+ // ============================================================================
7
+ // VENUE MUTATION HOOKS
8
+ // ============================================================================
9
+
10
+ /**
11
+ * Update a venue
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const updateVenue = useUpdateVenue({
16
+ * onSuccess: () => toast.success('Venue updated'),
17
+ * });
18
+ *
19
+ * const handleSave = () => {
20
+ * updateVenue.mutate({
21
+ * id: venueId,
22
+ * data: { name: 'Updated Name', hasAfDrinks: true },
23
+ * });
24
+ * };
25
+ * ```
26
+ */
27
+ export function useUpdateVenue(
28
+ options?: Omit<
29
+ UseMutationOptions<VenueResponse, Error, { id: string; data: UpdateVenueRequest }>,
30
+ 'mutationFn'
31
+ >
32
+ ) {
33
+ const queryClient = useQueryClient();
34
+
35
+ return useMutation({
36
+ mutationFn: async ({
37
+ id,
38
+ data,
39
+ }: {
40
+ id: string;
41
+ data: UpdateVenueRequest;
42
+ }): Promise<VenueResponse> => {
43
+ const client = getApiClient();
44
+ const response = await client.patch(`/api/v1/venues/${id}`, data);
45
+ return response.data?.data || response.data;
46
+ },
47
+ onSuccess: (_, variables) => {
48
+ queryClient.invalidateQueries({ queryKey: venueKeys.detail(variables.id) });
49
+ queryClient.invalidateQueries({ queryKey: venueKeys.lists() });
50
+ },
51
+ ...options,
52
+ });
53
+ }
54
+
55
+ /**
56
+ * Create a venue
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * const createVenue = useCreateVenue({
61
+ * onSuccess: (venue) => {
62
+ * toast.success('Venue created');
63
+ * router.push(`/venues/${venue.id}`);
64
+ * },
65
+ * });
66
+ *
67
+ * const handleCreate = () => {
68
+ * createVenue.mutate({
69
+ * name: 'My Venue',
70
+ * address: '123 Main St',
71
+ * hasAfDrinks: true,
72
+ * });
73
+ * };
74
+ * ```
75
+ */
76
+ export function useCreateVenue(
77
+ options?: Omit<UseMutationOptions<VenueResponse, Error, CreateVenueRequest>, 'mutationFn'>
78
+ ) {
79
+ const queryClient = useQueryClient();
80
+
81
+ return useMutation({
82
+ mutationFn: async (data: CreateVenueRequest): Promise<VenueResponse> => {
83
+ const client = getApiClient();
84
+ const response = await client.post('/api/v1/venues', data);
85
+ return response.data?.data || response.data;
86
+ },
87
+ onSuccess: () => {
88
+ queryClient.invalidateQueries({ queryKey: venueKeys.lists() });
89
+ },
90
+ ...options,
91
+ });
92
+ }
93
+
94
+ /**
95
+ * Delete a venue
96
+ *
97
+ * @example
98
+ * ```tsx
99
+ * const deleteVenue = useDeleteVenue({
100
+ * onSuccess: () => {
101
+ * toast.success('Venue deleted');
102
+ * router.push('/venues');
103
+ * },
104
+ * });
105
+ *
106
+ * const handleDelete = (venueId: string) => {
107
+ * deleteVenue.mutate(venueId);
108
+ * };
109
+ * ```
110
+ */
111
+ export function useDeleteVenue(
112
+ options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>
113
+ ) {
114
+ const queryClient = useQueryClient();
115
+
116
+ return useMutation({
117
+ mutationFn: async (venueId: string): Promise<void> => {
118
+ const client = getApiClient();
119
+ await client.delete(`/api/v1/venues/${venueId}`);
120
+ },
121
+ onSuccess: (_, venueId) => {
122
+ queryClient.invalidateQueries({ queryKey: venueKeys.detail(venueId) });
123
+ queryClient.invalidateQueries({ queryKey: venueKeys.lists() });
124
+ },
125
+ ...options,
126
+ });
127
+ }