/**
  * {@inheritdoc}
  */
 public function generateCondition(ConditionInterface $condition, QueryBuilder $query, ShopContextInterface $context)
 {
     $date = new \DateTime();
     /** @var ReleaseDateCondition $condition */
     $intervalSpec = 'P' . $condition->getDays() . 'D';
     $interval = new \DateInterval($intervalSpec);
     $dateNow = new \DateTime();
     switch ($condition->getDirection()) {
         case ReleaseDateCondition::DIRECTION_FUTURE:
             $date->add($interval);
             $query->andWhere('variant.releasedate <= :releaseDateFrom');
             $query->andWhere('variant.releasedate > :dateNow');
             $query->setParameter(':releaseDateFrom', $date->format('Y-m-d'));
             $query->setParameter(':dateNow', $dateNow->format('Y-m-d'));
             break;
         case ReleaseDateCondition::DIRECTION_PAST:
             $date->sub($interval);
             $query->andWhere('variant.releasedate >= :releaseDateTo');
             $query->andWhere('variant.releasedate <= :dateNow');
             $query->setParameter(':releaseDateTo', $date->format('Y-m-d'));
             $query->setParameter(':dateNow', $dateNow->format('Y-m-d'));
             break;
     }
 }