import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { contentService } from "./services"; import { QUERY_KEYS } from "@/config/constants"; import type { ContentInput, ContentUpdateInput, CmsType } from "./schemas"; export const useContentList = (cmsType: CmsType) => { return useQuery({ queryKey: [QUERY_KEYS.CMS_CONTENT, cmsType], queryFn: () => contentService.getAll(cmsType), }); }; export const useCreateContent = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: (data: ContentInput) => contentService.create(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.CMS_CONTENT] }); }, }); }; export const useUpdateContent = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ id, data }: { id: string; data: ContentUpdateInput }) => contentService.update(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.CMS_CONTENT] }); }, }); }; export const useDeleteContent = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: (id: string) => contentService.delete(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.CMS_CONTENT] }); }, }); };