src/Products/NotificationsBundle/Entity/Lists/SchoolList.php line 22

Open in your IDE?
  1. <?php
  2. namespace Products\NotificationsBundle\Entity\Lists;
  3. use App\Model\Query\ConditionQuery\Condition\ContainsCondition;
  4. use App\Model\Query\ConditionQuery\Condition\InCondition;
  5. use App\Model\Query\ConditionQuery\ConditionGroupInterface;
  6. use App\Model\Query\ConditionQuery\ConditionQuery;
  7. use App\Model\Query\ConditionQuery\ConditionQueryListInterface;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Products\NotificationsBundle\Entity\AbstractList;
  10. use Products\NotificationsBundle\Util\ListBuilder\AbstractListBuilder;
  11. /**
  12.  * Class SchoolList
  13.  * @package Products\NotificationsBundle\Entity\Lists
  14.  *
  15.  * @ORM\Entity(
  16.  *     repositoryClass = "Products\NotificationsBundle\Doctrine\Repository\Lists\SchoolListRepository",
  17.  * )
  18.  */
  19. class SchoolList extends AbstractList implements ConditionQueryListInterface
  20. {
  21.     public const DISCR 'school';
  22.     /**
  23.      * {@inheritDoc}
  24.      */
  25.     public function getConditionQuery(): ConditionQuery
  26.     {
  27.         return new ConditionQuery(
  28.             ConditionQuery::PROFILE_ENTITY,
  29.             [
  30.                 new InCondition(AbstractListBuilder::ENTITIES__PROFILES.'.role'$this->getRoles()),
  31.                 // the metadata in profiles will have an "_orgs" key that will always be an array
  32.                 new ContainsCondition(AbstractListBuilder::ENTITIES__PROFILES.'.metadata/_orgs'$this->getOneRosterId())
  33.             ],
  34.             ConditionGroupInterface::MODES__AND,
  35.         );
  36.     }
  37. }