import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { api, type TargetsParams } from '../api'; export function useTargets(params: TargetsParams = {}) { return useQuery({ queryKey: ['targets', params], queryFn: () => api.targets.list(params), staleTime: 30_000, }); } export function useTarget(id: string) { return useQuery({ queryKey: ['target', id], queryFn: () => api.targets.get(id), enabled: !!id, staleTime: 5 * 60_000, }); } export function useTargetVisibility(id: string) { return useQuery({ queryKey: ['target-visibility', id], queryFn: () => api.targets.visibility(id), enabled: !!id, staleTime: 5 * 60_000, }); } export function useTargetCurve(id: string) { return useQuery({ queryKey: ['target-curve', id], queryFn: () => api.targets.curve(id), enabled: !!id, staleTime: 5 * 60_000, }); } export function useTargetFilters(id: string) { return useQuery({ queryKey: ['target-filters', id], queryFn: () => api.targets.filters(id), enabled: !!id, staleTime: 5 * 60_000, }); } export function useTargetWorkflow(id: string, filterId: string) { return useQuery({ queryKey: ['target-workflow', id, filterId], queryFn: () => api.targets.workflow(id, filterId), enabled: !!id && !!filterId, staleTime: 60 * 60_000, }); } export function useTargetYearly(id: string, enabled = false) { return useQuery({ queryKey: ['target-yearly', id], queryFn: () => api.targets.yearly(id), enabled: !!id && enabled, staleTime: 60 * 60_000, }); }