['nullable', 'integer', 'in:25,50,100,999999'], 'search' => ['nullable', 'string', 'max:255'], 'highlight' => ['nullable', 'integer'], 'gender' => ['nullable', 'string', Rule::in(Gender::values())], 'department_id' => ['nullable', 'integer'], 'status' => ['nullable', 'string'], 'semester' => ['nullable', 'string', Rule::in(Semester::values())], 'is_active' => ['nullable', Rule::in(['true', 'false'])], 'academic_term_id' => ['nullable', 'integer'], 'method' => ['nullable', 'string', Rule::in(ClassMethod::values())], 'course_class_id' => ['nullable', 'integer'], 'lecturer_id' => ['nullable', 'integer'], 'type' => ['nullable', 'string'], ]; } public function validatedWithDefaults(): array { $validated = $this->validated(); return [ 'perPage' => $validated['per_page'] ?? 25, 'search' => $validated['search'] ?? '', ]; } }