@voyantjs/availability-react 0.105.1 → 0.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,9 @@
1
+ export type { BatchDeleteVariables, BatchUpdateVariables, } from "./use-availability-batch-mutations.js";
2
+ export { useAvailabilityCloseoutBatchMutation, useAvailabilityPickupPointBatchMutation, useAvailabilityRuleBatchMutation, useAvailabilitySlotBatchMutation, useAvailabilityStartTimeBatchMutation, } from "./use-availability-batch-mutations.js";
3
+ export { useAvailabilityCloseoutMutation } from "./use-availability-closeout-mutation.js";
1
4
  export type { UseAvailabilityOverviewOptions } from "./use-availability-overview.js";
2
5
  export { useAvailabilityOverview } from "./use-availability-overview.js";
6
+ export { useAvailabilityPickupPointMutation } from "./use-availability-pickup-point-mutation.js";
3
7
  export { useAvailabilityRuleMutation } from "./use-availability-rule-mutation.js";
4
8
  export { useAvailabilitySlotMutation } from "./use-availability-slot-mutation.js";
5
9
  export { useAvailabilityStartTimeMutation } from "./use-availability-start-time-mutation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAA;AAC5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,gCAAgC,EAChC,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAA;AACzF,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAA;AAChG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAA;AAC5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,4 +1,7 @@
1
+ export { useAvailabilityCloseoutBatchMutation, useAvailabilityPickupPointBatchMutation, useAvailabilityRuleBatchMutation, useAvailabilitySlotBatchMutation, useAvailabilityStartTimeBatchMutation, } from "./use-availability-batch-mutations.js";
2
+ export { useAvailabilityCloseoutMutation } from "./use-availability-closeout-mutation.js";
1
3
  export { useAvailabilityOverview } from "./use-availability-overview.js";
4
+ export { useAvailabilityPickupPointMutation } from "./use-availability-pickup-point-mutation.js";
2
5
  export { useAvailabilityRuleMutation } from "./use-availability-rule-mutation.js";
3
6
  export { useAvailabilitySlotMutation } from "./use-availability-slot-mutation.js";
4
7
  export { useAvailabilityStartTimeMutation } from "./use-availability-start-time-mutation.js";
@@ -0,0 +1,193 @@
1
+ import { type BatchUpdateResponse } from "../schemas.js";
2
+ export interface BatchUpdateVariables<TPatch> {
3
+ ids: string[];
4
+ patch: TPatch;
5
+ }
6
+ export interface BatchDeleteVariables {
7
+ ids: string[];
8
+ }
9
+ /** Batch mutations for `POST /v1/availability/rules/batch-update|batch-delete`. */
10
+ export declare function useAvailabilityRuleBatchMutation(): {
11
+ batchUpdate: import("@tanstack/react-query").UseMutationResult<BatchUpdateResponse<{
12
+ id: string;
13
+ productId: string;
14
+ optionId: string | null;
15
+ facilityId: string | null;
16
+ timezone: string;
17
+ recurrenceRule: string;
18
+ maxCapacity: number;
19
+ maxPickupCapacity: number | null;
20
+ minTotalPax: number | null;
21
+ cutoffMinutes: number | null;
22
+ earlyBookingLimitMinutes: number | null;
23
+ active: boolean;
24
+ productName?: string | null | undefined;
25
+ }>, Error, BatchUpdateVariables<{
26
+ productId?: string | undefined;
27
+ optionId?: string | null | undefined;
28
+ facilityId?: string | null | undefined;
29
+ timezone?: string | undefined;
30
+ recurrenceRule?: string | undefined;
31
+ maxCapacity?: number | undefined;
32
+ maxPickupCapacity?: number | null | undefined;
33
+ minTotalPax?: number | null | undefined;
34
+ cutoffMinutes?: number | null | undefined;
35
+ earlyBookingLimitMinutes?: number | null | undefined;
36
+ active?: boolean | undefined;
37
+ }>, unknown>;
38
+ batchDelete: import("@tanstack/react-query").UseMutationResult<{
39
+ deletedIds: string[];
40
+ total: number;
41
+ succeeded: number;
42
+ failed: {
43
+ id: string;
44
+ error: string;
45
+ }[];
46
+ }, Error, BatchDeleteVariables, unknown>;
47
+ };
48
+ /** Batch mutations for `POST /v1/availability/start-times/batch-update|batch-delete`. */
49
+ export declare function useAvailabilityStartTimeBatchMutation(): {
50
+ batchUpdate: import("@tanstack/react-query").UseMutationResult<BatchUpdateResponse<{
51
+ id: string;
52
+ productId: string;
53
+ optionId: string | null;
54
+ facilityId: string | null;
55
+ label: string | null;
56
+ startTimeLocal: string;
57
+ durationMinutes: number | null;
58
+ sortOrder: number;
59
+ active: boolean;
60
+ productName?: string | null | undefined;
61
+ }>, Error, BatchUpdateVariables<{
62
+ productId?: string | undefined;
63
+ optionId?: string | null | undefined;
64
+ facilityId?: string | null | undefined;
65
+ label?: string | null | undefined;
66
+ startTimeLocal?: string | undefined;
67
+ durationMinutes?: number | null | undefined;
68
+ sortOrder?: number | undefined;
69
+ active?: boolean | undefined;
70
+ }>, unknown>;
71
+ batchDelete: import("@tanstack/react-query").UseMutationResult<{
72
+ deletedIds: string[];
73
+ total: number;
74
+ succeeded: number;
75
+ failed: {
76
+ id: string;
77
+ error: string;
78
+ }[];
79
+ }, Error, BatchDeleteVariables, unknown>;
80
+ };
81
+ /** Batch mutations for `POST /v1/availability/slots/batch-update|batch-delete`. */
82
+ export declare function useAvailabilitySlotBatchMutation(): {
83
+ batchUpdate: import("@tanstack/react-query").UseMutationResult<BatchUpdateResponse<{
84
+ id: string;
85
+ productId: string;
86
+ itineraryId: string | null;
87
+ optionId: string | null;
88
+ facilityId: string | null;
89
+ availabilityRuleId: string | null;
90
+ startTimeId: string | null;
91
+ dateLocal: string;
92
+ startsAt: string;
93
+ endsAt: string | null;
94
+ timezone: string;
95
+ status: "cancelled" | "open" | "closed" | "sold_out";
96
+ unlimited: boolean;
97
+ initialPax: number | null;
98
+ remainingPax: number | null;
99
+ nights: number | null;
100
+ days: number | null;
101
+ notes: string | null;
102
+ productName?: string | null | undefined;
103
+ endDateLocal?: string | null | undefined;
104
+ }>, Error, BatchUpdateVariables<{
105
+ productId?: string | undefined;
106
+ itineraryId?: string | null | undefined;
107
+ optionId?: string | null | undefined;
108
+ facilityId?: string | null | undefined;
109
+ availabilityRuleId?: string | null | undefined;
110
+ startTimeId?: string | null | undefined;
111
+ dateLocal?: string | undefined;
112
+ startsAt?: string | undefined;
113
+ endsAt?: string | null | undefined;
114
+ timezone?: string | undefined;
115
+ status?: "cancelled" | "open" | "closed" | "sold_out" | undefined;
116
+ unlimited?: boolean | undefined;
117
+ initialPax?: number | null | undefined;
118
+ remainingPax?: number | null | undefined;
119
+ initialPickups?: number | null | undefined;
120
+ remainingPickups?: number | null | undefined;
121
+ remainingResources?: number | null | undefined;
122
+ pastCutoff?: boolean | undefined;
123
+ tooEarly?: boolean | undefined;
124
+ nights?: number | null | undefined;
125
+ days?: number | null | undefined;
126
+ notes?: string | null | undefined;
127
+ }>, unknown>;
128
+ batchDelete: import("@tanstack/react-query").UseMutationResult<{
129
+ deletedIds: string[];
130
+ total: number;
131
+ succeeded: number;
132
+ failed: {
133
+ id: string;
134
+ error: string;
135
+ }[];
136
+ }, Error, BatchDeleteVariables, unknown>;
137
+ };
138
+ /** Batch mutations for `POST /v1/availability/closeouts/batch-update|batch-delete`. */
139
+ export declare function useAvailabilityCloseoutBatchMutation(): {
140
+ batchUpdate: import("@tanstack/react-query").UseMutationResult<BatchUpdateResponse<{
141
+ id: string;
142
+ productId: string;
143
+ slotId: string | null;
144
+ dateLocal: string;
145
+ reason: string | null;
146
+ createdBy: string | null;
147
+ productName?: string | null | undefined;
148
+ }>, Error, BatchUpdateVariables<{
149
+ productId?: string | undefined;
150
+ slotId?: string | null | undefined;
151
+ dateLocal?: string | undefined;
152
+ reason?: string | null | undefined;
153
+ createdBy?: string | null | undefined;
154
+ }>, unknown>;
155
+ batchDelete: import("@tanstack/react-query").UseMutationResult<{
156
+ deletedIds: string[];
157
+ total: number;
158
+ succeeded: number;
159
+ failed: {
160
+ id: string;
161
+ error: string;
162
+ }[];
163
+ }, Error, BatchDeleteVariables, unknown>;
164
+ };
165
+ /** Batch mutations for `POST /v1/availability/pickup-points/batch-update|batch-delete`. */
166
+ export declare function useAvailabilityPickupPointBatchMutation(): {
167
+ batchUpdate: import("@tanstack/react-query").UseMutationResult<BatchUpdateResponse<{
168
+ id: string;
169
+ productId: string;
170
+ name: string;
171
+ description: string | null;
172
+ locationText: string | null;
173
+ active: boolean;
174
+ productName?: string | null | undefined;
175
+ }>, Error, BatchUpdateVariables<{
176
+ productId?: string | undefined;
177
+ facilityId?: string | null | undefined;
178
+ name?: string | undefined;
179
+ description?: string | null | undefined;
180
+ locationText?: string | null | undefined;
181
+ active?: boolean | undefined;
182
+ }>, unknown>;
183
+ batchDelete: import("@tanstack/react-query").UseMutationResult<{
184
+ deletedIds: string[];
185
+ total: number;
186
+ succeeded: number;
187
+ failed: {
188
+ id: string;
189
+ error: string;
190
+ }[];
191
+ }, Error, BatchDeleteVariables, unknown>;
192
+ };
193
+ //# sourceMappingURL=use-availability-batch-mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-availability-batch-mutations.d.ts","sourceRoot":"","sources":["../../src/hooks/use-availability-batch-mutations.ts"],"names":[],"mappings":"AAQA,OAAO,EAOL,KAAK,mBAAmB,EAQzB,MAAM,eAAe,CAAA;AAEtB,MAAM,WAAW,oBAAoB,CAAC,MAAM;IAC1C,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAoDD,mFAAmF;AACnF,wBAAgB,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/C;AAED,yFAAyF;AACzF,wBAAgB,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASpD;AAED,mFAAmF;AACnF,wBAAgB,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/C;AAED,uFAAuF;AACvF,wBAAgB,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;EAKnD;AAED,2FAA2F;AAC3F,wBAAgB,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;EAStD"}
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
3
+ import { fetchWithValidation } from "../client.js";
4
+ import { useVoyantAvailabilityContext } from "../provider.js";
5
+ import { availabilityQueryKeys } from "../query-keys.js";
6
+ import { availabilityCloseoutRecordSchema, availabilityPickupPointRecordSchema, availabilityRuleRecordSchema, availabilitySlotRecordSchema, availabilityStartTimeRecordSchema, batchDeleteEnvelope, batchUpdateEnvelope, } from "../schemas.js";
7
+ /**
8
+ * Shared plumbing for the `POST <entity>/batch-update` + `/batch-delete`
9
+ * endpoint pairs the availability module exposes for every list entity.
10
+ * Each mutation sends the whole id selection in one request and resolves
11
+ * the server's success/partial-failure envelope (`{ total, succeeded,
12
+ * failed }` plus the updated rows on update / `deletedIds` on delete) —
13
+ * callers branch their toasts on `failed.length`. Invalidation is scoped
14
+ * to the entity's query-key root, mirroring the single-record mutation
15
+ * hooks.
16
+ */
17
+ function useAvailabilityBatchMutationPair(basePath, recordSchema, queryKey) {
18
+ const { baseUrl, fetcher } = useVoyantAvailabilityContext();
19
+ const queryClient = useQueryClient();
20
+ const batchUpdate = useMutation({
21
+ mutationFn: async ({ ids, patch, }) => fetchWithValidation(`${basePath}/batch-update`, batchUpdateEnvelope(recordSchema), { baseUrl, fetcher }, { method: "POST", body: JSON.stringify({ ids, patch }) }),
22
+ onSuccess: async () => {
23
+ await queryClient.invalidateQueries({ queryKey: queryKey() });
24
+ },
25
+ });
26
+ const batchDelete = useMutation({
27
+ mutationFn: async ({ ids }) => fetchWithValidation(`${basePath}/batch-delete`, batchDeleteEnvelope, { baseUrl, fetcher }, { method: "POST", body: JSON.stringify({ ids }) }),
28
+ onSuccess: async () => {
29
+ await queryClient.invalidateQueries({ queryKey: queryKey() });
30
+ },
31
+ });
32
+ return { batchUpdate, batchDelete };
33
+ }
34
+ /** Batch mutations for `POST /v1/availability/rules/batch-update|batch-delete`. */
35
+ export function useAvailabilityRuleBatchMutation() {
36
+ return useAvailabilityBatchMutationPair("/v1/availability/rules", availabilityRuleRecordSchema, availabilityQueryKeys.rules);
37
+ }
38
+ /** Batch mutations for `POST /v1/availability/start-times/batch-update|batch-delete`. */
39
+ export function useAvailabilityStartTimeBatchMutation() {
40
+ return useAvailabilityBatchMutationPair("/v1/availability/start-times", availabilityStartTimeRecordSchema, availabilityQueryKeys.startTimes);
41
+ }
42
+ /** Batch mutations for `POST /v1/availability/slots/batch-update|batch-delete`. */
43
+ export function useAvailabilitySlotBatchMutation() {
44
+ return useAvailabilityBatchMutationPair("/v1/availability/slots", availabilitySlotRecordSchema, availabilityQueryKeys.slots);
45
+ }
46
+ /** Batch mutations for `POST /v1/availability/closeouts/batch-update|batch-delete`. */
47
+ export function useAvailabilityCloseoutBatchMutation() {
48
+ return useAvailabilityBatchMutationPair("/v1/availability/closeouts", availabilityCloseoutRecordSchema, availabilityQueryKeys.closeouts);
49
+ }
50
+ /** Batch mutations for `POST /v1/availability/pickup-points/batch-update|batch-delete`. */
51
+ export function useAvailabilityPickupPointBatchMutation() {
52
+ return useAvailabilityBatchMutationPair("/v1/availability/pickup-points", availabilityPickupPointRecordSchema, availabilityQueryKeys.pickupPoints);
53
+ }
@@ -0,0 +1,34 @@
1
+ import { type UpdateAvailabilityCloseoutInput } from "../schemas.js";
2
+ export declare function useAvailabilityCloseoutMutation(): {
3
+ create: import("@tanstack/react-query").UseMutationResult<{
4
+ id: string;
5
+ productId: string;
6
+ slotId: string | null;
7
+ dateLocal: string;
8
+ reason: string | null;
9
+ createdBy: string | null;
10
+ productName?: string | null | undefined;
11
+ }, Error, {
12
+ productId: string;
13
+ dateLocal: string;
14
+ slotId?: string | null | undefined;
15
+ reason?: string | null | undefined;
16
+ createdBy?: string | null | undefined;
17
+ }, unknown>;
18
+ update: import("@tanstack/react-query").UseMutationResult<{
19
+ id: string;
20
+ productId: string;
21
+ slotId: string | null;
22
+ dateLocal: string;
23
+ reason: string | null;
24
+ createdBy: string | null;
25
+ productName?: string | null | undefined;
26
+ }, Error, {
27
+ id: string;
28
+ input: UpdateAvailabilityCloseoutInput;
29
+ }, unknown>;
30
+ remove: import("@tanstack/react-query").UseMutationResult<{
31
+ success: boolean;
32
+ }, Error, string, unknown>;
33
+ };
34
+ //# sourceMappingURL=use-availability-closeout-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-availability-closeout-mutation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-availability-closeout-mutation.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,eAAe,CAAA;AAEtB,wBAAgB,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;YAuBH,MAAM;eAAS,+BAA+B;;;;;EA4BzF"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
3
+ import { fetchWithValidation } from "../client.js";
4
+ import { useVoyantAvailabilityContext } from "../provider.js";
5
+ import { availabilityQueryKeys } from "../query-keys.js";
6
+ import { availabilityCloseoutSingleResponse, successEnvelope, } from "../schemas.js";
7
+ export function useAvailabilityCloseoutMutation() {
8
+ const { baseUrl, fetcher } = useVoyantAvailabilityContext();
9
+ const queryClient = useQueryClient();
10
+ const create = useMutation({
11
+ mutationFn: async (input) => {
12
+ const { data } = await fetchWithValidation("/v1/availability/closeouts", availabilityCloseoutSingleResponse, { baseUrl, fetcher }, { method: "POST", body: JSON.stringify(input) });
13
+ return data;
14
+ },
15
+ onSuccess: async (data) => {
16
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.closeouts() });
17
+ await queryClient.invalidateQueries({
18
+ queryKey: availabilityQueryKeys.closeoutsList({ productId: data.productId }),
19
+ });
20
+ },
21
+ });
22
+ const update = useMutation({
23
+ mutationFn: async ({ id, input }) => {
24
+ const { data } = await fetchWithValidation(`/v1/availability/closeouts/${id}`, availabilityCloseoutSingleResponse, { baseUrl, fetcher }, { method: "PATCH", body: JSON.stringify(input) });
25
+ return data;
26
+ },
27
+ onSuccess: async () => {
28
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.closeouts() });
29
+ },
30
+ });
31
+ const remove = useMutation({
32
+ mutationFn: async (id) => fetchWithValidation(`/v1/availability/closeouts/${id}`, successEnvelope, { baseUrl, fetcher }, { method: "DELETE" }),
33
+ onSuccess: async () => {
34
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.closeouts() });
35
+ },
36
+ });
37
+ return { create, update, remove };
38
+ }
@@ -0,0 +1,35 @@
1
+ import { type UpdateAvailabilityPickupPointInput } from "../schemas.js";
2
+ export declare function useAvailabilityPickupPointMutation(): {
3
+ create: import("@tanstack/react-query").UseMutationResult<{
4
+ id: string;
5
+ productId: string;
6
+ name: string;
7
+ description: string | null;
8
+ locationText: string | null;
9
+ active: boolean;
10
+ productName?: string | null | undefined;
11
+ }, Error, {
12
+ productId: string;
13
+ name: string;
14
+ facilityId?: string | null | undefined;
15
+ description?: string | null | undefined;
16
+ locationText?: string | null | undefined;
17
+ active?: boolean | undefined;
18
+ }, unknown>;
19
+ update: import("@tanstack/react-query").UseMutationResult<{
20
+ id: string;
21
+ productId: string;
22
+ name: string;
23
+ description: string | null;
24
+ locationText: string | null;
25
+ active: boolean;
26
+ productName?: string | null | undefined;
27
+ }, Error, {
28
+ id: string;
29
+ input: UpdateAvailabilityPickupPointInput;
30
+ }, unknown>;
31
+ remove: import("@tanstack/react-query").UseMutationResult<{
32
+ success: boolean;
33
+ }, Error, string, unknown>;
34
+ };
35
+ //# sourceMappingURL=use-availability-pickup-point-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-availability-pickup-point-mutation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-availability-pickup-point-mutation.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,kCAAkC,EACxC,MAAM,eAAe,CAAA;AAEtB,wBAAgB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;YA2BxC,MAAM;eACH,kCAAkC;;;;;EA6B9C"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
3
+ import { fetchWithValidation } from "../client.js";
4
+ import { useVoyantAvailabilityContext } from "../provider.js";
5
+ import { availabilityQueryKeys } from "../query-keys.js";
6
+ import { availabilityPickupPointSingleResponse, successEnvelope, } from "../schemas.js";
7
+ export function useAvailabilityPickupPointMutation() {
8
+ const { baseUrl, fetcher } = useVoyantAvailabilityContext();
9
+ const queryClient = useQueryClient();
10
+ const create = useMutation({
11
+ mutationFn: async (input) => {
12
+ const { data } = await fetchWithValidation("/v1/availability/pickup-points", availabilityPickupPointSingleResponse, { baseUrl, fetcher }, { method: "POST", body: JSON.stringify(input) });
13
+ return data;
14
+ },
15
+ onSuccess: async (data) => {
16
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.pickupPoints() });
17
+ await queryClient.invalidateQueries({
18
+ queryKey: availabilityQueryKeys.pickupPointsList({ productId: data.productId }),
19
+ });
20
+ },
21
+ });
22
+ const update = useMutation({
23
+ mutationFn: async ({ id, input, }) => {
24
+ const { data } = await fetchWithValidation(`/v1/availability/pickup-points/${id}`, availabilityPickupPointSingleResponse, { baseUrl, fetcher }, { method: "PATCH", body: JSON.stringify(input) });
25
+ return data;
26
+ },
27
+ onSuccess: async () => {
28
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.pickupPoints() });
29
+ },
30
+ });
31
+ const remove = useMutation({
32
+ mutationFn: async (id) => fetchWithValidation(`/v1/availability/pickup-points/${id}`, successEnvelope, { baseUrl, fetcher }, { method: "DELETE" }),
33
+ onSuccess: async () => {
34
+ await queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.pickupPoints() });
35
+ },
36
+ });
37
+ return { create, update, remove };
38
+ }
package/dist/schemas.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { insertAllocationResourceSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema } from "@voyantjs/availability";
1
+ import { insertAllocationResourceSchema, insertAvailabilityCloseoutSchema, insertAvailabilityPickupPointSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityCloseoutSchema, updateAvailabilityPickupPointSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema } from "@voyantjs/availability";
2
2
  import { z } from "zod";
3
3
  export declare const paginatedEnvelope: <T extends z.ZodTypeAny>(item: T) => z.ZodObject<{
4
4
  data: z.ZodArray<T>;
@@ -12,6 +12,41 @@ export declare const singleEnvelope: <T extends z.ZodTypeAny>(item: T) => z.ZodO
12
12
  export declare const successEnvelope: z.ZodObject<{
13
13
  success: z.ZodBoolean;
14
14
  }, z.core.$strip>;
15
+ export declare const batchFailureSchema: z.ZodObject<{
16
+ id: z.ZodString;
17
+ error: z.ZodString;
18
+ }, z.core.$strip>;
19
+ export type BatchFailure = z.infer<typeof batchFailureSchema>;
20
+ /**
21
+ * Envelope of the availability `POST <entity>/batch-update` endpoints
22
+ * (success/partial-failure: `failed` lists the ids that were not found).
23
+ */
24
+ export declare const batchUpdateEnvelope: <T extends z.ZodTypeAny>(item: T) => z.ZodObject<{
25
+ data: z.ZodArray<T>;
26
+ total: z.ZodNumber;
27
+ succeeded: z.ZodNumber;
28
+ failed: z.ZodArray<z.ZodObject<{
29
+ id: z.ZodString;
30
+ error: z.ZodString;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
33
+ /** Envelope of the availability `POST <entity>/batch-delete` endpoints. */
34
+ export declare const batchDeleteEnvelope: z.ZodObject<{
35
+ deletedIds: z.ZodArray<z.ZodString>;
36
+ total: z.ZodNumber;
37
+ succeeded: z.ZodNumber;
38
+ failed: z.ZodArray<z.ZodObject<{
39
+ id: z.ZodString;
40
+ error: z.ZodString;
41
+ }, z.core.$strip>>;
42
+ }, z.core.$strip>;
43
+ export type BatchUpdateResponse<TRecord> = {
44
+ data: TRecord[];
45
+ total: number;
46
+ succeeded: number;
47
+ failed: BatchFailure[];
48
+ };
49
+ export type BatchDeleteResponse = z.infer<typeof batchDeleteEnvelope>;
15
50
  export declare const productOptionSchema: z.ZodObject<{
16
51
  id: z.ZodString;
17
52
  name: z.ZodString;
@@ -426,6 +461,17 @@ export declare const availabilityCloseoutListResponse: z.ZodObject<{
426
461
  limit: z.ZodNumber;
427
462
  offset: z.ZodNumber;
428
463
  }, z.core.$strip>;
464
+ export declare const availabilityCloseoutSingleResponse: z.ZodObject<{
465
+ data: z.ZodObject<{
466
+ id: z.ZodString;
467
+ productId: z.ZodString;
468
+ productName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
469
+ slotId: z.ZodNullable<z.ZodString>;
470
+ dateLocal: z.ZodString;
471
+ reason: z.ZodNullable<z.ZodString>;
472
+ createdBy: z.ZodNullable<z.ZodString>;
473
+ }, z.core.$strip>;
474
+ }, z.core.$strip>;
429
475
  export declare const availabilityPickupPointListResponse: z.ZodObject<{
430
476
  data: z.ZodArray<z.ZodObject<{
431
477
  id: z.ZodString;
@@ -440,6 +486,17 @@ export declare const availabilityPickupPointListResponse: z.ZodObject<{
440
486
  limit: z.ZodNumber;
441
487
  offset: z.ZodNumber;
442
488
  }, z.core.$strip>;
489
+ export declare const availabilityPickupPointSingleResponse: z.ZodObject<{
490
+ data: z.ZodObject<{
491
+ id: z.ZodString;
492
+ productId: z.ZodString;
493
+ productName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
494
+ name: z.ZodString;
495
+ description: z.ZodNullable<z.ZodString>;
496
+ locationText: z.ZodNullable<z.ZodString>;
497
+ active: z.ZodBoolean;
498
+ }, z.core.$strip>;
499
+ }, z.core.$strip>;
443
500
  export declare const availabilitySlotPickupListResponse: z.ZodObject<{
444
501
  data: z.ZodArray<z.ZodObject<{
445
502
  id: z.ZodString;
@@ -900,7 +957,7 @@ export declare const slotUnitAvailabilityListResponse: z.ZodObject<{
900
957
  remaining: z.ZodNullable<z.ZodNumber>;
901
958
  }, z.core.$strip>>;
902
959
  }, z.core.$strip>;
903
- export { insertAllocationResourceSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, };
960
+ export { insertAllocationResourceSchema, insertAvailabilityCloseoutSchema, insertAvailabilityPickupPointSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityCloseoutSchema, updateAvailabilityPickupPointSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, };
904
961
  export type CreateAllocationResourceInput = z.input<typeof insertAllocationResourceSchema>;
905
962
  export type UpdateAllocationResourceInput = z.input<typeof updateAllocationResourceSchema>;
906
963
  export type UpsertResourceTemplateInput = z.input<typeof upsertResourceTemplateSchema>;
@@ -910,4 +967,8 @@ export type CreateAvailabilityStartTimeInput = z.input<typeof insertAvailability
910
967
  export type UpdateAvailabilityStartTimeInput = z.input<typeof updateAvailabilityStartTimeSchema>;
911
968
  export type CreateAvailabilitySlotInput = z.input<typeof insertAvailabilitySlotSchema>;
912
969
  export type UpdateAvailabilitySlotInput = z.input<typeof updateAvailabilitySlotSchema>;
970
+ export type CreateAvailabilityCloseoutInput = z.input<typeof insertAvailabilityCloseoutSchema>;
971
+ export type UpdateAvailabilityCloseoutInput = z.input<typeof updateAvailabilityCloseoutSchema>;
972
+ export type CreateAvailabilityPickupPointInput = z.input<typeof insertAvailabilityPickupPointSchema>;
973
+ export type UpdateAvailabilityPickupPointInput = z.input<typeof updateAvailabilityPickupPointSchema>;
913
974
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/dist/schemas.js CHANGED
@@ -1,4 +1,4 @@
1
- import { insertAllocationResourceSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, } from "@voyantjs/availability";
1
+ import { insertAllocationResourceSchema, insertAvailabilityCloseoutSchema, insertAvailabilityPickupPointSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityCloseoutSchema, updateAvailabilityPickupPointSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, } from "@voyantjs/availability";
2
2
  import { z } from "zod";
3
3
  export const paginatedEnvelope = (item) => z.object({
4
4
  data: z.array(item),
@@ -8,6 +8,24 @@ export const paginatedEnvelope = (item) => z.object({
8
8
  });
9
9
  export const singleEnvelope = (item) => z.object({ data: item });
10
10
  export const successEnvelope = z.object({ success: z.boolean() });
11
+ export const batchFailureSchema = z.object({ id: z.string(), error: z.string() });
12
+ /**
13
+ * Envelope of the availability `POST <entity>/batch-update` endpoints
14
+ * (success/partial-failure: `failed` lists the ids that were not found).
15
+ */
16
+ export const batchUpdateEnvelope = (item) => z.object({
17
+ data: z.array(item),
18
+ total: z.number().int(),
19
+ succeeded: z.number().int(),
20
+ failed: z.array(batchFailureSchema),
21
+ });
22
+ /** Envelope of the availability `POST <entity>/batch-delete` endpoints. */
23
+ export const batchDeleteEnvelope = z.object({
24
+ deletedIds: z.array(z.string()),
25
+ total: z.number().int(),
26
+ succeeded: z.number().int(),
27
+ failed: z.array(batchFailureSchema),
28
+ });
11
29
  export const productOptionSchema = z.object({
12
30
  id: z.string(),
13
31
  name: z.string(),
@@ -143,7 +161,9 @@ export const availabilityOverviewResponse = singleEnvelope(z.object({
143
161
  constrainedSlots: z.array(availabilitySlotRecordSchema),
144
162
  }));
145
163
  export const availabilityCloseoutListResponse = paginatedEnvelope(availabilityCloseoutRecordSchema);
164
+ export const availabilityCloseoutSingleResponse = singleEnvelope(availabilityCloseoutRecordSchema);
146
165
  export const availabilityPickupPointListResponse = paginatedEnvelope(availabilityPickupPointRecordSchema);
166
+ export const availabilityPickupPointSingleResponse = singleEnvelope(availabilityPickupPointRecordSchema);
147
167
  export const availabilitySlotPickupListResponse = paginatedEnvelope(availabilitySlotPickupRecordSchema);
148
168
  export const availabilitySlotAssignmentListResponse = paginatedEnvelope(availabilitySlotAssignmentRecordSchema);
149
169
  export const bookingSummaryListResponse = paginatedEnvelope(bookingSummarySchema);
@@ -306,4 +326,4 @@ export const slotUnitAvailabilityRecordSchema = z.object({
306
326
  export const slotUnitAvailabilityListResponse = z.object({
307
327
  data: z.array(slotUnitAvailabilityRecordSchema),
308
328
  });
309
- export { insertAllocationResourceSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, };
329
+ export { insertAllocationResourceSchema, insertAvailabilityCloseoutSchema, insertAvailabilityPickupPointSchema, insertAvailabilityRuleSchema, insertAvailabilitySlotSchema, insertAvailabilityStartTimeSchema, updateAllocationResourceSchema, updateAvailabilityCloseoutSchema, updateAvailabilityPickupPointSchema, updateAvailabilityRuleSchema, updateAvailabilitySlotSchema, updateAvailabilityStartTimeSchema, upsertResourceTemplateSchema, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/availability-react",
3
- "version": "0.105.1",
3
+ "version": "0.106.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,7 +41,7 @@
41
41
  "react": "^19.0.0",
42
42
  "react-dom": "^19.0.0",
43
43
  "zod": "^4.0.0",
44
- "@voyantjs/availability": "^0.105.1"
44
+ "@voyantjs/availability": "^0.106.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@tanstack/react-query": "^5.100.11",
@@ -52,7 +52,7 @@
52
52
  "typescript": "^6.0.2",
53
53
  "vitest": "^4.1.2",
54
54
  "zod": "^4.3.6",
55
- "@voyantjs/availability": "^0.105.1",
55
+ "@voyantjs/availability": "^0.106.0",
56
56
  "@voyantjs/react": "^0.104.1",
57
57
  "@voyantjs/voyant-typescript-config": "^0.1.0"
58
58
  },