id; return ($userId > 0 && get_current_user_id() === $userId) || PermissionService::canModerate(); } public function failedAuthorizationMessage(): string { if (!is_user_logged_in()) { return 'You must be logged in to view voting activity.'; } return 'You can only view your own voting activity.'; } public function rules() { return [ 'id' => ['required', 'integer', 'min:1'], 'page' => ['nullable', 'integer', 'min:1'], 'per_page' => ['nullable', 'integer', 'min:1', 'max:50'], ]; } public function messages() { return [ 'id.required' => 'User ID is required.', 'id.integer' => 'User ID must be a valid integer.', 'per_page.max' => 'The per_page parameter cannot exceed 50.', ]; } }