src/Entity/Franchise/Media.php line 24

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Franchise;
  4. use App\Entity\Admin\MediaName;
  5. use App\Entity\Traits\ImageUrlTrait;
  6. use App\Entity\Traits\TimestampableTrait;
  7. use App\Repository\Franchise\MediaRepository;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Symfony\Component\HttpFoundation\File\UploadedFile;
  11. use Symfony\Component\Serializer\Annotation\Groups;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. use Vich\UploaderBundle\Entity\File as EmbeddedFile;
  14. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  15. /**
  16.  * @ORM\Entity(repositoryClass=MediaRepository::class)
  17.  * @Vich\Uploadable
  18.  * @ORM\HasLifecycleCallbacks
  19.  */
  20. class Media implements MediaInterface\Serializable
  21. {
  22.     use ImageUrlTrait;
  23.     use TimestampableTrait;
  24.     /**
  25.      * @ORM\Id
  26.      * @ORM\GeneratedValue
  27.      * @ORM\Column(type="integer")
  28.      */
  29.     private $id;
  30.     #[Groups(['get:franchise'])]
  31.     private ?string $format null;
  32.     #[Groups(['get:franchise'])]
  33.     private ?string $typeFile null;
  34.     /**
  35.      * @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
  36.      *
  37.      * @var EmbeddedFile
  38.      */
  39.     private $url;
  40.     /**
  41.      * @Vich\UploadableField(mapping="medias_images", fileNameProperty="url.name", size="url.size", mimeType="url.mimeType", originalName="url.originalName", dimensions="url.dimensions")
  42.      * @Assert\File(
  43.      *     mimeTypes={"image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff"},
  44.      *     mimeTypesMessage="file.mime_types_image.message",
  45.      *     maxSize="2M",
  46.      *     maxSizeMessage="file.max_size.message"
  47.      * )
  48.      *
  49.      * @var null|File
  50.      */
  51.     private $mediaFile;
  52.     /**
  53.      * @Vich\UploadableField(mapping="medias_images", fileNameProperty="url.name", size="url.size", mimeType="url.mimeType", originalName="url.originalName", dimensions="url.dimensions")
  54.      * @Assert\File(
  55.      *     mimeTypes={"video/*"},
  56.      *     mimeTypesMessage="file.mime_types_video.message",
  57.      *     maxSize="5M",
  58.      *     maxSizeMessage="file.max_size.message"
  59.      * )
  60.      *
  61.      * @var null|File
  62.      */
  63.     private $videoFile;
  64.     /**
  65.      * @ORM\ManyToOne(targetEntity=Franchise::class, inversedBy="media")
  66.      * @ORM\JoinColumn(nullable=false)
  67.      */
  68.     private $franchise;
  69.     /**
  70.      * @ORM\ManyToOne(targetEntity=MediaName::class, inversedBy="medias")
  71.      * @ORM\JoinColumn(nullable=false)
  72.      */
  73.     private $mediaName;
  74.     #[Groups(['get:franchise'])]
  75.     private $code;
  76.     /**
  77.      * @ORM\Column(type="string", length=255, nullable=true)
  78.      */
  79.     #[Groups(['get:franchise''fixtures:franchise'])]
  80.     private $type;
  81.     private $fileType;
  82.     /**
  83.      * @ORM\Column(type="boolean", options={"default": true })
  84.      */
  85.     #[Groups(['get:franchise'])]
  86.     private $displayOnMenuSection true;
  87.     public function __construct()
  88.     {
  89.         $this->url = new EmbeddedFile();
  90.     }
  91.     public function getId(): ?int
  92.     {
  93.         return $this->id;
  94.     }
  95.     public function getUrl(): ?EmbeddedFile
  96.     {
  97.         return $this->url;
  98.     }
  99.     public function setUrl(?EmbeddedFile $url): void
  100.     {
  101.         $this->url $url;
  102.     }
  103.     /**
  104.      * @param null|File|UploadedFile $image
  105.      */
  106.     public function setMediaFile(File $image null): void
  107.     {
  108.         $this->mediaFile $image;
  109.         if ($image) {
  110.             $this->updatedAt = new \DateTime('now');
  111.         }
  112.     }
  113.     public function getMediaFile(): ?File
  114.     {
  115.         return $this->mediaFile;
  116.     }
  117.     /**
  118.      * @param null|File|UploadedFile $video
  119.      */
  120.     public function setVideoFile(File $video null): void
  121.     {
  122.         $this->videoFile $video;
  123.         if ($video) {
  124.             $this->updatedAt = new \DateTime('now');
  125.         }
  126.     }
  127.     public function getVideoFile(): ?File
  128.     {
  129.         return $this->videoFile;
  130.     }
  131.     public function getFranchise(): ?Franchise
  132.     {
  133.         return $this->franchise;
  134.     }
  135.     public function setFranchise(?Franchise $franchise): self
  136.     {
  137.         $this->franchise $franchise;
  138.         return $this;
  139.     }
  140.     public function getMediaName(): ?MediaName
  141.     {
  142.         return $this->mediaName;
  143.     }
  144.     public function setMediaName(?MediaName $mediaName): self
  145.     {
  146.         $this->mediaName $mediaName;
  147.         return $this;
  148.     }
  149.     public function getCode(): ?string
  150.     {
  151.         return $this->code;
  152.     }
  153.     public function setCode(?string $code): self
  154.     {
  155.         $this->code $code;
  156.         return $this;
  157.     }
  158.     public function setFormat(?string $format): self
  159.     {
  160.         $this->format $format;
  161.         return $this;
  162.     }
  163.     public function getFormat(): ?string
  164.     {
  165.         return $this->format;
  166.     }
  167.     public function setTypeFile(?string $typeFile): self
  168.     {
  169.         $this->typeFile $typeFile;
  170.         return $this;
  171.     }
  172.     public function getTypeFile(): ?string
  173.     {
  174.         return $this->typeFile;
  175.     }
  176.     public function getType(): ?string
  177.     {
  178.         return $this->type;
  179.     }
  180.     public function setType(?string $type): self
  181.     {
  182.         $this->type $type;
  183.         return $this;
  184.     }
  185.     public function getFileType(): ?string
  186.     {
  187.         return $this->fileType;
  188.     }
  189.     public function setFileType(?string $fileType): self
  190.     {
  191.         $this->fileType $fileType;
  192.         return $this;
  193.     }
  194.     /**
  195.      * Serialize.
  196.      *
  197.      * @throws \Exception
  198.      */
  199.     public function serialize(): string
  200.     {
  201.         return serialize([$this->id]);
  202.     }
  203.     /**
  204.      * Unserialize.
  205.      *
  206.      * @throws \Exception
  207.      */
  208.     public function unserialize(string $serialized): void
  209.     {
  210.         [$this->id] = unserialize($serialized);
  211.     }
  212.     public function isDisplayOnMenuSection(): bool
  213.     {
  214.         return $this->displayOnMenuSection;
  215.     }
  216.     public function setDisplayOnMenuSection(bool $displayOnMenuSection): self
  217.     {
  218.         $this->displayOnMenuSection $displayOnMenuSection;
  219.         return $this;
  220.     }
  221. }