/**
  * @param Struct\Customer\Group $customerGroup
  * @param Struct\ShopContextInterface $context
  * @return array|Struct\Product\PriceGroup[]
  */
 public function getPriceGroups(Struct\Customer\Group $customerGroup, Struct\ShopContextInterface $context)
 {
     $query = $this->connection->createQueryBuilder();
     $query->addSelect('priceGroupDiscount.groupID')->addSelect($this->fieldHelper->getPriceGroupDiscountFields())->addSelect($this->fieldHelper->getPriceGroupFields());
     $query->from('s_core_pricegroups_discounts', 'priceGroupDiscount')->innerJoin('priceGroupDiscount', 's_core_pricegroups', 'priceGroup', 'priceGroup.id = priceGroupDiscount.groupID');
     $query->andWhere('priceGroupDiscount.customergroupID = :customerGroup');
     $query->groupBy('priceGroupDiscount.id');
     $query->orderBy('priceGroupDiscount.groupID')->addOrderBy('priceGroupDiscount.discountstart');
     $query->setParameter(':customerGroup', $customerGroup->getId());
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $data = $statement->fetchAll(\PDO::FETCH_GROUP);
     $priceGroups = [];
     foreach ($data as $row) {
         $priceGroup = $this->priceHydrator->hydratePriceGroup($row);
         foreach ($priceGroup->getDiscounts() as $discount) {
             $discount->setCustomerGroup($customerGroup);
         }
         $priceGroups[$priceGroup->getId()] = $priceGroup;
     }
     return $priceGroups;
 }