import { useMutation, useQueryClient } from '@tanstack/react-query' import { createEncounter, updateEncounter, deleteEncounter, } from '../api/encounters' import type { CreateEncounterInput, UpdateEncounterInput } from '../types/game' export function useCreateEncounter(runId: number) { const queryClient = useQueryClient() return useMutation({ mutationFn: (data: CreateEncounterInput) => createEncounter(runId, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs', runId] }) }, }) } export function useUpdateEncounter(runId: number) { const queryClient = useQueryClient() return useMutation({ mutationFn: ({ id, data, }: { id: number data: UpdateEncounterInput }) => updateEncounter(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs', runId] }) }, }) } export function useDeleteEncounter(runId: number) { const queryClient = useQueryClient() return useMutation({ mutationFn: (id: number) => deleteEncounter(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['runs', runId] }) }, }) }