query('expires'); $ttl = max(60, $expiresAt - now()->timestamp + 60); if (! Cache::add("mcp_upload:{$token}", true, $ttl)) { abort(Response::HTTP_CONFLICT, 'Upload token already used.'); } if (Media::where('upload_token', $token)->exists()) { abort(Response::HTTP_CONFLICT, 'Upload token already consumed.'); } $workspace = Workspace::findOrFail((string) $request->query('ws')); $media = DB::transaction(function () use ($workspace, $request, $token): Media { $media = $workspace->addMedia($request->file('media'), 'assets'); $media->upload_token = $token; $media->save(); return $media; }); return response()->json([ 'upload_token' => $token, 'media_id' => $media->id, 'type' => $media->type, 'mime_type' => $media->mime_type, 'original_filename' => $media->original_filename, ], Response::HTTP_CREATED); } }