9 protected const INTERNAL_TYPES = [
10 Chat::IM_TYPE_PRIVATE => self::Private,
11 Chat::IM_TYPE_OPEN_LINE => self::Lines,
12 Chat::IM_TYPE_CHANNEL => self::Channel,
13 Chat::IM_TYPE_OPEN_CHANNEL => self::OpenChannel,
14 Chat::IM_TYPE_COMMENT => self::Comment,
15 Chat::IM_TYPE_COLLAB => self::Collab,
16 Chat::IM_TYPE_COPILOT => self::Copilot,
17 Chat::IM_TYPE_AI_ASSISTANT => self::AiAssistant,
18 Chat::IM_TYPE_AI_ASSISTANT_ENTITY => self::AiAssistantEntity,
19 Chat::IM_TYPE_OPEN => self::OpenChat,
20 Chat::IM_TYPE_CHAT => self::Chat,
23 case Private =
'PRIVATE';
26 case General =
'GENERAL';
27 case Channel =
'CHANNEL';
28 case OpenChannel =
'OPEN_CHANNEL';
32 case AiAssistant =
'AI_ASSISTANT';
33 case AiAssistantEntity =
'AI_ASSISTANT_ENTITY';
35 case Announcement =
'ANNOUNCEMENT';
36 case Videoconference =
'VIDEOCONF';
37 case Support24Notifier =
'SUPPORT24_NOTIFIER';
38 case Support24Question =
'SUPPORT24_QUESTION';
39 case NetworkDialog =
'NETWORK_DIALOG';
43 case Sonet =
'SONET_GROUP';
50 return in_array($this, self::INTERNAL_TYPES,
true);
53 public static function tryFromEntityType(
string $entityType): ?self
55 $extendedType = self::tryFrom($entityType);
57 return $extendedType?->isInternal() ? null : $extendedType;
60 public static function tryFromTypeLiteral(
string $typeLiteral): self
62 return self::INTERNAL_TYPES[$typeLiteral] ?? self::Chat;