/** * GET /api/inventory/items/[id] — Get inventory item detail with recent movements */ import { NextRequest, NextResponse } from "next/server"; import { withPermission } from "@/lib/middleware/authorize"; import { withTenantContext } from "@/lib/prisma-tenant"; import { InventoryService } from "@/lib/services/inventory-service"; export function GET(req: NextRequest, { params }: { params: Promise<{ id: string }> }) { return withPermission("read", "Inventory")( async (_req: NextRequest, { user }) => { if (!user.tenantId) { return NextResponse.json( { error: "No tenant context — super-admins must use the admin API" }, { status: 400 } ); } const { id } = await params; const tenantPrisma = withTenantContext(user.tenantId); try { const item = await InventoryService.getItem(tenantPrisma, id); if (!item) { return NextResponse.json({ error: "Item not found" }, { status: 404 }); } return NextResponse.json(item); } catch (err) { const message = err instanceof Error ? err.message : "Failed to get item"; return NextResponse.json({ error: message }, { status: 500 }); } } )(req); }