EducationCurriculumPack.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Education;
  4. use ApiPlatform\Metadata\ApiResource;
  5. use App\Entity\Billing\FamilyQuotientBandDetail;
  6. use App\Entity\Core\Tagg;
  7. use App\Entity\Organization\Organization;
  8. use App\Entity\Product\Intangible;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. /**
  12. * TODO: documenter
  13. */
  14. #[ApiResource(operations: [])]
  15. #[ORM\Entity]
  16. class EducationCurriculumPack
  17. {
  18. #[ORM\Id]
  19. #[ORM\Column]
  20. #[ORM\GeneratedValue]
  21. private int $id;
  22. #[ORM\ManyToOne(targetEntity: Organization::class, cascade: [], inversedBy: 'educationCurriculumPacks')]
  23. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
  24. public Organization $organization;
  25. /** @var Collection<int, Tagg> */
  26. #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'educationCurriculumPacks', cascade: ['persist'], orphanRemoval: false)]
  27. public Collection $tags;
  28. /** @var Collection<int, EducationCurriculum> */
  29. #[ORM\ManyToMany(
  30. targetEntity: EducationCurriculum::class,
  31. inversedBy: 'requiredEducationCurriculumPacks',
  32. cascade: [],
  33. orphanRemoval: false,
  34. )]
  35. public Collection $requiredEducationCurriculums;
  36. /** @var Collection<int, EducationCurriculum> */
  37. #[ORM\ManyToMany(
  38. targetEntity: EducationCurriculum::class,
  39. inversedBy: 'requiredChoicesEducationCurriculumPacks',
  40. cascade: [],
  41. orphanRemoval: false,
  42. )]
  43. public Collection $requiredChoicesEducationCurriculums;
  44. /** @var Collection<int, EducationCurriculum> */
  45. #[ORM\ManyToMany(
  46. targetEntity: EducationCurriculum::class,
  47. inversedBy: 'optionnalEducationCurriculumPacks',
  48. cascade: [],
  49. orphanRemoval: false,
  50. )]
  51. public Collection $optionnalEducationCurriculums;
  52. /** @var Collection<int, Intangible> */
  53. #[ORM\ManyToMany(targetEntity: Intangible::class, mappedBy: 'educationCurriculumPacks', cascade: [], orphanRemoval: false)]
  54. public Collection $intangibles;
  55. public function getId(): int
  56. {
  57. return $this->id;
  58. }
  59. public function setId(int $id): self
  60. {
  61. $this->id = $id;
  62. return $this;
  63. }
  64. public function getOrganization(): Organization
  65. {
  66. return $this->organization;
  67. }
  68. public function setOrganization(Organization $organization): self
  69. {
  70. $this->organization = $organization;
  71. return $this;
  72. }
  73. public function getTags(): Collection
  74. {
  75. return $this->tags;
  76. }
  77. public function addTag(Tagg $tag): self
  78. {
  79. if (!$this->tags->contains($tag)) {
  80. $this->tags[] = $tag;
  81. $tag->addEducationCurriculumPack($this);
  82. }
  83. return $this;
  84. }
  85. public function removeTag(Tagg $tag): self
  86. {
  87. if ($this->tags->removeElement($tag)) {
  88. $tag->removeEducationCurriculumPack($this);
  89. }
  90. return $this;
  91. }
  92. public function getRequiredEducationCurriculums(): Collection
  93. {
  94. return $this->requiredEducationCurriculums;
  95. }
  96. public function addRequiredEducationCurriculum(EducationCurriculum $requiredEducationCurriculum): self
  97. {
  98. if (!$this->requiredEducationCurriculums->contains($requiredEducationCurriculum)) {
  99. $this->requiredEducationCurriculums[] = $requiredEducationCurriculum;
  100. $requiredEducationCurriculum->addRequiredEducationCurriculumPack($this);
  101. }
  102. return $this;
  103. }
  104. public function removeRequiredEducationCurriculum(EducationCurriculum $requiredEducationCurriculum): self
  105. {
  106. if ($this->requiredEducationCurriculums->removeElement($requiredEducationCurriculum)) {
  107. $requiredEducationCurriculum->removeRequiredEducationCurriculumPack($this);
  108. }
  109. return $this;
  110. }
  111. public function getRequiredChoicesEducationCurriculums(): Collection
  112. {
  113. return $this->requiredChoicesEducationCurriculums;
  114. }
  115. public function addRequiredChoicesEducationCurriculum(EducationCurriculum $requiredChoicesEducationCurriculum): self
  116. {
  117. if (!$this->requiredChoicesEducationCurriculums->contains($requiredChoicesEducationCurriculum)) {
  118. $this->requiredChoicesEducationCurriculums[] = $requiredChoicesEducationCurriculum;
  119. $requiredChoicesEducationCurriculum->addRequiredChoicesEducationCurriculumPack($this);
  120. }
  121. return $this;
  122. }
  123. public function removeRequiredChoicesEducationCurriculum(EducationCurriculum $requiredChoicesEducationCurriculum): self
  124. {
  125. if ($this->requiredChoicesEducationCurriculums->removeElement($requiredChoicesEducationCurriculum)) {
  126. $requiredChoicesEducationCurriculum->removeRequiredChoicesEducationCurriculumPack($this);
  127. }
  128. return $this;
  129. }
  130. public function getOptionnalEducationCurriculums(): Collection
  131. {
  132. return $this->optionnalEducationCurriculums;
  133. }
  134. public function addOptionnalEducationCurriculum(EducationCurriculum $optionnalEducationCurriculum): self
  135. {
  136. if (!$this->optionnalEducationCurriculums->contains($optionnalEducationCurriculum)) {
  137. $this->optionnalEducationCurriculums[] = $optionnalEducationCurriculum;
  138. $optionnalEducationCurriculum->addOptionnalEducationCurriculumPack($this);
  139. }
  140. return $this;
  141. }
  142. public function removeOptionnalEducationCurriculum(EducationCurriculum $optionnalEducationCurriculum): self
  143. {
  144. if ($this->optionnalEducationCurriculums->removeElement($optionnalEducationCurriculum)) {
  145. $optionnalEducationCurriculum->removeOptionnalEducationCurriculumPack($this);
  146. }
  147. return $this;
  148. }
  149. public function getIntangibles(): Collection
  150. {
  151. return $this->intangibles;
  152. }
  153. public function addIntangible(Intangible $intangible): self
  154. {
  155. if (!$this->intangibles->contains($intangible)) {
  156. $this->intangibles[] = $intangible;
  157. $intangible->addEducationCurriculumPack($this);
  158. }
  159. return $this;
  160. }
  161. public function removeIntangible(Intangible $intangible): self
  162. {
  163. if ($this->intangibles->removeElement($intangible)) {
  164. $intangible->removeEducationCurriculumPack($this);
  165. }
  166. return $this;
  167. }
  168. }