import api from '..';
const ORDERS_API = '/order';
export const ordersApi = api.injectEndpoints({
endpoints: (build) => ({
getAllOrders: build.query<
ResponseI<{
teacherOrders: OrderI[];
schoolOrders: OrderI[];
}>,
void
>({
query: () => ({
url: `${ORDERS_API}`,
method: 'GET',
}),
providesTags: ['orders','users','teachers'],
}),
getOrderById: build.query<ResponseI<OrderI>, number>({
query: (orderId) => ({
url: `${ORDERS_API}/${orderId}`,
method: 'GET',
}),
providesTags: ['orders'],
}),
deleteOrder: build.mutation<
ResponseI<null>,
{
order_id: number;
}
>({
query: ({ order_id }) => ({
url: `${ORDERS_API}/delete/${order_id}`,
method: 'DELETE',
}),
invalidatesTags: ['orders'],
}),
createOrder: build.mutation<ResponseI<null>, OrderFormI>({
query: (body) => ({
url: `${ORDERS_API}/create`,
method: 'POST',
body: body,
}),
invalidatesTags: ['orders'],
}),
updateSchoolOrder: build.mutation<ResponseI<null>, OrderFormI>({
query: (body) => ({
url: `${ORDERS_API}/update/school/${body.order_id}`,
method: 'PUT',
body: body,
}),
invalidatesTags: ['orders'],
}),
updateTeacherOrder: build.mutation<ResponseI<null>, OrderFormI>({
query: (body) => ({
url: `${ORDERS_API}/update/teacher/${body.order_id}`,
method: 'PUT',
body: body,
}),
invalidatesTags: ['orders'],
}),
}),
});
export const {
useGetAllOrdersQuery,
useDeleteOrderMutation,
useCreateOrderMutation,
useGetOrderByIdQuery,
useUpdateSchoolOrderMutation,
useUpdateTeacherOrderMutation,
} = ordersApi;