import { apiRequest } from '@/api/http.js' const ROOT = '/first-leg/pda-dropship' function operationId(action, taskId) { const random = Math.random().toString(36).slice(2, 10) return `pda-dropship-${action}-${taskId}-${Date.now()}-${random}`.slice(0, 128) } export function listDropshipPalletizationTasks(keyword = '') { const query = String(keyword || '').trim() return apiRequest({ url: `${ROOT}/tasks/pending${query ? `?keyword=${encodeURIComponent(query)}` : ''}`, method: 'GET' }) } export function getDropshipPalletizationTask(taskId, warehouseId) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}?warehouseId=${encodeURIComponent(warehouseId)}`, method: 'GET' }) } export function claimDropshipPalletizationTask(taskId, warehouseId) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/claim`, method: 'POST', data: { warehouseId } }) } export function resolveDropshipCarton(taskId, warehouseId, boxCode) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/cartons/resolve?warehouseId=${encodeURIComponent(warehouseId)}&boxCode=${encodeURIComponent(String(boxCode || '').trim())}`, method: 'GET' }) } export function countDropshipCarton(taskId, payload) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/cartons/count`, method: 'POST', data: { ...payload, operationId: payload.operationId || operationId('count', taskId) } }) } export function bindDropshipPendingCartons(taskId, warehouseId, palletNo) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/pallets/bind-pending`, method: 'POST', data: { warehouseId, palletNo: String(palletNo || '').trim().toUpperCase(), operationId: operationId('bind', taskId) } }) } export function createAndBindDropshipPallet(taskId, warehouseId) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/pallets/create-and-bind`, method: 'POST', data: { warehouseId, operationId: operationId('create-bind', taskId) } }) } export function sealDropshipPallet(taskId, warehouseId, pallet) { return apiRequest({ url: `${ROOT}/tasks/${encodeURIComponent(taskId)}/pallets/${encodeURIComponent(pallet.palletId)}/seal`, method: 'POST', data: { warehouseId, expectedVersion: pallet.version, operationId: operationId('seal', taskId) } }) }