*/ class RequestingMember implements IEventListener { public function __construct( private NotificationService $notificationService, ) { } public function handle(Event $event): void { if ($event instanceof RequestingCircleMemberEvent) { $this->handleRequestingCircleMemberEvent($event); } elseif ($event instanceof AddingCircleMemberEvent) { $this->handleAddingCircleMemberEvent($event); } } public function handleRequestingCircleMemberEvent(RequestingCircleMemberEvent $event): void { $member = $event->getMember(); if ($event->getType() === CircleGenericEvent::REQUESTED) { $this->notificationService->notificationRequested($member); } else { $this->notificationService->notificationInvited($member); } } public function handleAddingCircleMemberEvent(AddingCircleMemberEvent $event): void { if ($event->getType() === CircleGenericEvent::JOINED && $event->getCircle()->isConfig(Circle::CFG_INVITE)) { $member = $event->getMember(); $this->notificationService->markInvitationAsProcessed($member); } } }