import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { getRuns, getRun, createRun, updateRun, deleteRun } from '../api/runs' import type { CreateRunInput, UpdateRunInput } from '../types/game' export function useRuns() { return useQuery({ queryKey: ['runs'], queryFn: getRuns, }) } export function useRun(id: number) { return useQuery({ queryKey: ['runs', id], queryFn: () => getRun(id), }) } export function useCreateRun() { const queryClient = useQueryClient() return useMutation({ mutationFn: (data: CreateRunInput) => createRun(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs'] }) }, }) } export function useUpdateRun(id: number) { const queryClient = useQueryClient() return useMutation({ mutationFn: (data: UpdateRunInput) => updateRun(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs'] }) }, }) } export function useDeleteRun() { const queryClient = useQueryClient() return useMutation({ mutationFn: (id: number) => deleteRun(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs'] }) }, }) }