| |
| interface ResultsClusterOfferFilterableInterface { |
| public function getCancelableBitmask(): ?int; |
| } |
| interface OfferFilterableInterface { |
| public function getCancelableBitmask(): ?int; |
| } |
| |
| class ResultsOfferClusterFilter { |
| function addResultFilter(QueryBuilder $selectQuery, ResultsRequest $request): void { |
| if ($request->getCancelableBitmask()) { |
| $selectQuery->andWhere('cancelable & :cancelableBitmask > 0'); |
| $selectQuery->setParameter('cancelableBitmask', $request->getCancelableBitmask(), Type::INTEGER); |
| } |
| } |
| } |
| |
| class OffersFilter { |
| function addResultFilter(QueryBuilder $selectQuery, ResultsRequest $request): void { |
| if ($request->getCancelableBitmask()) { |
| $selectQuery->andWhere('cancelable & :cancelableBitmask = :cancelableBitmask'); |
| $selectQuery->setParameter('cancelableBitmask', $request->getCancelableBitmask(), Type::INTEGER); |
| } |
| } |
| } |