src/Entity/MediaObject/MediaMultiOffer.php line 43

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\Repository\MediaObject\MediaMultiOfferRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\HttpFoundation\File\File;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. use Symfony\Component\Serializer\Annotation\SerializedName;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  12. /**
  13.  * @ApiResource(
  14.  *     attributes={
  15.  *          "normalization_context"={"groups"={
  16.  *              "media_object_read",
  17.  *              "MediaMultiOffer:output",
  18.  *              "MediaMultiOffer:io",
  19.  *              "OperationMultiOffer:output",
  20.  *          }},
  21.  *          "denormalization_context"={"groups"={
  22.  *              "media_object_read",
  23.  *              "MediaMultiOffer:input",
  24.  *              "MediaMultiOffer:io",
  25.  *              "OperationMultiOffer:input",
  26.  *          }}
  27.  *      },
  28.  *     iri="http://schema.org/MediaMultiOffer",
  29.  *     collectionOperations={
  30.  *         "get"
  31.  *     },
  32.  *     itemOperations={
  33.  *         "get"
  34.  *     }
  35.  * )
  36.  *
  37.  * @ORM\Entity(repositoryClass=MediaMultiOfferRepository::class)
  38.  * @Vich\Uploadable
  39.  */
  40. class MediaMultiOffer extends MediaObject
  41. {
  42.     /**
  43.      * @Assert\NotNull(
  44.      *     groups={
  45.      *     "media_object_read",
  46.      *     "MediaMultiOffer:io",
  47.      *     "MediaObject:output",
  48.      *     "OperationMultiOffer:output",
  49.      * })
  50.      * @Vich\UploadableField(mapping="multi_offer", fileNameProperty="filePath")
  51.      */
  52.     public ?File $file null;
  53.     /**
  54.      * @var string|null
  55.      *
  56.      * @ORM\Column(nullable=true)
  57.      * @SerializedName("file_path")
  58.      * @Groups({
  59.      *     "OperationMultiOffer:output",
  60.      *     "MediaMultiOffer:output",
  61.      * })
  62.      */
  63.     public $filePath;
  64.     /**
  65.      * @var string|null
  66.      * @ApiProperty(iri="http://schema.org/contentUrl")
  67.      * @Groups({
  68.      *     "MediaObject:output",
  69.      *     "OperationMultiOffer:output",
  70.      *     "MediaMultiOffer:output",
  71.      * })
  72.      */
  73.     private ?string $contentUrl;
  74.     /**
  75.      * @return string|null
  76.      */
  77.     public function getContentUrl(): ?string
  78.     {
  79.         return $this->contentUrl;
  80.     }
  81.     /**
  82.      * @param string|null $contentUrl
  83.      * @return MediaMultiOffer
  84.      */
  85.     public function setContentUrl(?string $contentUrl): MediaMultiOffer
  86.     {
  87.         $this->contentUrl $contentUrl;
  88.         return $this;
  89.     }
  90.     /**
  91.      * @return File|null
  92.      */
  93.     public function getFile(): ?File
  94.     {
  95.         return $this->file;
  96.     }
  97.     /**
  98.      * @param File|null $file
  99.      * @return MediaMultiOffer
  100.      */
  101.     public function setFile(?File $file): MediaMultiOffer
  102.     {
  103.         $this->file $file;
  104.         if ($file) {
  105.             $this->updatedAt = new \DateTime();
  106.         }
  107.         return $this;
  108.     }
  109.     /**
  110.      * @return string|null
  111.      */
  112.     public function getFilePath(): ?string
  113.     {
  114.         return $this->filePath;
  115.     }
  116.     /**
  117.      * @param string|null $filePath
  118.      * @return MediaMultiOffer
  119.      */
  120.     public function setFilePath(?string $filePath): MediaMultiOffer
  121.     {
  122.         $this->filePath $filePath;
  123.         return $this;
  124.     }
  125. }