import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import * as api from "../service/TicketServiec"; import { AddMessageTicketType, CreateCategoryType, CreateTicketAdminType, } from "../types/TicketTypes"; export const useGetTickets = ( status: string, customerId?: string, page?: number ) => { return useQuery({ queryKey: ["tickets", status, customerId, page], queryFn: () => api.getTickets(status, customerId, page), }); }; export const useGetMessages = (id: string) => { return useQuery({ queryKey: ["ticket-messages", id], queryFn: () => api.getMessages(id), enabled: !!id, }); }; export const useAddMessageTicket = (id: string) => { const queryClient = useQueryClient(); return useMutation({ mutationFn: (variables: AddMessageTicketType) => api.addMessageTicket(id, variables), onSuccess: () => { queryClient.refetchQueries({ queryKey: ["ticket-messages", id], }); }, }); }; export const useCloseTicket = () => { return useMutation({ mutationFn: (id: string) => api.closeTicket(id), }); }; export const useCreateCategory = () => { return useMutation({ mutationFn: (variables: CreateCategoryType) => api.createCategory(variables), }); }; export const useGetCategories = () => { return useQuery({ queryKey: ["categories"], queryFn: () => api.getCategories(), }); }; export const useReferTicket = () => { return useMutation({ mutationFn: (variables: { id: string; userId: string }) => api.referTicket(variables.id, variables.userId), }); }; export const useOpenTicket = () => { return useMutation({ mutationFn: (id: string) => api.openTicket(id), }); }; export const useCreateTicket = () => { return useMutation({ mutationFn: (variables: CreateTicketAdminType) => api.createTicket(variables), }); };