3namespace Bitrix\Im\V2\Link\File;
5use Bitrix\Disk\TypeFile;
6use Bitrix\Im\Model\LinkFileTable;
7use Bitrix\Im\Model\EO_LinkFile;
8use Bitrix\Im\V2\Common\MigrationStatusCheckerTrait;
9use Bitrix\Im\V2\Entity;
10use Bitrix\Im\V2\Link\BaseLinkItem;
11use Bitrix\Im\V2\Entity\File\FileError;
12use Bitrix\Im\V2\Rest\PopupData;
13use Bitrix\Im\V2\Rest\RestEntity;
14use Bitrix\Im\V2\Result;
15use Bitrix\Main\ArgumentTypeException;
19 use MigrationStatusCheckerTrait;
38 $this->initByDefault();
48 if (!static::isMigrationFinished())
53 return parent::save();
58 if (!isset($this->subtype))
68 return Entity\File\FileItem::class;
83 return Subtype::tryFromOrDefault(
$subtype);
90 $this->subtype = Subtype::tryFromOrDefault(
$subtype);
104 return $this->subtype;
111 if (!isset($this->entity))
113 return Subtype::Other;
119 if ($realFile?->
getCode() === static::BRIEF_CODE)
121 return Subtype::Brief;
124 if ($realFile?->
getCode() === static::MEDIA_ORIGINAL_CODE)
126 return Subtype::Other;
139 if (isset($this->entity))
146 if ($fileEntity !==
null)
156 return LinkFileTable::class;
171 return array_map(
'mb_strtoupper',
$filter);
179 $entity = LinkFileTable::query()
180 ->setSelect([
'ID',
'MESSAGE_ID',
'CHAT_ID',
'SUBTYPE',
'DISK_FILE_ID',
'DATE_CREATE',
'AUTHOR_ID'])
191 return (
new static(
$entity))->fillFile();
196 if (isset($this->entity))
201 return parent::setChatId(
$chatId);
226 return parent::setEntity(
$entity->setChatId($this->chatId ??
null));
236 return 'DISK_FILE_ID';
241 $additionalFields = [
243 'field' =>
'subtype',
244 'set' =>
'setSubtype',
245 'get' =>
'getSubtype',
246 'beforeSave' =>
'resolveSubtype',
247 'saveFilter' =>
'saveSubtypeValueFilter',
248 'loadFilter' =>
'loadSubtypeValueFilter'
252 return array_merge(parent::mirrorDataEntityFields(), $additionalFields);
static initByDiskFileId(int $diskFileId, ?int $chatId=null)
static getRestEntityName()
loadSubtypeValueFilter(string $subtype)
static getEntityClassName()
toRestFormat(array $option=[])
saveSubtypeValueFilter(Subtype $subtype)
getPopupData(array $excludedList=[])
__construct($source=null)
static string $migrationOptionName
static normalizeFilterFromJsonFormat(null|string|array $filter)
setSubtype(Subtype|string $subtype)
setEntity(RestEntity $entity)
const MEDIA_ORIGINAL_CODE
static getEntityIdFieldName()
static getByDiskFileId(int $diskFileId)
static mirrorDataEntityFields()
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)