74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
|
|
import { ENDPOINT } from "@/shared/config";
|
|
|
|
import type {
|
|
AcntgSeMngPutRequestDto,
|
|
AcntgSeMngSaveRequestDto,
|
|
AcntgSeMngSearchDto,
|
|
} from "../model/acntg-interface";
|
|
|
|
import { acntgSeMngService } from "./acntg-service";
|
|
|
|
const acntgSeMngBaseKey = [ENDPOINT.AS_COMMON_SERVICE.ACNTG_SE] as const;
|
|
|
|
export function useAcntgSeMngPage(params: AcntgSeMngSearchDto) {
|
|
return useQuery({
|
|
queryKey: [...acntgSeMngBaseKey, "findAll", params],
|
|
queryFn: () => acntgSeMngService.findAll(params),
|
|
});
|
|
}
|
|
|
|
export function useAcntgSeMngTree() {
|
|
return useQuery({
|
|
queryKey: [...acntgSeMngBaseKey, "findTree"],
|
|
queryFn: () => acntgSeMngService.findTree(),
|
|
staleTime: Infinity,
|
|
});
|
|
}
|
|
|
|
export function useAcntgSeMng(acntgSeCd: string | null | undefined) {
|
|
return useQuery({
|
|
queryKey: [...acntgSeMngBaseKey, "findById", acntgSeCd],
|
|
queryFn: () => acntgSeMngService.findById(acntgSeCd!),
|
|
enabled: Boolean(acntgSeCd),
|
|
});
|
|
}
|
|
|
|
export function useSaveMultiAcntgSeMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (body: AcntgSeMngSaveRequestDto[]) => acntgSeMngService.saveMulti(body),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: acntgSeMngBaseKey });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useUpdateAcntgSeMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({ acntgSeCd, body }: { acntgSeCd: string; body: AcntgSeMngPutRequestDto }) =>
|
|
acntgSeMngService.update(acntgSeCd, body),
|
|
onSuccess: (_data, { acntgSeCd }) => {
|
|
queryClient.invalidateQueries({ queryKey: acntgSeMngBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...acntgSeMngBaseKey, "findById", acntgSeCd],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDeleteAcntgSeMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (acntgSeCd: string) => acntgSeMngService.delete(acntgSeCd),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: acntgSeMngBaseKey });
|
|
},
|
|
});
|
|
}
|