/**
  * @return static
  */
 public function withCatalogPromotions()
 {
     foreach ($this->entity->getCatalogPromotions() as $catalogPromotion) {
         $this->entityDTO->catalogPromotions[] = $this->dtoBuilderFactory->getCatalogPromotionDTOBuilder($catalogPromotion)->build();
     }
     return $this;
 }
 public function handle(ListCatalogPromotionsQuery $query)
 {
     $paginationDTO = $query->getRequest()->getPaginationDTO();
     $pagination = new Pagination($paginationDTO->maxResults, $paginationDTO->page);
     $catalogPromotions = $this->catalogPromotionService->getAllCatalogPromotions($query->getRequest()->getQueryString(), $pagination);
     $query->getResponse()->setPaginationDTOBuilder($this->dtoBuilderFactory->getPaginationDTOBuilder($pagination));
     foreach ($catalogPromotions as $catalogPromotion) {
         $query->getResponse()->addCatalogPromotionDTOBuilder($this->dtoBuilderFactory->getCatalogPromotionDTOBuilder($catalogPromotion));
     }
 }