import { useMutation, useQuery } from "@tanstack/react-query"; import * as api from "../service/OrderService"; import type { AddTicketType, OrderPrintFormType, UpdateOrderType, } from "../types/Types"; export const useGetOrders = (params?: api.GetOrdersParams) => { return useQuery({ queryKey: ["orders", params], queryFn: () => api.getOrders(params), }); }; export const useGetOrdersInvoiced = (page: number = 1) => { return useQuery({ queryKey: ["orders-invoiced", page], queryFn: () => api.getOrdersInvoiced(page), }); }; export const useGetRequests = () => { return useQuery({ queryKey: ["requests"], queryFn: api.getRequests, }); }; export const useGetOrderDetails = (id: string) => { return useQuery({ queryKey: ["order", id], queryFn: () => api.getOrderDetail(id), enabled: !!id, }); }; export const useGetTickets = (orderId: string) => { return useQuery({ queryKey: ["tickets", orderId], queryFn: () => api.getTickets(orderId), enabled: !!orderId, }); }; export const useAddTicket = () => { return useMutation({ mutationFn: ({ orderId, params, }: { orderId: string; params: AddTicketType; }) => api.addTicket(orderId, params), }); }; export const useCreateOrder = () => { return useMutation({ mutationFn: api.submitOrder, }); }; export const useConverToOrder = () => { return useMutation({ mutationFn: api.converToOrder, }); }; export const useUpdateOrder = () => { return useMutation({ mutationFn: ({ orderId, params, }: { orderId: string; params: UpdateOrderType; }) => api.updateOrder(orderId, params), }); }; export const useGetProducts = () => { return useQuery({ queryKey: ["products"], queryFn: api.getProducts, }); }; export const useGetAttributes = (id?: string) => { return useQuery({ queryKey: ["attributes", id], queryFn: () => api.getAttributes(id), enabled: !!id, }); }; export const useGetOrderItem = (id?: string) => { return useQuery({ queryKey: ["order-item", id], queryFn: () => api.getOrderItem(id), enabled: !!id, }); }; export const useSubmitOrderPrint = () => { return useMutation({ mutationFn: ({ orderId, params, }: { orderId: string; params: OrderPrintFormType; }) => api.submitOrderPrint(orderId, params), }); }; export const useGetOrderPrint = (orderId: string) => { return useQuery({ queryKey: ["order-print", orderId], queryFn: () => api.getOrderPrint(orderId), enabled: !!orderId, }); };