all(), [ 'files.*' => 'required|file|max:100000', ]); if ($validator->fails()) { return fail($validator->errors()->first()); } $channel = ChannelRepo::current(); $schema = $channel->schemas->firstWhere("name", $request->input("schema")); $files = request()->file('files'); $uploadResults = collect($files)->map(fn($file) => uploadFile($schema, $file))->toArray(); $insertedIds = collect($uploadResults) ->filter(fn(FileUploadResult $res) => !$res->isDuplicate) ->values() ->map(function (FileUploadResult $uploadResult) use ($schema, $request) { return $this->recordService->create( userId: AuthService::currentUserId($request), schemaName: $schema->name, data: [], file: (array)$uploadResult->recordFile, edges: [], status: $request->input("status") ?? "published", uploadFromUrl: "" ); })->toArray(); return ok($insertedIds); } }