import { useMutation, useQueryClient } from "@tanstack/react-query"; import { api } from "@/services/api"; import type { BookingListFilter } from "@/services/bookings.service"; export const useBookingList = (filter?: BookingListFilter) => { const input = { filter }; return { queryKey: api.bookings.list.queryKey(input), queryFn: () => api.bookings.list.call(input), }; }; export const useBooking = (id: string) => ({ queryKey: api.bookings.getById.queryKey({ id }), queryFn: () => api.bookings.getById.call({ id }), enabled: Boolean(id), }); export const useUpdateBookingStatus = () => { const qc = useQueryClient(); return useMutation({ mutationFn: ({ id, action, reason, }: { id: string; action: string; reason?: string; }) => api.bookings.updateStatus.call({ id, action, reason }), onSuccess: (_data, { id }) => { qc.invalidateQueries({ queryKey: api.bookings.list.queryKey() }); qc.invalidateQueries({ queryKey: api.bookings.getById.queryKey({ id }), }); }, }); }; export const useDeleteBooking = () => { const qc = useQueryClient(); return useMutation({ mutationFn: (id: string) => api.bookings.remove.call({ id }), onSuccess: () => qc.invalidateQueries({ queryKey: api.bookings.list.queryKey() }), }); };