import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { fetchLLMConfigs, createLLMConfig, updateLLMConfig, setDefaultLLMConfig, deleteLLMConfig } from './llmConfigApi'; export const useLLMConfigs = () => { const queryClient = useQueryClient(); const { data: configs = [], isLoading, error } = useQuery({ queryKey: ['llmConfigs'], queryFn: fetchLLMConfigs, }); const createMutation = useMutation({ mutationFn: createLLMConfig, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmConfigs'] }); }, }); const updateMutation = useMutation({ mutationFn: updateLLMConfig, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmConfigs'] }); }, }); const setDefaultMutation = useMutation({ mutationFn: setDefaultLLMConfig, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmConfigs'] }); }, }); const deleteMutation = useMutation({ mutationFn: deleteLLMConfig, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['llmConfigs'] }); }, }); return { configs, isLoading, error: error ? (error instanceof Error ? error.message : 'Failed to fetch configurations') : null, createConfig: createMutation.mutateAsync, updateConfig: updateMutation.mutateAsync, setAsDefaultConfig: setDefaultMutation.mutateAsync, deleteConfig: deleteMutation.mutateAsync, }; };