/**
  * @inheritdoc
  */
 public function getList($products, Struct\ShopContextInterface $context)
 {
     $ids = [];
     foreach ($products as $product) {
         $ids[] = $product->getId();
     }
     $ids = array_unique($ids);
     $query = $this->connection->createQueryBuilder();
     $query->select(['relation.article_id']);
     $query->addSelect($this->fieldHelper->getRelatedProductStreamFields());
     $query->from('s_product_streams_articles', 'relation');
     $query->innerJoin('relation', 's_product_streams', 'stream', 'stream.id = relation.stream_id');
     $this->fieldHelper->addProductStreamTranslation($query, $context);
     $query->where('relation.article_id IN (:ids)')->setParameter(':ids', $ids, Connection::PARAM_INT_ARRAY);
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $data = $statement->fetchAll(\PDO::FETCH_GROUP);
     $related = [];
     foreach ($data as $productId => $data) {
         $related[$productId] = [];
         foreach ($data as $row) {
             $related[$productId][] = $this->hydrator->hydrate($row);
         }
     }
     return $related;
 }