3namespace Bitrix\Calendar\Core\Builders\EventOption;
5use Bitrix\Calendar\Core\Builders\BuilderException;
6use Bitrix\Calendar\Core\EventCategory\EventCategory;
7use Bitrix\Calendar\Core\EventOption\EventOption;
8use Bitrix\Calendar\Core\EventOption\OptionsDto;
9use Bitrix\Calendar\Core\Mappers\Factory;
10use Bitrix\Calendar\OpenEvents\Internals\Entity\OpenEventOption;
11use Bitrix\Main\DI\ServiceLocator;
32 protected function getId(): ?int
34 return $this->eventOption->getId();
39 return $this->eventOption->getEventId();
44 return $this->eventOption->getCategoryId();
52 $mapperFactory = ServiceLocator::getInstance()->get(
'calendar.service.mappers.factory');
53 $eventCategoryFactory = $mapperFactory->getEventCategory();
55 return $eventCategoryFactory->getById($this->
getCategoryId());
63 return $this->eventOption->getThreadId();
68 $options = $this->eventOption->getOptions();
69 $optionsArray = json_decode(
$options,
true) ?? [];
71 return OptionsDto::fromArray($optionsArray);
76 return $this->eventOption->getAttendeesCount() ?? 0;
__construct(private readonly OpenEventOption $eventOption)