<?php
namespace App\EventListener\Establishment\EstablishmentStaff;
use App\Entity\Establishment\EstablishmentDiplomaStaff;
use App\Event\Establishment\EstablishmentStaff\EstablishmentStaffDeletedEvent;
use App\Repository\EstablishmentDiplomaStaffRepository;
use DateTime;
class EstablishmentStaffDeletedListener
{
public function __construct(
Private EstablishmentDiplomaStaffRepository $establishmentDiplomaStaffRepository,
)
{
}
public function onEstablishmentStaffDeleted(EstablishmentStaffDeletedEvent $event): void
{
$establishmentStaff = $event->getEstablishmentStaff();
$getEstablishmentDiplomaStaffCollection = $this->establishmentDiplomaStaffRepository->getEstablishmentDiplomaStaffAfterDeleteEstablishmentStaff($establishmentStaff->getEstablishment(), $establishmentStaff->getStaff()->getUuidAsBinary());
foreach ($getEstablishmentDiplomaStaffCollection as $establishmentDiplomaStaff) {
if($establishmentDiplomaStaff instanceof EstablishmentDiplomaStaff) {
$establishmentDiplomaStaff->setDeletedAt(new DateTime());
}
}
}
}