/**
  * Include vote aggregate model/values.
  *
  * @param $entity
  * @return \yii\base\Component
  * @throws \yii\base\InvalidConfigException
  */
 public function withVoteAggregate($entity)
 {
     $entityEncoded = $this->getModule()->encodeEntity($entity);
     $voteAggregateTable = VoteAggregate::tableName();
     $model = new $this->owner->modelClass();
     $this->initSelect($model);
     $this->owner->leftJoin("{$voteAggregateTable} {$entity}Aggregate", ["{$entity}Aggregate.target_id" => new Expression("`{$model->tableSchema->name}`.`{$model->primaryKey()[0]}`"), "{$entity}Aggregate.entity" => $entityEncoded])->addSelect([new Expression("`{$entity}Aggregate`.`positive` as `{$entity}Positive`"), new Expression("`{$entity}Aggregate`.`negative` as `{$entity}Negative`"), new Expression("`{$entity}Aggregate`.`rating` as `{$entity}Rating`")]);
     return $this->owner;
 }