Create a Next.js API route that receives inventory update webhooks from partner organizations. Requirements:
- POST /api/webhooks/inventory accepts JSON payloads with: org_id, items (array of {name, category, quantity, unit, expiration_date}), timestamp
- Validate payload with zod.reject malformed requests with 400
- Verify webhook signature using HMAC-SHA256 (secret per org)
- Upsert inventory records in the database
- Trigger matching algorithm for new surplus items
- Return 200 with processed item count
Include rate limiting (max 60 requests/minute per org). Write integration tests.