vendor/kunstmaan/media-bundle/Entity/Media.php line 23

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\MediaBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Gedmo\Mapping\Annotation as Gedmo;
  5. use Kunstmaan\AdminBundle\Entity\AbstractEntity;
  6. use Kunstmaan\MediaBundle\Repository\MediaRepository;
  7. /**
  8.  * @ORM\Entity(repositoryClass="Kunstmaan\MediaBundle\Repository\MediaRepository")
  9.  * @ORM\Table(name="kuma_media", indexes={
  10.  *      @ORM\Index(name="idx_media_name", columns={"name"}),
  11.  *      @ORM\Index(name="idx_media_deleted", columns={"deleted"})
  12.  * })
  13.  * @ORM\HasLifecycleCallbacks
  14.  */
  15. #[ORM\Entity(repositoryClassMediaRepository::class)]
  16. #[ORM\Table(name'kuma_media')]
  17. #[ORM\Index(name'idx_media_name'columns: ['name'])]
  18. #[ORM\Index(name'idx_media_deleted'columns: ['deleted'])]
  19. #[ORM\HasLifecycleCallbacks]
  20. class Media extends AbstractEntity
  21. {
  22.     /**
  23.      * @var string
  24.      *
  25.      * @Gedmo\Locale
  26.      * Used locale to override Translation listener`s locale
  27.      * this is not a mapped field of entity metadata, just a simple property
  28.      */
  29.     #[Gedmo\Locale]
  30.     protected $locale;
  31.     /**
  32.      * @var string
  33.      *
  34.      * @ORM\Column(type="string", unique=true, length=255)
  35.      * @ORM\GeneratedValue(strategy="AUTO")
  36.      */
  37.     #[ORM\Column(name'uuid'type'string'uniquetruelength255)]
  38.     #[ORM\GeneratedValue('AUTO')]
  39.     protected $uuid;
  40.     /**
  41.      * @var string
  42.      *
  43.      * @ORM\Column(type="string", nullable=true)
  44.      */
  45.     #[ORM\Column(name'name'type'string'nullabletrue)]
  46.     protected $name;
  47.     /**
  48.      * @var string
  49.      *
  50.      * @ORM\Column(name="description", type="text", nullable=true)
  51.      * @Gedmo\Translatable
  52.      */
  53.     #[ORM\Column(name'description'type'text'nullabletrue)]
  54.     #[Gedmo\Translatable]
  55.     protected $description;
  56.     /**
  57.      * @var string
  58.      *
  59.      * @ORM\Column(name="copyright", type="string", nullable=true)
  60.      * @Gedmo\Translatable
  61.      */
  62.     #[ORM\Column(name'copyright'type'string'nullabletrue)]
  63.     #[Gedmo\Translatable]
  64.     protected $copyright;
  65.     /**
  66.      * @var string
  67.      *
  68.      * @ORM\Column(type="string", name="location", nullable=true)
  69.      */
  70.     #[ORM\Column(name'location'type'string'nullabletrue)]
  71.     protected $location;
  72.     /**
  73.      * @var string
  74.      *
  75.      * @ORM\Column(type="string", name="content_type")
  76.      */
  77.     #[ORM\Column(name'content_type'type'string')]
  78.     protected $contentType;
  79.     /**
  80.      * @var array
  81.      *
  82.      * @ORM\Column(type="array")
  83.      */
  84.     #[ORM\Column(name'metadata'type'array')]
  85.     protected $metadata = [];
  86.     /**
  87.      * @var \DateTime
  88.      *
  89.      * @ORM\Column(type="datetime", name="created_at")
  90.      */
  91.     #[ORM\Column(name'created_at'type'datetime')]
  92.     protected $createdAt;
  93.     /**
  94.      * @var \DateTime
  95.      *
  96.      * @ORM\Column(type="datetime", name="updated_at")
  97.      */
  98.     #[ORM\Column(name'updated_at'type'datetime')]
  99.     protected $updatedAt;
  100.     /**
  101.      * @var Folder
  102.      *
  103.      * @ORM\ManyToOne(targetEntity="Folder", inversedBy="media")
  104.      * @ORM\JoinColumn(name="folder_id", referencedColumnName="id")
  105.      */
  106.     #[ORM\ManyToOne(targetEntityFolder::class, inversedBy'media')]
  107.     #[ORM\JoinColumn(name'folder_id'referencedColumnName'id')]
  108.     protected $folder;
  109.     protected $content;
  110.     /**
  111.      * @var int
  112.      *
  113.      * @ORM\Column(type="integer", nullable=true)
  114.      */
  115.     #[ORM\Column(name'filesize'type'integer'nullabletrue)]
  116.     protected $filesize;
  117.     /**
  118.      * @var string
  119.      *
  120.      * @ORM\Column(type="string", nullable=true)
  121.      */
  122.     #[ORM\Column(name'url'type'string'nullabletrue)]
  123.     protected $url;
  124.     /**
  125.      * @var string
  126.      *
  127.      * @ORM\Column(type="string", nullable=true, name="original_filename")
  128.      */
  129.     #[ORM\Column(name'original_filename'type'string'nullabletrue)]
  130.     protected $originalFilename;
  131.     /**
  132.      * @var bool
  133.      *
  134.      * @ORM\Column(type="boolean")
  135.      */
  136.     #[ORM\Column(name'deleted'type'boolean')]
  137.     protected $deleted;
  138.     /**
  139.      * @var bool
  140.      *
  141.      * @ORM\Column(type="boolean", name="removed_from_file_system")
  142.      */
  143.     #[ORM\Column(name'removed_from_file_system'type'boolean')]
  144.     protected $removedFromFileSystem;
  145.     public function __construct()
  146.     {
  147.         $this->setCreatedAt(new \DateTime());
  148.         $this->setUpdatedAt(new \DateTime());
  149.         $this->deleted false;
  150.         $this->removedFromFileSystem false;
  151.     }
  152.     /**
  153.      * @param string $locale
  154.      *
  155.      * @return Media
  156.      */
  157.     public function setTranslatableLocale($locale)
  158.     {
  159.         $this->locale $locale;
  160.         return $this;
  161.     }
  162.     /**
  163.      * @return string
  164.      */
  165.     public function getFileSize()
  166.     {
  167.         $size $this->filesize;
  168.         if ($size === null) {
  169.             return '';
  170.         }
  171.         if ($size 1024) {
  172.             return $size 'b';
  173.         } else {
  174.             $help $size 1024;
  175.             if ($help 1024) {
  176.                 return round($help1) . 'kb';
  177.             } else {
  178.                 return round($help 10241) . 'mb';
  179.             }
  180.         }
  181.     }
  182.     /**
  183.      * @return int
  184.      */
  185.     public function getFileSizeBytes()
  186.     {
  187.         return $this->filesize;
  188.     }
  189.     /**
  190.      * @param int $filesize
  191.      *
  192.      * @return Media
  193.      */
  194.     public function setFileSize($filesize)
  195.     {
  196.         $this->filesize $filesize;
  197.         return $this;
  198.     }
  199.     /**
  200.      * Set uuid
  201.      *
  202.      * @param string $uuid
  203.      *
  204.      * @return Media
  205.      */
  206.     public function setUuid($uuid)
  207.     {
  208.         $this->uuid $uuid;
  209.         return $this;
  210.     }
  211.     /**
  212.      * Get uuid
  213.      *
  214.      * @return string
  215.      */
  216.     public function getUuid()
  217.     {
  218.         return $this->uuid;
  219.     }
  220.     /**
  221.      * Set name
  222.      *
  223.      * @param string $name
  224.      *
  225.      * @return Media
  226.      */
  227.     public function setName($name)
  228.     {
  229.         $this->name $name;
  230.         return $this;
  231.     }
  232.     /**
  233.      * Get name
  234.      *
  235.      * @return string
  236.      */
  237.     public function getName()
  238.     {
  239.         return $this->name;
  240.     }
  241.     /**
  242.      * Set location
  243.      *
  244.      * @param string $location
  245.      *
  246.      * @return Media
  247.      */
  248.     public function setLocation($location)
  249.     {
  250.         $this->location $location;
  251.         return $this;
  252.     }
  253.     /**
  254.      * Get location
  255.      *
  256.      * @return string
  257.      */
  258.     public function getLocation()
  259.     {
  260.         return $this->location;
  261.     }
  262.     /**
  263.      * Set contentType
  264.      *
  265.      * @param string $contentType
  266.      *
  267.      * @return Media
  268.      */
  269.     public function setContentType($contentType)
  270.     {
  271.         $this->contentType $contentType;
  272.         return $this;
  273.     }
  274.     /**
  275.      * Get contentType
  276.      *
  277.      * @return string
  278.      */
  279.     public function getContentType()
  280.     {
  281.         return $this->contentType;
  282.     }
  283.     /**
  284.      * Get contentType
  285.      *
  286.      * @return string
  287.      */
  288.     public function getContentTypeShort()
  289.     {
  290.         $contentType $this->contentType;
  291.         $array explode('/'$contentType);
  292.         $contentType end($array);
  293.         return $contentType;
  294.     }
  295.     /**
  296.      * Set metadata
  297.      *
  298.      * @param array $metadata
  299.      *
  300.      * @return Media
  301.      */
  302.     public function setMetadata($metadata)
  303.     {
  304.         $this->metadata $metadata;
  305.         return $this;
  306.     }
  307.     /**
  308.      * Get metadata
  309.      *
  310.      * @return array
  311.      */
  312.     public function getMetadata()
  313.     {
  314.         return $this->metadata;
  315.     }
  316.     /**
  317.      * Set the specified metadata value
  318.      *
  319.      * @param string $key
  320.      *
  321.      * @return Media
  322.      */
  323.     public function setMetadataValue($key$value)
  324.     {
  325.         $this->metadata[$key] = $value;
  326.         return $this;
  327.     }
  328.     /**
  329.      * Get the specified metadata value
  330.      *
  331.      * @param string $key
  332.      *
  333.      * @return mixed|null
  334.      */
  335.     public function getMetadataValue($key)
  336.     {
  337.         return isset($this->metadata[$key]) ? $this->metadata[$key] : null;
  338.     }
  339.     /**
  340.      * Set createdAt
  341.      *
  342.      * @param \DateTime $createdAt
  343.      *
  344.      * @return Media
  345.      */
  346.     public function setCreatedAt($createdAt)
  347.     {
  348.         $this->createdAt $createdAt;
  349.         return $this;
  350.     }
  351.     /**
  352.      * Get createdAt
  353.      *
  354.      * @return \DateTime
  355.      */
  356.     public function getCreatedAt()
  357.     {
  358.         return $this->createdAt;
  359.     }
  360.     /**
  361.      * Set updatedAt
  362.      *
  363.      * @param \DateTime $updatedAt
  364.      *
  365.      * @return Media
  366.      */
  367.     public function setUpdatedAt($updatedAt)
  368.     {
  369.         $this->updatedAt $updatedAt;
  370.         return $this;
  371.     }
  372.     /**
  373.      * Get updatedAt
  374.      *
  375.      * @return \DateTime
  376.      */
  377.     public function getUpdatedAt()
  378.     {
  379.         return $this->updatedAt;
  380.     }
  381.     /**
  382.      * Set content
  383.      *
  384.      * @return Media
  385.      */
  386.     public function setContent($content)
  387.     {
  388.         $this->content $content;
  389.         $this->setUpdatedAt(new \DateTime());
  390.         return $this;
  391.     }
  392.     /**
  393.      * Get content
  394.      */
  395.     public function getContent()
  396.     {
  397.         return $this->content;
  398.     }
  399.     /**
  400.      * Set folder
  401.      *
  402.      * @return Media
  403.      */
  404.     public function setFolder(Folder $folder)
  405.     {
  406.         $this->folder $folder;
  407.         return $this;
  408.     }
  409.     /**
  410.      * Get folder
  411.      *
  412.      * @return Folder
  413.      */
  414.     public function getFolder()
  415.     {
  416.         return $this->folder;
  417.     }
  418.     /**
  419.      * @return bool
  420.      */
  421.     public function isDeleted()
  422.     {
  423.         return $this->deleted;
  424.     }
  425.     /**
  426.      * @param bool $deleted
  427.      *
  428.      * @return Media
  429.      */
  430.     public function setDeleted($deleted)
  431.     {
  432.         $this->deleted $deleted;
  433.         return $this;
  434.     }
  435.     /**
  436.      * @return string
  437.      */
  438.     public function getUrl()
  439.     {
  440.         return $this->url;
  441.     }
  442.     /**
  443.      * @param string $url
  444.      *
  445.      * @return Media
  446.      */
  447.     public function setUrl($url)
  448.     {
  449.         $this->url $url;
  450.         return $this;
  451.     }
  452.     /**
  453.      * @param string $copyright
  454.      *
  455.      * @return Media
  456.      */
  457.     public function setCopyright($copyright)
  458.     {
  459.         $this->copyright $copyright;
  460.         return $this;
  461.     }
  462.     /**
  463.      * @return string
  464.      */
  465.     public function getCopyright()
  466.     {
  467.         return $this->copyright;
  468.     }
  469.     /**
  470.      * @param string $originalFilename
  471.      *
  472.      * @return Media
  473.      */
  474.     public function setOriginalFilename($originalFilename)
  475.     {
  476.         $this->originalFilename $originalFilename;
  477.         return $this;
  478.     }
  479.     /**
  480.      * @return string
  481.      */
  482.     public function getOriginalFilename()
  483.     {
  484.         return $this->originalFilename;
  485.     }
  486.     /**
  487.      * @param string $description
  488.      *
  489.      * @return Media
  490.      */
  491.     public function setDescription($description)
  492.     {
  493.         $this->description $description;
  494.         return $this;
  495.     }
  496.     /**
  497.      * @return string
  498.      */
  499.     public function getDescription()
  500.     {
  501.         return $this->description;
  502.     }
  503.     /**
  504.      * @return bool
  505.      */
  506.     public function isRemovedFromFileSystem()
  507.     {
  508.         return $this->removedFromFileSystem;
  509.     }
  510.     /**
  511.      * @param bool $removedFromFileSystem
  512.      */
  513.     public function setRemovedFromFileSystem($removedFromFileSystem)
  514.     {
  515.         $this->removedFromFileSystem $removedFromFileSystem;
  516.     }
  517.     /**
  518.      * @ORM\PreUpdate
  519.      */
  520.     #[ORM\PreUpdate]
  521.     public function preUpdate()
  522.     {
  523.         $this->setUpdatedAt(new \DateTime());
  524.     }
  525.     /**
  526.      * @ORM\PrePersist
  527.      */
  528.     #[ORM\PrePersist]
  529.     public function prePersist()
  530.     {
  531.         if (empty($this->name)) {
  532.             $this->setName($this->getOriginalFilename());
  533.         }
  534.     }
  535. }