validate([ 'key' => ['required', 'string', 'max:255', 'regex:/^[a-z0-9_.-]+$/', Rule::unique('admin_presets', 'key')], 'area' => ['required', 'string', 'max:100'], 'type' => ['required', Rule::in(['text', 'number', 'boolean', 'json'])], 'label' => ['required', 'string', 'max:255'], 'value' => ['nullable', 'string'], 'payload' => ['nullable', 'json'], 'isActive' => ['boolean'], ]); AdminPreset::query()->create([ 'key' => $validated['key'], 'area' => $validated['area'], 'type' => $validated['type'], 'label' => $validated['label'], 'value' => $validated['value'] ?: null, 'payload' => filled($validated['payload']) ? json_decode($validated['payload'], true) : null, 'is_active' => $validated['isActive'], ]); session()->flash('success', __('Voreinstellung wurde angelegt.')); $this->redirect(route('admin.presets.index'), navigate: true); } }; ?>