<?php
namespace App\Listener;
use App\Entity\User;
use App\Event\AccessCodeEvent;
use Doctrine\ORM\EntityManagerInterface;
class AccessCodeListener
{
public function __construct(private EntityManagerInterface $em){}
public function onAccessCodeDisabled(AccessCodeEvent $event)
{
$accessCode = $event->getAccessCode();
$user = $this->em->getRepository(User::class)->findOneBy(['clinicCode' => $accessCode->getCode()]);
if($user) {
$user->setSubscriptionType(User::USER_SUBSCRIPTION_TYPE_NOSUB);
$user->setCurrentClinic(null);
$user->setClinicCode(null);
$this->em->persist($user);
$this->em->flush();
}
}
public function onAccessCodeExpired(AccessCodeEvent $event)
{
$accessCode = $event->getAccessCode();
$user = $this->em->getRepository(User::class)->findOneBy(['clinicCode' => $accessCode->getCode()]);
if($user) {
$user->setSubscriptionType(User::USER_SUBSCRIPTION_TYPE_NOSUB);
$user->setCurrentClinic(null);
$user->setClinicCode(null);
$this->em->persist($user);
$this->em->flush();
}
}
}