src/CoreBundle/Entity/Publication.php line 12

Open in your IDE?
  1. <?php
  2. namespace CoreBundle\Entity;
  3. use Doctrine\Common\Collections\Collection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. /**
  6. * @ORM\Table("publication")
  7. * @ORM\Entity(repositoryClass="CoreBundle\Entity\PublicationRepository")
  8. */
  9. class Publication
  10. {
  11. /**
  12. * @var int
  13. *
  14. * @ORM\Column(name="id", type="integer")
  15. * @ORM\Id
  16. */
  17. private int $id;
  18. /**
  19. * @var string
  20. *
  21. * @ORM\Column(name="isbn", type="string", length=32, nullable=false, unique=true)
  22. */
  23. private string $isbn;
  24. /**
  25. * @var string
  26. *
  27. * @ORM\Column(name="name", type="string", length=255, nullable=false)
  28. */
  29. private string $name;
  30. /**
  31. * @var int
  32. *
  33. * @ORM\Column
  34. */
  35. private int $timestamp;
  36. /**
  37. * @var bool
  38. *
  39. * @ORM\Column
  40. */
  41. private bool $deleted;
  42. /**
  43. * @var bool
  44. *
  45. * @ORM\Column
  46. */
  47. private bool $hidden;
  48. /**
  49. * @var bool
  50. *
  51. * @ORM\Column(name="available_for_be_user_creation")
  52. */
  53. private bool $availableForBackendUserCreation;
  54. /**
  55. * @var Publisher
  56. *
  57. * @ORM\ManyToOne(targetEntity="CoreBundle\Entity\Publisher", inversedBy="publications", cascade={"persist"})
  58. * @ORM\JoinColumn(name="publisher", referencedColumnName="id", nullable=false)
  59. */
  60. private Publisher $publisher;
  61. /**
  62. * @var Collection
  63. *
  64. * @ORM\OneToMany(targetEntity="Quiz", mappedBy="publication", cascade={"persist"})
  65. */
  66. private Collection $quizzes;
  67. public function getId(): int
  68. {
  69. return $this->id;
  70. }
  71. public function setId(int $id): void
  72. {
  73. $this->id = $id;
  74. }
  75. public function getName(): string
  76. {
  77. return $this->name;
  78. }
  79. public function setName(string $name): void
  80. {
  81. $this->name = $name;
  82. }
  83. public function getPublisher(): Publisher
  84. {
  85. return $this->publisher;
  86. }
  87. public function setPublisher(Publisher $publisher): void
  88. {
  89. $this->publisher = $publisher;
  90. }
  91. public function __toString() {
  92. return $this->name;
  93. }
  94. public function getQuizzes(): Collection
  95. {
  96. return $this->quizzes;
  97. }
  98. public function setQuizzes(Collection $quizzes): void
  99. {
  100. $this->quizzes = $quizzes;
  101. }
  102. public function getIsbn(): string
  103. {
  104. return $this->isbn;
  105. }
  106. public function setIsbn(string $isbn): void
  107. {
  108. $this->isbn = $isbn;
  109. }
  110. public function getTimestamp(): int
  111. {
  112. return $this->timestamp;
  113. }
  114. public function setTimestamp(int $timestamp): void
  115. {
  116. $this->timestamp = $timestamp;
  117. }
  118. public function isDeleted(): bool
  119. {
  120. return $this->deleted;
  121. }
  122. public function setDeleted(bool $deleted): void
  123. {
  124. $this->deleted = $deleted;
  125. }
  126. public function isHidden(): bool
  127. {
  128. return $this->hidden;
  129. }
  130. public function setHidden(bool $hidden): void
  131. {
  132. $this->hidden = $hidden;
  133. }
  134. public function getNumberOfEnabledQuizzes(): int
  135. {
  136. $enabledQuizzes = $this->quizzes->filter(function (Quiz $quiz) {
  137. return $quiz->getEnabled();
  138. });
  139. return $enabledQuizzes->count();
  140. }
  141. public function isAvailableForBackendUserCreation(): bool
  142. {
  143. return $this->availableForBackendUserCreation;
  144. }
  145. public function setAvailableForBackendUserCreation(bool $availableForBackendUserCreation): void
  146. {
  147. $this->availableForBackendUserCreation = $availableForBackendUserCreation;
  148. }
  149. }