src/Component/Inquiry/EventListener/InquiryCreatedListener.php line 20

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace BitBag\OpenMarketplace\Component\Inquiry\EventListener;
  4. use BitBag\OpenMarketplace\Component\Inquiry\Email\InquiryEmailManagerInterface;
  5. use BitBag\OpenMarketplace\Component\Inquiry\Entity\InquiryInterface;
  6. use BitBag\OpenMarketplace\Component\Inquiry\Entity\MessageInterface;
  7. use BitBag\OpenMarketplace\Component\Organization\Entity\OrganizationInterface;
  8. use Sylius\Bundle\ResourceBundle\Event\ResourceControllerEvent;
  9. final class InquiryCreatedListener
  10. {
  11.     public function __construct(
  12.         private InquiryEmailManagerInterface $inquiryEmailManager,
  13.     ) {
  14.     }
  15.     public function __invoke(ResourceControllerEvent $event): void
  16.     {
  17.         $inquiry $event->getSubject();
  18.         if (!$inquiry instanceof InquiryInterface) {
  19.             return;
  20.         }
  21.         /** @var MessageInterface $message */
  22.         foreach ($inquiry->getMessages() as $message) {
  23.             $organization $message->getCustomer()?->getOrganization();
  24.             if ($organization instanceof OrganizationInterface && $organization->hasBillingData()) {
  25.                 $inquiry->setState(InquiryInterface::STATE_OPEN);
  26.                 $this->inquiryEmailManager->sendInquiryOpenEmail($inquiry);
  27.                 break;
  28.             }
  29.         }
  30.     }
  31. }