<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use JsonSerializable;
/**
* @ApiResource()
* @ORM\Entity
* @ORM\Table(name="screen_types")
* @package App\Entity
*/
class ScreenType implements JsonSerializable
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=128, nullable=true)
*/
private $name;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $fileExtension;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Screen", mappedBy="screenType", fetch="EXTRA_LAZY", cascade={"persist"})
* @ORM\OrderBy({"name" = "ASC"})
*/
private $screens;
public function __construct()
{
$this->points = new ArrayCollection();
}
public function __toString()
{
return (string) $this->getName();
}
public function jsonSerialize()
{
return array(
'id'=> $this->id,
'name' => $this->name,
'fileExtension' => $this->fileExtension,
// 'dateAdded' => $this->dateAdded,
// 'dateModified' => $this->dateModified,
);
}
/**
* get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* set name
*
* @param string $name
*
* @return ScreenType
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* get fileExtension
*
* @return string
*/
public function getFileExtension()
{
return $this->fileExtension;
}
/**
* set fileExtension
*
* @param string $fileExtension
*
* @return Screen
*/
public function setFileExtension($fileExtension)
{
$this->fileExtension = $fileExtension;
return $this;
}
/**
* get screens
*
* @return Collection|Point[]
*/
public function getScreens()
{
return $this->screens;
}
public function addScreen(\App\Entity\Screen $screen)
{
if (!$this->screens->contains($screen)) {
$this->screens[] = $screen;
$screen->setScreenType($this);
}
return $this;
}
public function removePoint(\App\Entity\Screen $screen)
{
if ($this->screens->contains($screen)) {
$this->screens->removeElement($screen);
// set the owning side to null (unless already changed)
if ($screen->getScreenType() === $this) {
$screen->setScreenType(null);
}
}
return $this;
}
}