import axios from "@/config/axios"; import type { AddTicketType, AttributeResponseType, MyOrdersResponseType, OrderDetailResponseType, OrderType, ProductsResponseType, TicketsResponseType, } from "../type/Types"; import { OrderStatusEnum, TabMyOrdersEnum } from "../enum/OrderEnum"; export const getProducts = async () => { const { data } = await axios.get(`/public/products`); return data; }; export const getAttributes = async (productId?: string) => { const { data } = await axios.get( `/public/entity/${productId}/field`, ); return data; }; export const submitOrder = async (params: OrderType[]) => { const { data } = await axios.post(`/public/orders`, { items: params }); return data; }; export const getMyOrders = async ( page: number = 1, active: TabMyOrdersEnum, ) => { const statuses = active === TabMyOrdersEnum.IN_PROGRESS ? [ OrderStatusEnum.DESIGN_FINISHED, OrderStatusEnum.DESIGN_INITIATED, OrderStatusEnum.DESIGN_REVISION, OrderStatusEnum.IN_PRINTING, OrderStatusEnum.AFTER_PRINT_BOXING, OrderStatusEnum.AFTER_PRINT_CARTONING, OrderStatusEnum.AFTER_PRINT_COVER, OrderStatusEnum.READY_FOR_DELIVERY, OrderStatusEnum.READY_TO_PRINTING, ] : active === TabMyOrdersEnum.CANCELLED ? [OrderStatusEnum.CANCELED] : active === TabMyOrdersEnum.DELIVERED ? [OrderStatusEnum.DELIVERED] : undefined; let query = `?page=${page}`; if (statuses) { query += `&statuses=${statuses}`; } const { data } = await axios.get( `/public/orders${query}`, ); return data; }; export const getOrderDetails = async (id: string) => { const { data } = await axios.get( `/public/orders/${id}`, ); return data; }; export const getTickets = async (id: string) => { const { data } = await axios.get( `/public/ticket/order/item/${id}`, ); return data; }; export const addTicket = async (id: string, params: AddTicketType) => { const { data } = await axios.post(`/public/ticket/order/item/${id}`, params); return data; };