<?php
namespace App\Entity\Game\WordSearch;
use App\Repository\Game\WordSearch\WordSearchLevelRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=WordSearchLevelRepository::class)
*/
class WordSearchLevel
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $levelNumber;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $difficulty;
/**
* @ORM\ManyToOne(targetEntity=WordSearchGame::class, inversedBy="levels")
* @ORM\JoinColumn(nullable=false)
*/
private $game;
/**
* @ORM\OneToOne(targetEntity=Grid::class, cascade={"persist", "remove"})
*/
private $grid;
/**
* @ORM\OneToMany(targetEntity=WordSearchParticipation::class, mappedBy="level")
*/
private $participations;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $requiredScore;
/**
* @ORM\Column(type="boolean")
*/
private $isPublished = true;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private $slug;
public function __construct()
{
$this->participations = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getLevelNumber(): ?int
{
return $this->levelNumber;
}
public function setLevelNumber(int $levelNumber): self
{
$this->levelNumber = $levelNumber;
return $this;
}
public function getDifficulty(): ?string
{
return $this->difficulty;
}
public function setDifficulty(?string $difficulty): self
{
$this->difficulty = $difficulty;
return $this;
}
public function getGame(): ?WordSearchGame
{
return $this->game;
}
public function setGame(?WordSearchGame $game): self
{
$this->game = $game;
return $this;
}
public function getGrid(): ?Grid
{
return $this->grid;
}
public function setGrid(?Grid $grid): self
{
$this->grid = $grid;
return $this;
}
/**
* @return Collection<int, WordSearchParticipation>
*/
public function getParticipations(): Collection
{
return $this->participations;
}
public function addParticipation(WordSearchParticipation $participation): self
{
if (!$this->participations->contains($participation)) {
$this->participations[] = $participation;
$participation->setLevel($this);
}
return $this;
}
public function removeParticipation(WordSearchParticipation $participation): self
{
if ($this->participations->removeElement($participation)) {
// set the owning side to null (unless already changed)
if ($participation->getLevel() === $this) {
$participation->setLevel(null);
}
}
return $this;
}
public function getRequiredScore(): ?int
{
return $this->requiredScore;
}
public function setRequiredScore(?int $requiredScore): self
{
$this->requiredScore = $requiredScore;
return $this;
}
public function isIsPublished(): ?bool
{
return $this->isPublished;
}
public function setIsPublished(bool $isPublished): self
{
$this->isPublished = $isPublished;
return $this;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(?string $slug): self
{
$this->slug = $slug;
return $this;
}
}