<?php
namespace App\Entity;
use App\Repository\CourtRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Symfony\Component\Serializer\Annotation\Groups;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Gedmo\Translatable\Translatable;
use Symfony\Component\Serializer\Annotation\Ignore;
/**
* @ORM\Entity(repositoryClass=CourtRepository::class)
*/
class Court
{
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @Groups("program:list", "program:item", "atpprogram:list", "atpprogram:item")
* @Groups({"atpmatch_result:list", "atpmatch_result:item", "atpmatch_result:list", "atpmatch_result:item","atpprogram:list", "atpprogram:item"})
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups("program:list", "program:item", "atpprogram:list", "atpprogram:item")
* @Groups({"atpmatch_result:list", "atpmatch_result:item", "atpmatch_result:list", "atpmatch_result:item","atpprogram:list", "atpprogram:item"})
*/
private $name;
/**
* @ORM\ManyToMany(targetEntity=Program::class, mappedBy="tennisCourts")
* @Ignore()
*/
private $programs;
/**
* @ORM\OneToMany(targetEntity=Game::class, mappedBy="court", orphanRemoval=true)
* @Groups("program:list", "program:item")
*/
private $games;
/**
* @ORM\Column(type="integer", nullable=true)
* @Groups({"program:list", "program:item", "atpprogram:list", "atpprogram:item","atpprogram:list", "atpprogram:item"})
* @Groups("atpmatch_result:list", "atpmatch_result:item")
*/
private $apiId;
/**
* @ORM\Column(type="integer")
* @Groups({"program:list", "program:item", "atpprogram:list", "atpprogram:item","atpprogram:list", "atpprogram:item"})
*/
private $courtId;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({"program:list", "program:item", "atpprogram:list", "atpprogram:item","atpprogram:list", "atpprogram:item"})
*/
private $courtOffset;
/**
* @ORM\Column(type="time", nullable=true)
* @Groups({"program:list", "program:item", "atpprogram:list", "atpprogram:item","atpprogram:list", "atpprogram:item"})
*/
private $displayTime;
/**
* @ORM\OneToMany(targetEntity=ATPProgramCourt::class, mappedBy="court")
* @Ignore()
*/
private $aTPProgramCourts;
/**
* @ORM\OneToMany(targetEntity=ATPMatchResult::class, mappedBy="court")
* @Ignore()
*/
private $aTPMatchResults;
public function __construct()
{
$this->programs = new ArrayCollection();
$this->games = new ArrayCollection();
$this->aTPProgramCourts = new ArrayCollection();
$this->aTPMatchResults = new ArrayCollection();
}
public function __toString()
{
return $this->name;
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return Collection|Program[]
*/
public function getPrograms(): Collection
{
return $this->programs;
}
public function addProgram(Program $program): self
{
if (!$this->programs->contains($program)) {
$this->programs[] = $program;
$program->addTennisCourt($this);
}
return $this;
}
public function removeProgram(Program $program): self
{
if ($this->programs->removeElement($program)) {
$program->removeTennisCourt($this);
}
return $this;
}
/**
* @return Collection|Game[]
*/
public function getGames(): Collection
{
return $this->games;
}
public function addGame(Game $game): self
{
if (!$this->games->contains($game)) {
$this->games[] = $game;
$game->setCourt($this);
}
return $this;
}
public function removeGame(Game $game): self
{
if ($this->games->removeElement($game)) {
// set the owning side to null (unless already changed)
if ($game->getCourt() === $this) {
$game->setCourt(null);
}
}
return $this;
}
public function getApiId(): ?int
{
return $this->apiId;
}
public function setApiId(?int $apiId): self
{
$this->apiId = $apiId;
return $this;
}
public function getCourtId(): ?int
{
return $this->courtId;
}
public function setCourtId(int $courtId): self
{
$this->courtId = $courtId;
return $this;
}
public function getCourtOffset(): ?string
{
return $this->courtOffset;
}
public function setCourtOffset(?string $courtOffset): self
{
$this->courtOffset = $courtOffset;
return $this;
}
public function getDisplayTime(): ?\DateTimeInterface
{
return $this->displayTime;
}
public function setDisplayTime(?\DateTimeInterface $displayTime): self
{
$this->displayTime = $displayTime;
return $this;
}
/**
* @return Collection<int, ATPProgramCourt>
*/
public function getATPProgramCourts(): Collection
{
return $this->aTPProgramCourts;
}
public function addATPProgramCourt(ATPProgramCourt $aTPProgramCourt): self
{
if (!$this->aTPProgramCourts->contains($aTPProgramCourt)) {
$this->aTPProgramCourts[] = $aTPProgramCourt;
$aTPProgramCourt->setCourt($this);
}
return $this;
}
public function removeATPProgramCourt(ATPProgramCourt $aTPProgramCourt): self
{
if ($this->aTPProgramCourts->removeElement($aTPProgramCourt)) {
// set the owning side to null (unless already changed)
if ($aTPProgramCourt->getCourt() === $this) {
$aTPProgramCourt->setCourt(null);
}
}
return $this;
}
/**
* @return Collection|ATPMatchResult[]
*/
public function getATPMatchResults(): Collection
{
return $this->aTPMatchResults;
}
public function addATPMatchResult(ATPMatchResult $aTPMatchResult): self
{
if (!$this->aTPMatchResults->contains($aTPMatchResult)) {
$this->aTPMatchResults[] = $aTPMatchResult;
$aTPMatchResult->setCourt($this);
}
return $this;
}
public function removeATPMatchResult(ATPMatchResult $aTPMatchResult): self
{
if ($this->aTPMatchResults->removeElement($aTPMatchResult)) {
// set the owning side to null (unless already changed)
if ($aTPMatchResult->getCourt() === $this) {
$aTPMatchResult->setCourt(null);
}
}
return $this;
}
}