|string> */ public function rules(): array { $rules = [ // 기본 검색 파라미터 'q' => ['nullable', 'string', 'min:2', 'max:200'], 'type' => ['nullable', 'string'], 'sort' => ['nullable', 'string'], 'page' => ['nullable', 'integer', 'min:1'], 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], ]; // 모듈/플러그인이 validation rules를 동적으로 추가할 수 있도록 훅 제공 // 예: sort의 in 규칙, board_slug 등 모듈별 파라미터 return HookManager::applyFilters('core.search.validation_rules', $rules, $this); } /** * Get custom messages for validator errors. * * @return array */ public function messages(): array { return [ 'q.min' => __('search.validation.q_min'), 'q.max' => __('search.validation.q_max'), 'page.integer' => __('search.validation.page_integer'), 'page.min' => __('search.validation.page_min'), 'per_page.integer' => __('search.validation.per_page_integer'), 'per_page.min' => __('search.validation.per_page_min'), 'per_page.max' => __('search.validation.per_page_max'), ]; } }