<?php
namespace App\Entity\Repository;
use App\EventListener\FeatureFlagListener;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\QueryException;
class FeatureRepository extends EntityRepository
{
public const ATS_FEATURES = [
FeatureFlagListener::FEATURE_HR_OFFICE,
FeatureFlagListener::FEATURE_CONNEXYS,
FeatureFlagListener::FEATURE_BRIXS,
FeatureFlagListener::FEATURE_BULLHORN,
FeatureFlagListener::FEATURE_CARERIX,
FeatureFlagListener::FEATURE_NOCORE_APPLICANT_SEND,
FeatureFlagListener::FEATURE_PEOPLE_XS,
];
/**
* @throws QueryException
*/
public function findEnabledExternalATSFeatures(): array
{
$qb = $this->createQueryBuilder('f');
foreach (self::ATS_FEATURES as $feature) {
$qb->orWhere('f.name = :'.$feature)
->setParameter($feature, $feature)
;
}
$qb->andWhere('f.active = :active')
->setParameter('active', true)
;
return $qb->getQuery()->getResult();
}
public function getAdminActivatorCandidates(): array
{
return $this
->createQueryBuilder('f')
->select(['f.name', 'f.active'])
->getQuery()
->getArrayResult()
;
}
}