src/Entity/StudioMedia.php line 51
<?phpnamespace App\Entity;use ApiPlatform\Doctrine\Orm\Filter\DateFilter;use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;use ApiPlatform\Metadata\ApiFilter;use ApiPlatform\Metadata\ApiResource;use ApiPlatform\Metadata\Get;use ApiPlatform\Metadata\GetCollection;use ApiPlatform\Serializer\Filter\PropertyFilter;use App\Repository\StudioMediaRepository;use DateTimeImmutable;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\ORM\Mapping as ORM;use Doctrine\ORM\Mapping\OrderBy;use Symfony\Component\Serializer\Annotation\Groups;//openapi: false#[ORM\Entity(repositoryClass: StudioMediaRepository::class)]#[ApiFilter(PropertyFilter::class)]#[ApiResource(shortName: 'Studio Medien',description: 'Studio API Medien',operations: [new Get(uriTemplate: '/api-medien/{id}'),new GetCollection(uriTemplate: '/api-medien', paginationEnabled: false),],formats: ['jsonld','json','jsonhal','csv' => 'text/csv',],normalizationContext: ['groups' => ['api-medien:read'],],denormalizationContext: ['groups' => ['api-medien:write'],],//paginationItemsPerPage: 10,),ApiFilter(OrderFilter::class,properties: ['position' => 'ASC',])]class StudioMedia{#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]#[Groups(['api-medien:read','news:read','studio:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]private ?int $id = null;#[ORM\Column(length: 255)]#[Groups(['api-medien:read','news:read','studio:read','seo:read'])]private ?string $original = null;#[ORM\Column(length: 255)]#[Groups(['api-medien:read','news:read','studio:read','seo:read'])]private ?string $filename = null;#[ORM\Column(length: 64)]#[Groups(['api-medien:read','news:read','studio:read'])]private ?string $size = null;#[ORM\Column(length: 24)]#[Groups(['api-medien:read', 'news:read','studio:read','seo:read'])]private ?string $type = null;#[ORM\Column(length: 24)]#[Groups(['api-medien:read','news:read','studio:read','seo:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]private ?string $handle = null;#[ORM\Column(length: 128)]#[Groups(['api-medien:read','news:read','studio:read'])]private ?string $mimeType = null;#[ORM\Column(length: 64, nullable: true)]#[Groups(['api-medien:read','news:read','studio:read','seo:read'])]private ?string $title = null;#[ORM\Column(length: 128, nullable: true)]#[Groups(['api-medien:read','news:read','studio:read'])]private ?string $alt = null;#[ORM\Column(length: 255, nullable: true)]#[Groups(['api-medien:read','news:read','studio:read'])]private ?string $description = null;#[ORM\Column(length: 128, nullable: true)]#[Groups(['api-medien:read','news:read','studio:read'])]private ?string $custom = null;#[ORM\Column]#[Groups(['api-medien:read'])]private ?DateTimeImmutable $createdAt = null;#[ORM\ManyToOne(inversedBy: 'studioMedia')]#[ORM\JoinColumn(nullable: true)]#[Groups(['api-medien:read','news:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]protected ?Studio $studio;#[ORM\ManyToOne(inversedBy: 'studioMedia')]#[ORM\JoinColumn(nullable: true)]protected ?News $news;#[ORM\Column(nullable: true, options: ['default' => 0])]#[Groups(['api-medien:read'])]//#[orderBY(['position'=>'ASC'])]private ?int $position = null;/*#[ORM\ManyToOne(targetEntity: Studio::class)]#[Groups(['api-medien:read'])]#[ORM\JoinColumn(name: "studio_id", referencedColumnName: "id", nullable: true)]protected ?Studio $studioMedia;*/public function __construct(){$this->createdAt = new DateTimeImmutable();$this->position = 0;}public function getId(): ?int{return $this->id;}public function getOriginal(): ?string{return $this->original;}public function setOriginal(string $original): self{$this->original = $original;return $this;}public function getFilename(): ?string{return $this->filename;}public function setFilename(string $filename): self{$this->filename = $filename;return $this;}public function getSize(): ?string{return $this->size;}public function setSize(string $size): self{$this->size = $size;return $this;}public function getType(): ?string{return $this->type;}public function setType(string $type): self{$this->type = $type;return $this;}public function getHandle(): ?string{return $this->handle;}public function setHandle(string $handle): self{$this->handle = $handle;return $this;}public function getMimeType(): ?string{return $this->mimeType;}public function setMimeType(string $mimeType): self{$this->mimeType = $mimeType;return $this;}public function getTitle(): ?string{return $this->title;}public function setTitle(?string $title): self{$this->title = $title;return $this;}public function getAlt(): ?string{return $this->alt;}public function setAlt(?string $alt): self{$this->alt = $alt;return $this;}public function getDescription(): ?string{return $this->description;}public function setDescription(?string $description): self{$this->description = $description;return $this;}public function getCustom(): ?string{return $this->custom;}public function setCustom(?string $custom): self{$this->custom = $custom;return $this;}public function getStudio(): ?Studio{return $this->studio;}public function setStudio(?Studio $studio): self{$this->studio = $studio;return $this;}public function getPosition(): ?int{return $this->position;}public function setPosition(?int $position): self{$this->position = $position;return $this;}public function getNews(): ?News{return $this->news;}public function setNews(?News $news): self{$this->news = $news;return $this;}public function getCreatedAt(): ?DateTimeImmutable{return $this->createdAt;}public function setCreatedAt(DateTimeImmutable $createdAt): self{$this->createdAt = $createdAt;return $this;}}