<?php
namespace CoreBundle\Entity;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table("publication")
* @ORM\Entity(repositoryClass="CoreBundle\Entity\PublicationRepository")
*/
class Publication
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
*/
private int $id;
/**
* @var string
*
* @ORM\Column(name="isbn", type="string", length=32, nullable=false, unique=true)
*/
private string $isbn;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private string $name;
/**
* @var int
*
* @ORM\Column
*/
private int $timestamp;
/**
* @var bool
*
* @ORM\Column
*/
private bool $deleted;
/**
* @var bool
*
* @ORM\Column
*/
private bool $hidden;
/**
* @var bool
*
* @ORM\Column(name="available_for_be_user_creation")
*/
private bool $availableForBackendUserCreation;
/**
* @var Publisher
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\Publisher", inversedBy="publications", cascade={"persist"})
* @ORM\JoinColumn(name="publisher", referencedColumnName="id", nullable=false)
*/
private Publisher $publisher;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="Quiz", mappedBy="publication", cascade={"persist"})
*/
private Collection $quizzes;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): void
{
$this->id = $id;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name): void
{
$this->name = $name;
}
public function getPublisher(): Publisher
{
return $this->publisher;
}
public function setPublisher(Publisher $publisher): void
{
$this->publisher = $publisher;
}
public function __toString() {
return $this->name;
}
public function getQuizzes(): Collection
{
return $this->quizzes;
}
public function setQuizzes(Collection $quizzes): void
{
$this->quizzes = $quizzes;
}
public function getIsbn(): string
{
return $this->isbn;
}
public function setIsbn(string $isbn): void
{
$this->isbn = $isbn;
}
public function getTimestamp(): int
{
return $this->timestamp;
}
public function setTimestamp(int $timestamp): void
{
$this->timestamp = $timestamp;
}
public function isDeleted(): bool
{
return $this->deleted;
}
public function setDeleted(bool $deleted): void
{
$this->deleted = $deleted;
}
public function isHidden(): bool
{
return $this->hidden;
}
public function setHidden(bool $hidden): void
{
$this->hidden = $hidden;
}
public function getNumberOfEnabledQuizzes(): int
{
$enabledQuizzes = $this->quizzes->filter(function (Quiz $quiz) {
return $quiz->getEnabled();
});
return $enabledQuizzes->count();
}
public function isAvailableForBackendUserCreation(): bool
{
return $this->availableForBackendUserCreation;
}
public function setAvailableForBackendUserCreation(bool $availableForBackendUserCreation): void
{
$this->availableForBackendUserCreation = $availableForBackendUserCreation;
}
}