|string> */ public function rules(): array { return [ 'user_id' => ['nullable', 'integer', 'exists:users,id'], 'status' => ['nullable', 'string', Rule::in(Loan::STATUSES)], 'start_date' => ['nullable', 'date', 'date_format:Y-m-d'], 'end_date' => ['nullable', 'date', 'date_format:Y-m-d', 'after_or_equal:start_date'], 'search' => ['nullable', 'string', 'max:100'], 'sort_by' => ['nullable', 'string', Rule::in(['loan_date', 'amount', 'status', 'created_at'])], 'sort_dir' => ['nullable', 'string', Rule::in(['asc', 'desc'])], 'per_page' => ['nullable', 'integer', 'min:1'], ]; } /** * Get the validation attribute names. * * @return array */ public function attributes(): array { return [ 'user_id' => __('validation.attributes.user_id'), 'status' => __('validation.attributes.status'), 'start_date' => __('validation.attributes.start_date'), 'end_date' => __('validation.attributes.end_date'), 'search' => __('validation.attributes.search'), 'sort_by' => __('validation.attributes.sort_by'), 'sort_dir' => __('validation.attributes.sort_dir'), 'per_page' => __('validation.attributes.per_page'), ]; } }