• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/chat.php
  • Класс: BitrixImChat
  • Вызов: Chat::fillCounterData
static function fillCounterData(array $chats): array
{
	if (empty($chats))
	{
		return [];
	}

	$userId = BitrixImCommon::getUserId();
	$readService = new ReadService($userId);

	$chatIds = [];

	foreach ($chats as $chat)
	{
		$chatIds[] = (int)$chat['ID'];
	}

	$counters = $readService->getCounterService()->getForEachChat($chatIds);
	$unreadIds = $readService->getCounterService()->getIdFirstUnreadMessageForEachChats($chatIds);

	foreach ($chats as $key => $chat)
	{
		$id = (int)$chat['ID'];
		$chats[$key]['RELATION_COUNTER'] = $counters[$id] ?? 0;
		$chats[$key]['RELATION_UNREAD_ID'] = $unreadIds[$id] ?? 0;
	}

	return $chats;
}