src/Entity/Media.php line 10

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Doctrine\Common\Collections\Collection;
  6. class Media {
  7.     /**
  8.      * @var integer
  9.      */
  10.     private $id;
  11.     /**
  12.      * @var string
  13.      */
  14.     private $name;
  15.     /**
  16.      * @var string
  17.      */
  18.     private $copyright;
  19.     /**
  20.      * @var string
  21.      */
  22.     private $providerName;
  23.     /**
  24.      * @var string
  25.      */
  26.     private $providerReference;
  27.     /**
  28.      * @var array<string, mixed>
  29.      */
  30.     private $providerMetadata;
  31.     /**
  32.      * @var string
  33.      */
  34.     private $contentType;
  35.     /**
  36.      * @var string
  37.      */
  38.     private $context;
  39.     /**
  40.      * @var \DateTime
  41.      */
  42.     private $updatedAt;
  43.     /**
  44.      * @var \DateTime
  45.      */
  46.     private $createdAt;
  47.     /**
  48.      * @var integer
  49.      */
  50.     private $ownerID;
  51.     /**
  52.      * @var integer
  53.      */
  54.     private $documentType;
  55.     /**
  56.      * @var mixed
  57.      */
  58.     private $binaryContent;
  59.     /**
  60.      * @var \Doctrine\Common\Collections\Collection
  61.      */
  62.     private $galleryHasMedias;
  63.     /**
  64.      * Constructor
  65.      */
  66.     public function __construct() {
  67.         $this->galleryHasMedias = new \Doctrine\Common\Collections\ArrayCollection();
  68.     }
  69.     /**
  70.      * Get id
  71.      *
  72.      * @return integer
  73.      */
  74.     public function getId() {
  75.         return $this->id;
  76.     }
  77.     /**
  78.      * Set ownerID
  79.      *
  80.      * @param integer $ownerID
  81.      *
  82.      * @return Media
  83.      */
  84.     public function setOwnerID($ownerID) {
  85.         $this->ownerID $ownerID;
  86.         return $this;
  87.     }
  88.     /**
  89.      * Get ownerID
  90.      *
  91.      * @return integer
  92.      */
  93.     public function getOwnerID() {
  94.         return $this->ownerID;
  95.     }
  96.     /**
  97.      * Set documentType
  98.      *
  99.      * @param integer $documentType
  100.      *
  101.      * @return Media
  102.      */
  103.     public function setDocumentType($documentType) {
  104.         $this->documentType $documentType;
  105.         return $this;
  106.     }
  107.     /**
  108.      * Get documentType
  109.      *
  110.      * @return integer
  111.      */
  112.     public function getDocumentType() {
  113.         return $this->documentType;
  114.     }
  115.     public function getName() {
  116.         return $this->name;
  117.     }
  118.     public function setName($name) {
  119.         $this->name $name;
  120.         return $this;
  121.     }
  122.     public function getCopyright() {
  123.         return $this->copyright;
  124.     }
  125.     public function setCopyright($copyright) {
  126.         $this->copyright $copyright;
  127.     }
  128.     public function getProviderName() {
  129.         return $this->providerName;
  130.     }
  131.     public function setProviderName($providerName) {
  132.         $this->providerName $providerName;
  133.         return $this;
  134.     }
  135.     public function getProviderReference() {
  136.         return $this->providerReference;
  137.     }
  138.     public function setProviderReference($providerReference) {
  139.         $this->providerReference $providerReference;
  140.         return $this;
  141.     }
  142.     public function getProviderMetadata() {
  143.         return $this->providerMetadata;
  144.     }
  145.     public function setProviderMetadata($providerMetadata) {
  146.         $this->providerMetadata $providerMetadata;
  147.         return $this;
  148.     }
  149.     public function getContentType() {
  150.         return $this->contentType;
  151.     }
  152.     public function setContentType($contentType) {
  153.         $this->contentType $contentType;
  154.         return $this;
  155.     }
  156.     public function getContext() {
  157.         return $this->context;
  158.     }
  159.     public function setContext($context) {
  160.         $this->context $context;
  161.         return $this;
  162.     }
  163.     public function getUpdatedAt(): ?\DateTimeInterface {
  164.         return $this->updatedAt;
  165.     }
  166.     public function setUpdatedAt(\DateTimeInterface $updatedAt) {
  167.         $this->updatedAt $updatedAt;
  168.         return $this;
  169.     }
  170.     public function getCreatedAt(): ?\DateTimeInterface {
  171.         return $this->createdAt;
  172.     }
  173.     public function setCreatedAt(\DateTimeInterface $createdAt) {
  174.         $this->createdAt $createdAt;
  175.         return $this;
  176.     }
  177.     /**
  178.      * Add galleryHasMedia
  179.      *
  180.      * @param \App\Entity\GalleryHasMedia $galleryHasMedia
  181.      *
  182.      * @return Media
  183.      */
  184.     public function addGalleryHasMedia(\App\Entity\GalleryHasMedia $galleryHasMedia) {
  185.         $this->galleryHasMedias[] = $galleryHasMedia;
  186.         return $this;
  187.     }
  188.     /**
  189.      * Remove galleryHasMedia
  190.      *
  191.      * @param \App\Entity\GalleryHasMedia $galleryHasMedia
  192.      */
  193.     public function removeGalleryHasMedia(\App\Entity\GalleryHasMedia $galleryHasMedia) {
  194.         $this->galleryHasMedias->removeElement($galleryHasMedia);
  195.     }
  196.     /**
  197.      * Get galleryHasMedias
  198.      *
  199.      * @return \Doctrine\Common\Collections\Collection
  200.      */
  201.     public function getGalleryItems(): Collection {
  202.         return $this->galleryHasMedias;
  203.     }
  204.     public function setBinaryContent($binaryContent): void {
  205.         $this->previousProviderReference $this->providerReference;
  206.         $this->providerReference null;
  207.         $this->binaryContent $binaryContent;
  208.     }
  209.     public function resetBinaryContent(): void {
  210.         $this->binaryContent null;
  211.     }
  212.     public function getBinaryContent() {
  213.         return $this->binaryContent;
  214.     }
  215.     public function prePersist() {
  216.         $this->createdAt = new \DateTime();
  217.         $this->updatedAt = new \DateTime();
  218.     }
  219.     public function preUpdate() {
  220.         $this->updatedAt = new \DateTime();
  221.     }
  222.     public function isProviderYoutube() {
  223.         if (empty($this->providerName)) {
  224.             return false;
  225.         }
  226.         if (empty($this->providerReference)) {
  227.             return false;
  228.         }
  229.         if (strcasecmp($this->providerName"media.provider.youtube") != 0) {
  230.             return false;
  231.         }
  232.         return true;
  233.     }
  234.     public function getYoutubeUrl() {
  235.         // for example https://youtube.com/shorts
  236.         if (strlen($this->providerReference) >= 20) {
  237.             return $this->providerReference;
  238.         }
  239.         return "https://www.youtube.com/watch?v=" $this->providerReference;
  240.     }
  241.     public function isTypeVideo() {
  242.         if (empty($this->contentType)) {
  243.             return false;
  244.         }
  245.         if (strcasecmp($this->contentType"video/x-flv") != 0) {
  246.             return false;
  247.         }
  248.         return true;
  249.     }
  250.     public function isPDF() {
  251.         if (empty($this->name)) {
  252.             return false;
  253.         }
  254.         $nameLower strtolower($this->name);
  255.         if (strpos($nameLower'.pdf') == false) {
  256.             return false;
  257.         }
  258.         return true;
  259.     }
  260.     public function __toString(): string {
  261.         return $this->getName() ?? 'n/a';
  262.     }
  263. }