import { axiosInstance } from '@/api/rbac' import { assertBusinessOk, omsUrl, parseListPayload, unwrapData } from '@/api/oms/common' function postOk(path: string, body: Record) { return axiosInstance.post(omsUrl(path), body).then((res) => { assertBusinessOk(res.data) return unwrapData(res.data) }) } function getData(path: string, params?: Record) { return axiosInstance.get(omsUrl(path), { params }).then((res) => unwrapData(res.data)) } export type PickupOrderCreateBody = { customerId?: number senderAddressId: number /** forward 正向 / reverse 逆向 */ direction?: 'forward' | 'reverse' | string warehouseId: number carrierCode?: string carrierService?: string expectPickupTime: string orderIds: Array remark?: string freightAmount?: number } export const createPickupOrderV2 = (body: PickupOrderCreateBody) => postOk('/order/pickup-order/create', body as unknown as Record) export const getPickupOrderList = (body: Record) => axiosInstance.post(omsUrl('/order/pickup-order/list'), body).then((res) => parseListPayload(res.data)) export const getPickupOrderStatusCounts = (params?: { customerId?: number direction?: string }) => getData('/order/pickup-order/status-counts', params as Record | undefined) export const getPickupOrderDetail = (id: number | string) => getData('/order/pickup-order/detail', { id }) export const addPickupOrderOrders = (body: { id: number | string; orderIds: Array }) => postOk('/order/pickup-order/add-orders', body as unknown as Record) export const removePickupOrderOrders = (body: { id: number | string; orderIds: Array }) => postOk('/order/pickup-order/remove-orders', body as unknown as Record) export const cancelPickupOrder = (id: number | string) => postOk('/order/pickup-order/cancel', { id }) export const confirmPickupFreight = (body: { id: number | string freightAmount: number otherFeeAmount?: number carrierPayableAmount?: number }) => postOk('/order/pickup-order/confirm-freight', body as unknown as Record) export const payPickupOrder = (id: number | string) => postOk('/order/pickup-order/pay', { id }) export const payPickupOrderBatch = (ids: Array) => postOk('/order/pickup-order/pay-batch', { ids }) export const schedulePickupOrder = (body: { id: number | string carrierService: string carrierCode?: string carrierWaybillNo?: string expectPickupTime?: string }) => postOk('/order/pickup-order/schedule', body as unknown as Record) export const reschedulePickupOrder = (body: { id: number | string; expectPickupTime: string }) => postOk('/order/pickup-order/reschedule', body as unknown as Record) export const markPickupPicked = (id: number | string) => postOk('/order/pickup-order/mark-picked', { id }) export const markPickupInbound = (id: number | string) => postOk('/order/pickup-order/mark-inbound', { id })