"use client"; import { clientAuthFetch } from "@/app/utils/clientAuthFetch"; import { NEXT_PUBLIC_API_URL } from "@/config/api"; export interface WorkbenchReportOption { label: string; value: string; } export interface WorkbenchTruckRoutingSummaryPrecheck { unpickedOrderCount: number; hasUnpickedOrders: boolean; } export async function fetchWorkbenchTruckRoutingStoreOptions(): Promise { const response = await clientAuthFetch( `${NEXT_PUBLIC_API_URL}/doPickOrder/workbench/truck-routing-summary/store-options`, { method: "GET", headers: { "Content-Type": "application/json" }, } ); if (!response.ok) throw new Error(`Failed to fetch workbench store options: ${response.status}`); const data = await response.json(); if (!Array.isArray(data)) return []; return data.map((item: any) => ({ label: item?.label ?? item?.value ?? "", value: item?.value ?? "", })); } export async function fetchWorkbenchTruckRoutingLaneOptions(storeId?: string): Promise { const qs = storeId ? `?storeId=${encodeURIComponent(storeId)}` : ""; const response = await clientAuthFetch( `${NEXT_PUBLIC_API_URL}/doPickOrder/workbench/truck-routing-summary/lane-options${qs}`, { method: "GET", headers: { "Content-Type": "application/json" }, } ); if (!response.ok) throw new Error(`Failed to fetch workbench lane options: ${response.status}`); const data = await response.json(); if (!Array.isArray(data)) return []; return data.map((item: any) => ({ label: item?.label ?? item?.value ?? "", value: item?.value ?? "", })); } export async function fetchWorkbenchTruckRoutingSummaryPrecheck(params: { storeId: string; truckLanceCode: string; date: string; }): Promise { const qs = new URLSearchParams({ storeId: params.storeId, truckLanceCode: params.truckLanceCode, date: params.date, }).toString(); const response = await clientAuthFetch( `${NEXT_PUBLIC_API_URL}/doPickOrder/workbench/truck-routing-summary/precheck?${qs}`, { method: "GET", headers: { "Content-Type": "application/json" }, } ); if (!response.ok) throw new Error(`Failed to precheck workbench routing summary: ${response.status}`); const data = await response.json(); return { unpickedOrderCount: Number(data?.unpickedOrderCount ?? 0), hasUnpickedOrders: Boolean(data?.hasUnpickedOrders), }; }