<?php
namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use App\Repository\SlideRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
use Symfony\Component\Serializer\Annotation\Groups;
#[ORM\Entity(repositoryClass: SlideRepository::class)]
#[ApiResource(
normalizationContext: ['groups' => ['slider:read']],
denormalizationContext: ['groups' => ['slider:write']],
order: ['id' => 'DESC'],
)]
#[ApiFilter(
SearchFilter::class,
properties: [
'slider.id' => 'exact',
'slider.slug' => 'ipartial',
'name' => 'ipartial',
]
)]
class Slide
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?int $id = null;
#[ORM\Column(length: 255, nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?string $name = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?string $content = null;
#[ORM\ManyToOne(inversedBy: 'slides')]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?MediaObject $media = null;
#[ORM\Column(nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?array $data = null;
#[ORM\Column(length: 255, nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?string $btnUrl = null;
#[ORM\Column(length: 255, nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?string $mediaUrl = null;
#[ORM\ManyToOne(inversedBy: 'slides')]
#[Groups(['slider:read', 'slider:write'])]
private ?Slider $slider = null;
#[ORM\Column(nullable: true)]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?int $orders = null;
#[ORM\ManyToOne(inversedBy: 'MobileSlides')]
#[Groups(['slider:read', 'slider:write', 'page:read'])]
private ?MediaObject $mobileMedia = null;
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(?string $name): static
{
$this->name = $name;
return $this;
}
public function getContent(): ?string
{
return $this->content;
}
public function setContent(?string $content): static
{
$this->content = $content;
return $this;
}
public function getMedia(): ?MediaObject
{
return $this->media;
}
public function setMedia(?MediaObject $media): static
{
$this->media = $media;
return $this;
}
public function getData(): ?array
{
return $this->data;
}
public function setData(?array $data): static
{
$this->data = $data;
return $this;
}
public function getBtnUrl(): ?string
{
return $this->btnUrl;
}
public function setBtnUrl(?string $btnUrl): static
{
$this->btnUrl = $btnUrl;
return $this;
}
public function getMediaUrl(): ?string
{
return $this->mediaUrl;
}
public function setMediaUrl(?string $mediaUrl): static
{
$this->mediaUrl = $mediaUrl;
return $this;
}
public function getSlider(): ?Slider
{
return $this->slider;
}
public function setSlider(?Slider $slider): static
{
$this->slider = $slider;
return $this;
}
public function getOrders(): ?int
{
return $this->orders;
}
public function setOrders(?int $orders): static
{
$this->orders = $orders;
return $this;
}
public function getMobileMedia(): ?MediaObject
{
return $this->mobileMedia;
}
public function setMobileMedia(?MediaObject $mobileMedia): static
{
$this->mobileMedia = $mobileMedia;
return $this;
}
}