store($request, $service, 'key_visual_filename', 'current_key_visual'); } public function storeBackground(Request $request, Service $service): RedirectResponse { return $this->store($request, $service, 'background_filename', 'current_background'); } private function store(Request $request, Service $service, string $column, string $settingKey): RedirectResponse { $request->validate([ 'file' => ['required', 'file', 'mimes:jpg,jpeg,png', 'max:20480'], 'scope' => ['required', Rule::in(['service', 'default'])], ], [ 'file.required' => 'Bitte wähle eine Bilddatei aus.', 'file.file' => 'Die hochgeladene Datei ist ungültig.', 'file.mimes' => 'Nur Bilddateien (jpg, png) sind erlaubt.', 'file.max' => 'Die Datei darf maximal 20 MB groß sein.', 'scope.required' => 'Bitte wähle einen Geltungsbereich.', 'scope.in' => 'Der gewählte Geltungsbereich ist ungültig.', ]); $result = app(FileConversionService::class)->convertImageCover($request->file('file')); $service->update([$column => $result['filename']]); if ($request->input('scope') === 'default') { Setting::set($settingKey, $result['filename']); } return back()->with('success', 'Bild wurde gespeichert.'); } }