vendor/shopware/core/Content/Media/MediaEntity.php line 33

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Media;
  3. use Shopware\Core\Checkout\Document\Aggregate\DocumentBaseConfig\DocumentBaseConfigCollection;
  4. use Shopware\Core\Checkout\Document\DocumentCollection;
  5. use Shopware\Core\Checkout\Order\Aggregate\OrderLineItem\OrderLineItemCollection;
  6. use Shopware\Core\Checkout\Order\Aggregate\OrderLineItemDownload\OrderLineItemDownloadCollection;
  7. use Shopware\Core\Checkout\Payment\PaymentMethodCollection;
  8. use Shopware\Core\Checkout\Shipping\ShippingMethodCollection;
  9. use Shopware\Core\Content\Category\CategoryCollection;
  10. use Shopware\Core\Content\Cms\Aggregate\CmsBlock\CmsBlockCollection;
  11. use Shopware\Core\Content\Cms\Aggregate\CmsSection\CmsSectionCollection;
  12. use Shopware\Core\Content\MailTemplate\Aggregate\MailTemplateMedia\MailTemplateMediaCollection;
  13. use Shopware\Core\Content\Media\Aggregate\MediaFolder\MediaFolderEntity;
  14. use Shopware\Core\Content\Media\Aggregate\MediaThumbnail\MediaThumbnailCollection;
  15. use Shopware\Core\Content\Media\Aggregate\MediaTranslation\MediaTranslationCollection;
  16. use Shopware\Core\Content\Media\MediaType\MediaType;
  17. use Shopware\Core\Content\Product\Aggregate\ProductConfiguratorSetting\ProductConfiguratorSettingCollection;
  18. use Shopware\Core\Content\Product\Aggregate\ProductDownload\ProductDownloadCollection;
  19. use Shopware\Core\Content\Product\Aggregate\ProductManufacturer\ProductManufacturerCollection;
  20. use Shopware\Core\Content\Product\Aggregate\ProductMedia\ProductMediaCollection;
  21. use Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionCollection;
  22. use Shopware\Core\Framework\App\Aggregate\AppPaymentMethod\AppPaymentMethodCollection;
  23. use Shopware\Core\Framework\DataAbstractionLayer\Entity;
  24. use Shopware\Core\Framework\DataAbstractionLayer\EntityCustomFieldsTrait;
  25. use Shopware\Core\Framework\DataAbstractionLayer\EntityIdTrait;
  26. use Shopware\Core\Framework\Log\Package;
  27. use Shopware\Core\System\Tag\TagCollection;
  28. use Shopware\Core\System\User\UserEntity;
  29. #[Package('content')]
  30. class MediaEntity extends Entity
  31. {
  32.     use EntityIdTrait;
  33.     use EntityCustomFieldsTrait;
  34.     /**
  35.      * @var string|null
  36.      */
  37.     protected $userId;
  38.     /**
  39.      * @var string|null
  40.      */
  41.     protected $mimeType;
  42.     /**
  43.      * @var string|null
  44.      */
  45.     protected $fileExtension;
  46.     /**
  47.      * @var int|null
  48.      */
  49.     protected $fileSize;
  50.     /**
  51.      * @var string|null
  52.      */
  53.     protected $title;
  54.     /**
  55.      * @var string|null
  56.      */
  57.     protected $metaDataRaw;
  58.     /**
  59.      * @deprecated tag:v6.5.0 - Will be internal from 6.5.0 onward
  60.      *
  61.      * @var string|null
  62.      */
  63.     protected $mediaTypeRaw;
  64.     /**
  65.      * @var array<string, mixed>|null
  66.      */
  67.     protected $metaData;
  68.     /**
  69.      * @var MediaType|null
  70.      */
  71.     protected $mediaType;
  72.     /**
  73.      * @var \DateTimeInterface|null
  74.      */
  75.     protected $uploadedAt;
  76.     /**
  77.      * @var string|null
  78.      */
  79.     protected $alt;
  80.     /**
  81.      * @var string
  82.      */
  83.     protected $url '';
  84.     /**
  85.      * @var string|null
  86.      */
  87.     protected $fileName;
  88.     /**
  89.      * @var UserEntity|null
  90.      */
  91.     protected $user;
  92.     /**
  93.      * @var MediaTranslationCollection|null
  94.      */
  95.     protected $translations;
  96.     /**
  97.      * @var CategoryCollection|null
  98.      */
  99.     protected $categories;
  100.     /**
  101.      * @var ProductManufacturerCollection|null
  102.      */
  103.     protected $productManufacturers;
  104.     /**
  105.      * @var ProductMediaCollection|null
  106.      */
  107.     protected $productMedia;
  108.     /**
  109.      * @var UserEntity|null
  110.      */
  111.     protected $avatarUser;
  112.     /**
  113.      * @var MediaThumbnailCollection|null
  114.      */
  115.     protected $thumbnails;
  116.     /**
  117.      * @var string|null
  118.      */
  119.     protected $mediaFolderId;
  120.     /**
  121.      * @var MediaFolderEntity|null
  122.      */
  123.     protected $mediaFolder;
  124.     /**
  125.      * @var bool
  126.      */
  127.     protected $hasFile false;
  128.     /**
  129.      * @var bool
  130.      */
  131.     protected $private false;
  132.     /**
  133.      * @var PropertyGroupOptionCollection|null
  134.      */
  135.     protected $propertyGroupOptions;
  136.     /**
  137.      * @var MailTemplateMediaCollection|null
  138.      */
  139.     protected $mailTemplateMedia;
  140.     /**
  141.      * @var TagCollection|null
  142.      */
  143.     protected $tags;
  144.     /**
  145.      * @deprecated tag:v6.5.0 - Will be internal from 6.5.0 onward
  146.      *
  147.      * @var string|null
  148.      */
  149.     protected $thumbnailsRo;
  150.     /**
  151.      * @var DocumentBaseConfigCollection|null
  152.      */
  153.     protected $documentBaseConfigs;
  154.     /**
  155.      * @var ShippingMethodCollection|null
  156.      */
  157.     protected $shippingMethods;
  158.     /**
  159.      * @var PaymentMethodCollection|null
  160.      */
  161.     protected $paymentMethods;
  162.     /**
  163.      * @var ProductConfiguratorSettingCollection|null
  164.      */
  165.     protected $productConfiguratorSettings;
  166.     /**
  167.      * @var OrderLineItemCollection|null
  168.      */
  169.     protected $orderLineItems;
  170.     /**
  171.      * @var CmsBlockCollection|null
  172.      */
  173.     protected $cmsBlocks;
  174.     /**
  175.      * @var CmsSectionCollection|null
  176.      */
  177.     protected $cmsSections;
  178.     /**
  179.      * @var CmsBlockCollection|null
  180.      */
  181.     protected $cmsPages;
  182.     /**
  183.      * @var DocumentCollection|null
  184.      */
  185.     protected $documents;
  186.     /**
  187.      * @var AppPaymentMethodCollection|null
  188.      */
  189.     protected $appPaymentMethods;
  190.     protected ?ProductDownloadCollection $productDownloads null;
  191.     protected ?OrderLineItemDownloadCollection $orderLineItemDownloads null;
  192.     public function get(string $property)
  193.     {
  194.         if ($property === 'hasFile') {
  195.             return $this->hasFile();
  196.         }
  197.         return parent::get($property);
  198.     }
  199.     public function getUserId(): ?string
  200.     {
  201.         return $this->userId;
  202.     }
  203.     public function setUserId(string $userId): void
  204.     {
  205.         $this->userId $userId;
  206.     }
  207.     public function getMimeType(): ?string
  208.     {
  209.         return $this->mimeType;
  210.     }
  211.     public function setMimeType(string $mimeType): void
  212.     {
  213.         $this->mimeType $mimeType;
  214.     }
  215.     public function getFileExtension(): ?string
  216.     {
  217.         return $this->fileExtension;
  218.     }
  219.     public function setFileExtension(string $fileExtension): void
  220.     {
  221.         $this->fileExtension $fileExtension;
  222.     }
  223.     public function getFileSize(): ?int
  224.     {
  225.         return $this->fileSize;
  226.     }
  227.     public function setFileSize(int $fileSize): void
  228.     {
  229.         $this->fileSize $fileSize;
  230.     }
  231.     public function getTitle(): ?string
  232.     {
  233.         return $this->title;
  234.     }
  235.     public function setTitle(string $title): void
  236.     {
  237.         $this->title $title;
  238.     }
  239.     /**
  240.      * @return array<string, mixed>|null
  241.      */
  242.     public function getMetaData(): ?array
  243.     {
  244.         return $this->metaData;
  245.     }
  246.     /**
  247.      * @param array<string, mixed> $metaData
  248.      */
  249.     public function setMetaData(array $metaData): void
  250.     {
  251.         $this->metaData $metaData;
  252.     }
  253.     public function getMediaType(): ?MediaType
  254.     {
  255.         return $this->mediaType;
  256.     }
  257.     public function setMediaType(MediaType $mediaType): void
  258.     {
  259.         $this->mediaType $mediaType;
  260.     }
  261.     public function getUploadedAt(): ?\DateTimeInterface
  262.     {
  263.         return $this->uploadedAt;
  264.     }
  265.     public function setUploadedAt(\DateTimeInterface $uploadedAt): void
  266.     {
  267.         $this->uploadedAt $uploadedAt;
  268.     }
  269.     public function getAlt(): ?string
  270.     {
  271.         return $this->alt;
  272.     }
  273.     public function setAlt(string $alt): void
  274.     {
  275.         $this->alt $alt;
  276.     }
  277.     public function getUser(): ?UserEntity
  278.     {
  279.         return $this->user;
  280.     }
  281.     public function setUser(UserEntity $user): void
  282.     {
  283.         $this->user $user;
  284.     }
  285.     public function getTranslations(): ?MediaTranslationCollection
  286.     {
  287.         return $this->translations;
  288.     }
  289.     public function setTranslations(MediaTranslationCollection $translations): void
  290.     {
  291.         $this->translations $translations;
  292.     }
  293.     public function getCategories(): ?CategoryCollection
  294.     {
  295.         return $this->categories;
  296.     }
  297.     public function setCategories(CategoryCollection $categories): void
  298.     {
  299.         $this->categories $categories;
  300.     }
  301.     public function getProductManufacturers(): ?ProductManufacturerCollection
  302.     {
  303.         return $this->productManufacturers;
  304.     }
  305.     public function setProductManufacturers(ProductManufacturerCollection $productManufacturers): void
  306.     {
  307.         $this->productManufacturers $productManufacturers;
  308.     }
  309.     public function getProductMedia(): ?ProductMediaCollection
  310.     {
  311.         return $this->productMedia;
  312.     }
  313.     public function setProductMedia(ProductMediaCollection $productMedia): void
  314.     {
  315.         $this->productMedia $productMedia;
  316.     }
  317.     public function getAvatarUser(): ?UserEntity
  318.     {
  319.         return $this->avatarUser;
  320.     }
  321.     public function setAvatarUser(UserEntity $avatarUser): void
  322.     {
  323.         $this->avatarUser $avatarUser;
  324.     }
  325.     public function getThumbnails(): ?MediaThumbnailCollection
  326.     {
  327.         return $this->thumbnails;
  328.     }
  329.     public function setThumbnails(MediaThumbnailCollection $thumbnailCollection): void
  330.     {
  331.         $this->thumbnails $thumbnailCollection;
  332.     }
  333.     public function getUrl(): string
  334.     {
  335.         return $this->url;
  336.     }
  337.     public function setUrl(string $url): void
  338.     {
  339.         $this->url $url;
  340.     }
  341.     public function hasFile(): bool
  342.     {
  343.         $hasFile $this->mimeType !== null && $this->fileExtension !== null && $this->fileName !== null;
  344.         return $this->hasFile $hasFile;
  345.     }
  346.     public function getFileName(): ?string
  347.     {
  348.         return $this->fileName;
  349.     }
  350.     public function setFileName(string $fileName): void
  351.     {
  352.         $this->fileName $fileName;
  353.     }
  354.     public function getMediaFolderId(): ?string
  355.     {
  356.         return $this->mediaFolderId;
  357.     }
  358.     public function setMediaFolderId(string $mediaFolderId): void
  359.     {
  360.         $this->mediaFolderId $mediaFolderId;
  361.     }
  362.     public function getMediaFolder(): ?MediaFolderEntity
  363.     {
  364.         return $this->mediaFolder;
  365.     }
  366.     public function setMediaFolder(MediaFolderEntity $mediaFolder): void
  367.     {
  368.         $this->mediaFolder $mediaFolder;
  369.     }
  370.     public function getPropertyGroupOptions(): ?PropertyGroupOptionCollection
  371.     {
  372.         return $this->propertyGroupOptions;
  373.     }
  374.     public function setPropertyGroupOptions(PropertyGroupOptionCollection $propertyGroupOptions): void
  375.     {
  376.         $this->propertyGroupOptions $propertyGroupOptions;
  377.     }
  378.     public function getMetaDataRaw(): ?string
  379.     {
  380.         return $this->metaDataRaw;
  381.     }
  382.     public function setMetaDataRaw(string $metaDataRaw): void
  383.     {
  384.         $this->metaDataRaw $metaDataRaw;
  385.     }
  386.     /**
  387.      * @deprecated tag:v6.5.0 - reason:becomes-internal - Will be internal from 6.5.0 onward
  388.      */
  389.     public function getMediaTypeRaw(): ?string
  390.     {
  391.         $this->checkIfPropertyAccessIsAllowed('mediaTypeRaw');
  392.         return $this->mediaTypeRaw;
  393.     }
  394.     /**
  395.      * @deprecated tag:v6.5.0 - reason:becomes-internal - Will be internal from 6.5.0 onward
  396.      */
  397.     public function setMediaTypeRaw(string $mediaTypeRaw): void
  398.     {
  399.         $this->mediaTypeRaw $mediaTypeRaw;
  400.     }
  401.     public function getMailTemplateMedia(): ?MailTemplateMediaCollection
  402.     {
  403.         return $this->mailTemplateMedia;
  404.     }
  405.     public function setMailTemplateMedia(MailTemplateMediaCollection $mailTemplateMedia): void
  406.     {
  407.         $this->mailTemplateMedia $mailTemplateMedia;
  408.     }
  409.     public function getTags(): ?TagCollection
  410.     {
  411.         return $this->tags;
  412.     }
  413.     public function setTags(TagCollection $tags): void
  414.     {
  415.         $this->tags $tags;
  416.     }
  417.     /**
  418.      * @deprecated tag:v6.5.0 - reason:becomes-internal - Will be internal from 6.5.0 onward
  419.      */
  420.     public function getThumbnailsRo(): ?string
  421.     {
  422.         $this->checkIfPropertyAccessIsAllowed('thumbnailsRo');
  423.         return $this->thumbnailsRo;
  424.     }
  425.     /**
  426.      * @deprecated tag:v6.5.0 - reason:becomes-internal - Will be internal from 6.5.0 onward
  427.      */
  428.     public function setThumbnailsRo(string $thumbnailsRo): void
  429.     {
  430.         $this->thumbnailsRo $thumbnailsRo;
  431.     }
  432.     public function getDocumentBaseConfigs(): ?DocumentBaseConfigCollection
  433.     {
  434.         return $this->documentBaseConfigs;
  435.     }
  436.     public function setDocumentBaseConfigs(DocumentBaseConfigCollection $documentBaseConfigs): void
  437.     {
  438.         $this->documentBaseConfigs $documentBaseConfigs;
  439.     }
  440.     public function getShippingMethods(): ?ShippingMethodCollection
  441.     {
  442.         return $this->shippingMethods;
  443.     }
  444.     public function setShippingMethods(ShippingMethodCollection $shippingMethods): void
  445.     {
  446.         $this->shippingMethods $shippingMethods;
  447.     }
  448.     public function getPaymentMethods(): ?PaymentMethodCollection
  449.     {
  450.         return $this->paymentMethods;
  451.     }
  452.     public function setPaymentMethods(PaymentMethodCollection $paymentMethods): void
  453.     {
  454.         $this->paymentMethods $paymentMethods;
  455.     }
  456.     /**
  457.      * @return array<string, mixed>
  458.      */
  459.     public function jsonSerialize(): array
  460.     {
  461.         $data parent::jsonSerialize();
  462.         unset($data['metaDataRaw'], $data['mediaTypeRaw']);
  463.         return $data;
  464.     }
  465.     public function getProductConfiguratorSettings(): ?ProductConfiguratorSettingCollection
  466.     {
  467.         return $this->productConfiguratorSettings;
  468.     }
  469.     public function setProductConfiguratorSettings(ProductConfiguratorSettingCollection $productConfiguratorSettings): void
  470.     {
  471.         $this->productConfiguratorSettings $productConfiguratorSettings;
  472.     }
  473.     public function getOrderLineItems(): ?OrderLineItemCollection
  474.     {
  475.         return $this->orderLineItems;
  476.     }
  477.     public function setOrderLineItems(OrderLineItemCollection $orderLineItems): void
  478.     {
  479.         $this->orderLineItems $orderLineItems;
  480.     }
  481.     public function getCmsBlocks(): ?CmsBlockCollection
  482.     {
  483.         return $this->cmsBlocks;
  484.     }
  485.     public function setCmsBlocks(CmsBlockCollection $cmsBlocks): void
  486.     {
  487.         $this->cmsBlocks $cmsBlocks;
  488.     }
  489.     public function getCmsSections(): ?CmsSectionCollection
  490.     {
  491.         return $this->cmsSections;
  492.     }
  493.     public function setCmsSections(CmsSectionCollection $cmsSections): void
  494.     {
  495.         $this->cmsSections $cmsSections;
  496.     }
  497.     public function getCmsPages(): ?CmsBlockCollection
  498.     {
  499.         return $this->cmsPages;
  500.     }
  501.     public function setCmsPages(CmsBlockCollection $cmsPages): void
  502.     {
  503.         $this->cmsPages $cmsPages;
  504.     }
  505.     public function isPrivate(): bool
  506.     {
  507.         return $this->private;
  508.     }
  509.     public function setPrivate(bool $private): void
  510.     {
  511.         $this->private $private;
  512.     }
  513.     public function getDocuments(): ?DocumentCollection
  514.     {
  515.         return $this->documents;
  516.     }
  517.     public function setDocuments(DocumentCollection $documents): void
  518.     {
  519.         $this->documents $documents;
  520.     }
  521.     public function getAppPaymentMethods(): ?AppPaymentMethodCollection
  522.     {
  523.         return $this->appPaymentMethods;
  524.     }
  525.     public function setAppPaymentMethods(AppPaymentMethodCollection $appPaymentMethods): void
  526.     {
  527.         $this->appPaymentMethods $appPaymentMethods;
  528.     }
  529.     public function getProductDownloads(): ?ProductDownloadCollection
  530.     {
  531.         return $this->productDownloads;
  532.     }
  533.     public function setProductDownloads(ProductDownloadCollection $productDownloads): void
  534.     {
  535.         $this->productDownloads $productDownloads;
  536.     }
  537.     public function getOrderLineItemDownloads(): ?OrderLineItemDownloadCollection
  538.     {
  539.         return $this->orderLineItemDownloads;
  540.     }
  541.     public function setOrderLineItemDownloads(OrderLineItemDownloadCollection $orderLineItemDownloads): void
  542.     {
  543.         $this->orderLineItemDownloads $orderLineItemDownloads;
  544.     }
  545. }