> */ public function rules(): array { $categoryId = $this->route('category')?->id; return [ 'name' => ['required', 'string', 'max:255'], 'slug' => ['required', 'string', 'max:255', Rule::unique('knowledge_base_categories', 'slug')->ignore($categoryId)], 'description' => ['nullable', 'string', 'max:5000'], 'icon' => ['nullable', 'string', 'max:255'], 'parent_id' => ['nullable', 'integer', Rule::exists('knowledge_base_categories', 'id')], 'sort_order' => ['integer', 'min:0'], 'is_visible' => ['boolean'], ]; } /** @return array */ public function messages(): array { return [ 'name.required' => 'Category name is required.', 'slug.required' => 'Category slug is required.', 'slug.unique' => 'This slug is already in use.', 'parent_id.exists' => 'The selected parent category does not exist.', ]; } }