"use client"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { api } from "@/lib/api"; import { useAuthContext } from "@/context/auth-context"; export function useProviderConfigs() { const { token } = useAuthContext(); return useQuery({ queryKey: ["admin", "providers"], queryFn: () => api.admin.providers.getProviders(token!), enabled: !!token, }); } export function useCreateProvider() { const { token } = useAuthContext(); const qc = useQueryClient(); return useMutation({ mutationFn: (payload: { id: string; provider_type: string; config_json: Record; enabled: boolean; }) => api.admin.providers.createProvider(token!, payload), onSuccess: () => qc.invalidateQueries({ queryKey: ["admin", "providers"] }), }); } export function useUpdateProvider() { const { token } = useAuthContext(); const qc = useQueryClient(); return useMutation({ mutationFn: ({ id, payload, }: { id: string; payload: { config_json: Record; enabled: boolean }; }) => api.admin.providers.updateProvider(token!, id, payload), onSuccess: () => qc.invalidateQueries({ queryKey: ["admin", "providers"] }), }); } export function useDeleteProvider() { const { token } = useAuthContext(); const qc = useQueryClient(); return useMutation({ mutationFn: (id: string) => api.admin.providers.deleteProvider(token!, id), onSuccess: () => qc.invalidateQueries({ queryKey: ["admin", "providers"] }), }); } export function useTestProvider() { const { token } = useAuthContext(); return useMutation({ mutationFn: (payload: { provider_type: string; config_json: Record; }) => api.admin.providers.testProvider(token!, payload), }); }