OrganizationAddressPostalRepository.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Repository\Organization;
  4. use App\Entity\Organization\Organization;
  5. use App\Entity\Organization\OrganizationAddressPostal;
  6. use App\Enum\Organization\AddressPostalOrganizationTypeEnum;
  7. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  8. use Doctrine\Persistence\ManagerRegistry;
  9. /**
  10. * @method OrganizationAddressPostal|null find($id, $lockMode = null, $lockVersion = null)
  11. * @method OrganizationAddressPostal|null findOneBy(array $criteria, array $orderBy = null)
  12. * @method OrganizationAddressPostal[] findAll()
  13. * @method OrganizationAddressPostal[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  14. */
  15. class OrganizationAddressPostalRepository extends ServiceEntityRepository
  16. {
  17. public function __construct(ManagerRegistry $registry)
  18. {
  19. parent::__construct($registry, OrganizationAddressPostal::class);
  20. }
  21. /**
  22. * Récupération des adresses postal d'une organization et d'un type précis
  23. * @param AddressPostalOrganizationTypeEnum $type
  24. * @param Organization $organization
  25. * @return list<OrganizationAddressPostal>|null
  26. */
  27. public function getByType(AddressPostalOrganizationTypeEnum $type, Organization $organization): ?array
  28. {
  29. return $this->createQueryBuilder('organizationAddressPostal')
  30. ->where('organizationAddressPostal.type = :type')
  31. ->andWhere('organizationAddressPostal.organization = :organization')
  32. ->setParameter('type', $type)
  33. ->setParameter('organization', $organization)
  34. ->getQuery()
  35. ->getResult()
  36. ;
  37. }
  38. }