// Pre-flight for serial capture: which of these serials already exist in this // org, and which of them still carry stock (→ would be rejected on booking). // Body { organizationId?, serials: string[] } (max 500). import getTokenHelper from "../../utils/getTokenHelper" import withAuthRetry from "../../utils/withAuthRetry" import { findAsisBySerials } from "../../utils/attributeTracking" const handleFunc = async (event: any, authToken: any = null) => { const token = authToken ?? await getTokenHelper(event) const body = await readBody(event) const orgId = Number(body?.organizationId || getCookie(event, 'logship_organization_id')) || 0 const serials: string[] = Array.isArray(body?.serials) ? body.serials.map((s: any) => String(s ?? '').trim()).filter(Boolean) : [] if (!orgId) return { status: 400, message: 'Organisation fehlt', known: [] } if (serials.length > 500) return { status: 400, message: 'Maximal 500 Seriennummern pro Prüfung', known: [] } if (!serials.length) return { status: 200, known: [] } const known = await findAsisBySerials(event, token, orgId, serials) return { status: 200, known: Array.from(known.values()).map((k) => ({ serNo: k.serNo, asiId: k.asiId, inStock: k.inStock, lot: k.lot, mhd: k.mhd })) } } export default defineEventHandler(async (event) => withAuthRetry(event, handleFunc))