task-d complate

This commit is contained in:
phaichayon
2026-06-15 13:46:33 +07:00
parent 8148850fda
commit 1d2406483e
32 changed files with 4812 additions and 39 deletions

View File

@@ -0,0 +1,74 @@
import { mutationOptions } from '@tanstack/react-query';
import { getQueryClient } from '@/lib/query-client';
import {
createEnquiry,
createEnquiryFollowup,
deleteEnquiry,
deleteEnquiryFollowup,
updateEnquiry,
updateEnquiryFollowup
} from './service';
import { enquiryKeys } from './queries';
import type { EnquiryFollowupMutationPayload, EnquiryMutationPayload } from './types';
export const createEnquiryMutation = mutationOptions({
mutationFn: (data: EnquiryMutationPayload) => createEnquiry(data),
onSuccess: () => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.all });
}
});
export const updateEnquiryMutation = mutationOptions({
mutationFn: ({ id, values }: { id: string; values: EnquiryMutationPayload }) =>
updateEnquiry(id, values),
onSuccess: (_data, variables) => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.all });
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.detail(variables.id) });
}
});
export const deleteEnquiryMutation = mutationOptions({
mutationFn: (id: string) => deleteEnquiry(id),
onSuccess: () => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.all });
}
});
export const createEnquiryFollowupMutation = mutationOptions({
mutationFn: ({
enquiryId,
values
}: {
enquiryId: string;
values: EnquiryFollowupMutationPayload;
}) => createEnquiryFollowup(enquiryId, values),
onSuccess: (_data, variables) => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.followups(variables.enquiryId) });
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.detail(variables.enquiryId) });
}
});
export const updateEnquiryFollowupMutation = mutationOptions({
mutationFn: ({
enquiryId,
followupId,
values
}: {
enquiryId: string;
followupId: string;
values: EnquiryFollowupMutationPayload;
}) => updateEnquiryFollowup(enquiryId, followupId, values),
onSuccess: (_data, variables) => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.followups(variables.enquiryId) });
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.detail(variables.enquiryId) });
}
});
export const deleteEnquiryFollowupMutation = mutationOptions({
mutationFn: ({ enquiryId, followupId }: { enquiryId: string; followupId: string }) =>
deleteEnquiryFollowup(enquiryId, followupId),
onSuccess: (_data, variables) => {
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.followups(variables.enquiryId) });
getQueryClient().invalidateQueries({ queryKey: enquiryKeys.detail(variables.enquiryId) });
}
});