validate(request(), [ 'clientExtension' => 'required|string', 'clientMime' => 'nullable|string|max:255', 'clientName' => 'required|string', 'disk' => 'string', 'diskPrefix' => 'string', 'filename' => 'required|string', 'parentId' => 'nullable|exists:file_entries,id', 'relativePath' => 'nullable|string', 'workspaceId' => 'nullable|int', 'size' => 'required|int', ]); $payload = new FileEntryPayload($validatedData); $this->authorize('store', [FileEntry::class, $payload->parentId]); $fileEntry = app(CreateFileEntry::class)->execute($payload); event(new FileUploaded($fileEntry)); return $this->success(['fileEntry' => $fileEntry]); } }