import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { getTenants, createTenant, updateTenant, deleteTenant, type CreateTenantData, type UpdateTenantData } from '@/lib/api/tenants'; import { useAuthStore } from '@/stores/auth-store'; import { isGlobalAdminRfc } from '@horux/shared'; export function useTenants() { const user = useAuthStore(s => s.user); const isGlobal = isGlobalAdminRfc(user?.tenantRfc, user?.role, user?.platformRoles); return useQuery({ queryKey: ['tenants'], queryFn: getTenants, enabled: isGlobal, }); } export function useCreateTenant() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (data: CreateTenantData) => createTenant(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['tenants'] }); }, }); } export function useUpdateTenant() { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ id, data }: { id: string; data: UpdateTenantData }) => updateTenant(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['tenants'] }); }, }); } export function useDeleteTenant() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (id: string) => deleteTenant(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['tenants'] }); }, }); }