3declare(strict_types=1);
5namespace Bitrix\Im\V2\Anchor;
7use Bitrix\Im\Model\AnchorTable;
8use Bitrix\Im\V2\ActiveRecord;
9use Bitrix\Im\V2\Common\ActiveRecordImplementation;
10use Bitrix\Im\V2\Common\RegistryEntryImplementation;
11use Bitrix\Im\V2\Message\Reaction\ReactionItem;
12use Bitrix\Im\V2\RegistryEntry;
13use Bitrix\Im\V2\Rest\RestConvertible;
14use Bitrix\Main\Validation\ValidationError;
15use Bitrix\Main\Validation\ValidationResult;
16use Bitrix\Main\Validation\Validator\InArrayValidator;
20 use RegistryEntryImplementation;
21 use ActiveRecordImplementation;
27 self::MENTION => self::MENTION,
28 self::REACTION => self::REACTION,
33 private int $messageId;
35 private int $fromUserId;
37 private ?
string $subType =
null;
40 private int $parentChatId = 0;
41 private int $parentMessageId = 0;
45 return $this->
id ??
null;
50 $this->
id = $primaryId;
62 $this->chatId = $chatId;
74 $this->messageId = $messageId;
86 $this->userId = $userId;
93 return $this->fromUserId;
98 $this->fromUserId = $fromUserId;
117 return $this->subType;
122 $this->subType = $subType;
129 return $this->parentChatId;
134 $this->parentChatId = $parentChatId;
141 return $this->parentMessageId;
146 $this->parentMessageId = $parentMessageId;
153 return AnchorTable::class;
181 'set' =>
'setPrimaryId',
182 'get' =>
'getPrimaryId',
186 'set' =>
'setChatId',
187 'get' =>
'getChatId',
190 'field' =>
'messageId',
191 'set' =>
'setMessageId',
192 'get' =>
'getMessageId',
196 'set' =>
'setUserId',
197 'get' =>
'getUserId',
200 'field' =>
'fromUserId',
201 'set' =>
'setFromUserId',
202 'get' =>
'getFromUserId',
208 'beforeSave' =>
'beforeSaveType',
211 'field' =>
'subType',
212 'get' =>
'getSubType',
213 'set' =>
'setSubType',
215 'beforeSave' =>
'beforeSaveSubType',
223 return (
new InArrayValidator(self::ALLOWED_ANCHORS))->validate($this->type);
226 private function beforeSaveSubType(): ValidationResult
228 $result =
new ValidationResult();
230 if ($this->type === self::MENTION)
232 if ($this->subType ===
null)
237 return $result->addError(
new ValidationError(
238 'Wrong sub type for mention',
243 if ($this->type === self::REACTION)
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getRestEntityName()
setPrimaryId(int $primaryId)
toRestFormat(array $option=[])
setFromUserId(int $fromUserId)
setParentChatId(int $parentChatId)
setSubType(?string $subType)
setMessageId(int $messageId)
static mirrorDataEntityFields()
setParentMessageId(int $parentMessageId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)