// imports import { useMutation } from "@tanstack/vue-query"; import { API_ENDPOINTS } from "~/constants"; // types export type CreateTicketRequest = { ticket_category: string | undefined; order: number | undefined; subject: string; content: string; attachments: ServerFile[]; }; const useCreateTicket = () => { // state const { $axios: axios } = useNuxtApp(); // methods const handleCreateTicket = async (params: CreateTicketRequest) => { const { data } = await axios.post( API_ENDPOINTS.tickets.create, { message: { content: params.content, attachments: params.attachments, }, subject: params.subject, ticket_category: params.ticket_category, order: params.order, }, { headers: { "Content-Type": "multipart/form-data", }, } ); return data; }; return useMutation({ mutationFn: (ticketData: CreateTicketRequest) => handleCreateTicket(ticketData), }); }; export default useCreateTicket;