src/Entity/MediaObject/MediaParticipation.php line 73

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\Controller\Api\MediaObject\CreateMediaParticipationAction;
  6. use App\Entity\Participation\Participation;
  7. use App\Repository\MediaObject\MediaParticipationRepository;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Symfony\Component\Serializer\Annotation\Groups;
  11. use Symfony\Component\Serializer\Annotation\SerializedName;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  14. /**
  15.  * @ApiResource(
  16.  *     attributes={
  17.  *          "normalization_context"={"groups"={
  18.  *              "media_object_read",
  19.  *              "MediaParticipation:io",
  20.  *              "MediaParticipation:output",
  21.  *          }},
  22.  *          "denormalization_context"={"groups"={
  23.  *              "media_object_read",
  24.  *              "MediaParticipation:io",
  25.  *              "MediaParticipation:input",
  26.  *              "get_participation-steps_by_user",
  27.  *              "get_participation_odrs_by_user",
  28.  *              "get_participation_odrs_by_id",
  29.  *          }}
  30.  *      },
  31.  *     iri="http://schema.org/MediaParticipation",
  32.  *     collectionOperations={
  33.  *         "post"={
  34.  *             "controller"=CreateMediaParticipationAction::class,
  35.  *             "deserialize"=false,
  36.  *             "security"="is_granted('ROLE_USER')",
  37.  *             "validation_groups"={
  38.  *                  "Default",
  39.  *                  "media_object_create",
  40.  *                  "MediaParticipation:io",
  41.  *              },
  42.  *             "openapi_context"={
  43.  *                 "requestBody"={
  44.  *                     "content"={
  45.  *                         "multipart/form-data"={
  46.  *                             "schema"={
  47.  *                                 "type"="object",
  48.  *                                 "properties"={
  49.  *                                     "file"={
  50.  *                                         "type"="string",
  51.  *                                         "format"="binary"
  52.  *                                     }
  53.  *                                 }
  54.  *                             }
  55.  *                         }
  56.  *                     }
  57.  *                 }
  58.  *             }
  59.  *         },
  60.  *         "get"
  61.  *     },
  62.  *     itemOperations={
  63.  *         "get"
  64.  *     }
  65.  * )
  66.  *
  67.  * @ORM\Entity(repositoryClass=MediaParticipationRepository::class)
  68.  * @Vich\Uploadable
  69.  */
  70. class MediaParticipation extends MediaObject
  71. {
  72.     /**
  73.      * @ORM\ManyToOne(targetEntity=Participation::class, inversedBy="invoices")
  74.      * @ORM\JoinColumn(nullable=true, name="object_id")
  75.      * @SerializedName("participation")
  76.      * @Groups({
  77.      *     "MediaParticipation:output",
  78.      *     "MediaObject:output",
  79.      * })
  80.      */
  81.     private $participation;
  82.     /**
  83.      * @var string|null
  84.      * @ApiProperty(iri="http://schema.org/contentUrl")
  85.      * @SerializedName("content_url")
  86.      * @Groups({
  87.      *     "media_object_read",
  88.      *     "MediaParticipation:io",
  89.      *     "MediaObject:io",
  90.      *     "ParticipationStep:output",
  91.      *     "ParticipationOdr:output",
  92.      *     "get_participation_odrs_by_user",
  93.      *     "get_participation_odrs_by_id",
  94.      * })
  95.      */
  96.     private $contentUrl;
  97.     /**
  98.      * @var File|null
  99.      *
  100.      * @Assert\NotNull(
  101.      *     groups={
  102.      *     "media_object_read",
  103.      *     "MediaObject:output",
  104.      * })
  105.      * @Vich\UploadableField(mapping="media_object", fileNameProperty="filePath")
  106.      */
  107.     public $file;
  108.     /**
  109.      * @var string|null
  110.      *
  111.      * @ORM\Column(nullable=true)
  112.      * @SerializedName("file_path")
  113.      * @Groups({
  114.      *     "media_object_read",
  115.      *     "MediaProduct:io",
  116.      *     "MediaObject:io",
  117.      *     "ParticipationPuntos:output",
  118.      *     "ParticipationOdr:output",
  119.      *     "get_participation_odrs_by_user",
  120.      *     "get_participation_odrs_by_id",
  121.      * })
  122.      */
  123.     public $filePath;
  124.     public function getParticipation()
  125.     {
  126.         return $this->participation;
  127.     }
  128.     public function setParticipation($participation)
  129.     {
  130.         $this->participation $participation;
  131.         return $this;
  132.     }
  133.     /**
  134.      * @return string|null
  135.      */
  136.     public function getContentUrl(): ?string
  137.     {
  138.         return $this->contentUrl;
  139.     }
  140.     /**
  141.      * @param string|null $contentUrl
  142.      * @return MediaParticipation
  143.      */
  144.     public function setContentUrl(?string $contentUrl): MediaParticipation
  145.     {
  146.         $this->contentUrl $contentUrl;
  147.         return $this;
  148.     }
  149. }