public function paginateByRequest($perPage = 1, $columns = ['*'])
{
$this->model = $this->model->select('tickets.*', 'ticket_actions.title as title', 'users.display_name as user_display_name', 'su.display_name as staff_display_name')->join('users', 'users.id', '=', 'tickets.user_id')->join('staff', 'staff.id', '=', 'tickets.staff_id')->join('users as su', 'su.id', '=', 'staff.user_id')->join('ticket_actions', 'ticket_actions.ticket_id', '=', 'tickets.id')->where('ticket_actions.type', 'create');
$this->pushCriteria(new Criteria\RequestSort())->pushCriteria(new Criteria\RequestCreatedAtRange())->pushCriteria(new Criteria\RequestSearchTickets())->pushCriteria(new Criteria\Request('status'))->pushCriteria(new Criteria\Request('priority'))->pushCriteria(new Criteria\Request('dept_id'))->pushCriteria(new Criteria\Request('staff_id'));
return parent::paginate($perPage);
}