import { NextResponse } from "next/server"; import { requirePermission } from "@/src/lib/auth/requireSession"; import { rimuoviArticoloDaMacchina } from "@/src/lib/artMacchineParti"; interface RouteParams { params: Promise<{ idmacchina: string; idart: string }>; } export async function DELETE(request: Request, { params }: RouteParams) { const session = await requirePermission((p) => p.canRemoveArticoloMacchina); if (session instanceof NextResponse) return session; const { idmacchina, idart } = await params; const macchinaId = parseInt(idmacchina, 10); const articoloId = parseInt(idart, 10); if (isNaN(macchinaId) || isNaN(articoloId)) { return NextResponse.json({ error: "ID non validi" }, { status: 400 }); } try { const body = await request.json(); const { quantita, opzione, idMagazzino } = body; if (!quantita || quantita <= 0) { return NextResponse.json( { error: "Quantità non valida" }, { status: 400 } ); } if (!opzione || !["carico", "elimina"].includes(opzione)) { return NextResponse.json( { error: "Opzione non valida (carico o elimina)" }, { status: 400 } ); } if (opzione === "carico" && !idMagazzino) { return NextResponse.json( { error: "Seleziona un magazzino per il rientro" }, { status: 400 } ); } const result = await rimuoviArticoloDaMacchina( articoloId, macchinaId, quantita, opzione, session.user.email || session.user.name || "unknown", idMagazzino ); return NextResponse.json(result); } catch (error) { console.error("[API art-macchine-parti/:idmacchina/:idart] Errore DELETE:", error); const message = error instanceof Error ? error.message : "Errore nella rimozione"; return NextResponse.json({ error: message }, { status: 500 }); } }