<?php
namespace App\Entity;
use App\Repository\SliderItemRepository;
use App\Traits\DateTrait;
use DateTime;
use DateTimeInterface;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass=SliderItemRepository::class)
* @ORM\HasLifecycleCallbacks
*
* @Vich\Uploadable
*/
class SliderItem
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $image;
// Vich Uploader
/**
* @Vich\UploadableField(mapping="slider_item_images", fileNameProperty="image")
* @var File
*/
private $imageFile;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $url;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $urlcible;
/**
* @ORM\Column(type="integer", options={"default": 99})
*/
private $orderItem;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $title;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $description;
use DateTrait;
/**
* @ORM\ManyToOne(targetEntity=Slider::class, inversedBy="items")
* @ORM\JoinColumn(nullable=false)
*/
private $slider;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $dateStart;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $dateEnd;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $displayTitle;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $displayJob;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $displayUniverses;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $productSku;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $btnLink;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $btnText;
/**
* SliderItem constructor.
*
*/
public function __construct()
{
$this->orderItem = 99;
}
public function __toString()
{
return $this->image;
}
public function getId(): ?int
{
return $this->id;
}
public function getImageFile()
{
return $this->imageFile;
}
/**
* @param File $imageFile
*
* @return void
*/
public function setImageFile( File $imageFile ): void
{
$this->imageFile = $imageFile;
if ( NULL !== $imageFile ) {
// It is required that at least one field changes if you are using doctrine
// otherwise the event listeners won't be called and the file is lost
$this->updatedAt = new DateTime();
}
}
public function getImage(): ?string
{
return $this->image;
}
public function setImage( ?string $image ): self
{
$this->image = $image;
return $this;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl( ?string $url ): self
{
$this->url = $url;
return $this;
}
public function getUrlcible(): ?string
{
return $this->urlcible;
}
public function setUrlcible( ?string $urlcible ): self
{
$this->urlcible = $urlcible;
return $this;
}
public function getOrderItem(): ?int
{
return $this->orderItem;
}
public function setOrderItem( int $orderItem ): self
{
$this->orderItem = $orderItem;
return $this;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle( ?string $title ): self
{
$this->title = $title;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription( ?string $description ): self
{
$this->description = $description;
return $this;
}
public function getSlider(): ?Slider
{
return $this->slider;
}
public function setSlider( ?Slider $slider ): self
{
$this->slider = $slider;
return $this;
}
public function getDateStart(): ?DateTimeInterface
{
return $this->dateStart;
}
public function setDateStart( ?DateTimeInterface $dateStart ): self
{
$this->dateStart = $dateStart;
return $this;
}
public function getDateEnd(): ?DateTimeInterface
{
return $this->dateEnd;
}
public function setDateEnd( ?DateTimeInterface $dateEnd ): self
{
$this->dateEnd = $dateEnd;
return $this;
}
public function isDisplayTitle(): ?bool
{
return $this->displayTitle;
}
public function setDisplayTitle(?bool $displayTitle): self
{
$this->displayTitle = $displayTitle;
return $this;
}
public function getDisplayJob(): ?array
{
if ($this->displayJob === NULL) {
return NULL;
}
return explode(';', $this->displayJob);
}
public function setDisplayJob(?array $displayJob): self
{
if ($displayJob === []) {
$this->displayJob = NULL;
} else {
$this->displayJob = implode(';', $displayJob);
}
return $this;
}
public function getDisplayUniverses(): ?array
{
if ($this->displayUniverses === NULL) {
return NULL;
}
return explode(';', $this->displayUniverses);
}
public function setDisplayUniverses(?array $displayUniverses): self
{
if ($displayUniverses === []) {
$this->displayUniverses = NULL;
} else {
$this->displayUniverses = implode(';', $displayUniverses);
}
return $this;
}
public function getProductSku(): ?string
{
return $this->productSku;
}
public function setProductSku(?string $productSku): self
{
$this->productSku = $productSku;
return $this;
}
public function isBtnLink(): ?bool
{
return $this->btnLink;
}
public function setBtnLink(?bool $btnLink): self
{
$this->btnLink = $btnLink;
return $this;
}
public function getBtnText(): ?string
{
return $this->btnText;
}
public function setBtnText(?string $btnText): self
{
$this->btnText = $btnText;
return $this;
}
}