src/Entity/MediaObject/MediaSlider.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Entity\MediaObject;
  3. use ApiPlatform\Core\Annotation\ApiProperty;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Entity\Slider;
  6. use App\Repository\MediaObject\MediaSliderRepository;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\HttpFoundation\File\File;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use Symfony\Component\Serializer\Annotation\SerializedName;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  13. /**
  14.  * @ApiResource(
  15.  *     attributes={
  16.  *          "normalization_context"={"groups"={
  17.  *              "media_object_read",
  18.  *              "MediaSlider:output",
  19.  *              "MediaSlider:io",
  20.  *              "Slider:output",
  21.  *          }},
  22.  *          "denormalization_context"={"groups"={
  23.  *              "media_object_read",
  24.  *              "MediaSlider:input",
  25.  *              "MediaSlider:io",
  26.  *              "Slider:input",
  27.  *          }}
  28.  *      },
  29.  *     iri="http://schema.org/MediaSlider",
  30.  *     collectionOperations={
  31.  *         "get"
  32.  *     },
  33.  *     itemOperations={
  34.  *         "get"
  35.  *     }
  36.  * )
  37.  *
  38.  * @ORM\Entity(repositoryClass=MediaSliderRepository::class)
  39.  * @Vich\Uploadable
  40.  */
  41. class MediaSlider extends MediaObject
  42. {
  43.     /**
  44.      * @ORM\ManyToOne(targetEntity=Slider::class, inversedBy="mediaSliders", cascade={"persist"})
  45.      * @ORM\JoinColumn(nullable=true, name="object_id")
  46.      * @SerializedName("slider")
  47.      */
  48.     private $slider;
  49.     /**
  50.      * @var string|null
  51.      * @ApiProperty(iri="http://schema.org/contentUrl")
  52.      * @SerializedName("content_url")
  53.      * @Groups({
  54.      *     "MediaObject:output",
  55.      *     "MediaSlider:output",
  56.      *     "media_object_read",
  57.      *     "Slider:output",
  58.      * })
  59.      */
  60.     private $contentUrl;
  61.     /**
  62.      * @var File|null
  63.      * @Assert\NotNull(
  64.      *     groups={
  65.      *     "media_object_read",
  66.      *     "MediaSlider:io",
  67.      *     "MediaObject:output",
  68.      * })
  69.      * @Vich\UploadableField(mapping="slider_image", fileNameProperty="filePath")
  70.      * @Groups({
  71.      *     "Slider:output",
  72.      * })
  73.      */
  74.     public $file;
  75.     /**
  76.      * @var string|null
  77.      *
  78.      * @ORM\Column(nullable=true)
  79.      * @SerializedName("file_path")
  80.      * @Groups({
  81.      *     "Slider:output",
  82.      * })
  83.      */
  84.     public $filePath;
  85.     /**
  86.      * @return mixed
  87.      */
  88.     public function getSlider()
  89.     {
  90.         return $this->slider;
  91.     }
  92.     public function setSlider($slider)
  93.     {
  94.         $this->slider $slider;
  95.         return $this;
  96.     }
  97.     /**
  98.      * @return string|null
  99.      */
  100.     public function getContentUrl(): ?string
  101.     {
  102.         return $this->contentUrl;
  103.     }
  104.     /**
  105.      * @param string|null $contentUrl
  106.      * @return MediaSlider
  107.      */
  108.     public function setContentUrl(?string $contentUrl): MediaSlider
  109.     {
  110.         $this->contentUrl $contentUrl;
  111.         return $this;
  112.     }
  113.     /**
  114.      * @return string|null
  115.      */
  116.     public function __toString()
  117.     {
  118.         return "".$this->slider;
  119.     }
  120. }