src/Entity/Company.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CompanyRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Blameable\Traits\BlameableEntity;
  8. use Gedmo\Timestampable\Traits\TimestampableEntity;
  9. #[ORM\Entity(repositoryClass: CompanyRepository::class)]
  10. class Company
  11. {
  12. use BlameableEntity;
  13. use TimestampableEntity;
  14. #[ORM\Id]
  15. #[ORM\GeneratedValue]
  16. #[ORM\Column(type: 'integer')]
  17. private int $id;
  18. #[ORM\Column(type: 'string', length: 255)]
  19. private string $name;
  20. #[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'companies')]
  21. private iterable $members;
  22. #[ORM\OneToMany(targetEntity: CustomFieldSetting::class, mappedBy: 'company', orphanRemoval: true)]
  23. private iterable $customFieldSettings;
  24. #[ORM\OneToMany(targetEntity: AnalysisServiceGroup::class, mappedBy: 'company')]
  25. private iterable $preselectedAnalysisGroups;
  26. #[ORM\ManyToMany(targetEntity: AnalysisService::class, inversedBy: 'companies')]
  27. private iterable $selectedAnalysisServices;
  28. #[ORM\Column(type: 'string', length: 255, nullable: true, unique: true)]
  29. private ?string $galabCustomerId;
  30. #[ORM\OneToMany(mappedBy: 'company', targetEntity: AnalysisServicePrice::class)]
  31. private iterable $prices;
  32. #[ORM\Column(type: 'boolean', options: ['default' => false])]
  33. private bool $disabled = false;
  34. public function __construct()
  35. {
  36. $this->members = new ArrayCollection();
  37. $this->customFieldSettings = new ArrayCollection();
  38. $this->preselectedAnalysisGroups = new ArrayCollection();
  39. $this->selectedAnalysisServices = new ArrayCollection();
  40. $this->prices = new ArrayCollection();
  41. }
  42. public function getPrices(): ArrayCollection
  43. {
  44. return $this->prices;
  45. }
  46. public function getId(): ?int
  47. {
  48. return $this->id;
  49. }
  50. public function getName(): ?string
  51. {
  52. return $this->name;
  53. }
  54. public function setName(string $name): self
  55. {
  56. $this->name = $name;
  57. return $this;
  58. }
  59. /**
  60. * @return Collection|User[]
  61. */
  62. public function getMembers(): Collection
  63. {
  64. return $this->members;
  65. }
  66. public function addMember(User $member): self
  67. {
  68. if (!$this->members->contains($member)) {
  69. $this->members[] = $member;
  70. }
  71. return $this;
  72. }
  73. public function removeMember(User $member): self
  74. {
  75. if ($this->members->contains($member)) {
  76. $this->members->removeElement($member);
  77. }
  78. return $this;
  79. }
  80. /**
  81. * @return Collection|CustomFieldSetting[]
  82. */
  83. public function getCustomFieldSettings(): Collection
  84. {
  85. return $this->customFieldSettings;
  86. }
  87. public function addCustomFieldSetting(CustomFieldSetting $customFieldSetting): self
  88. {
  89. if (!$this->customFieldSettings->contains($customFieldSetting)) {
  90. $this->customFieldSettings[] = $customFieldSetting;
  91. $customFieldSetting->setCompany($this);
  92. }
  93. return $this;
  94. }
  95. public function removeCustomFieldSetting(CustomFieldSetting $customFieldSetting): self
  96. {
  97. if ($this->customFieldSettings->contains($customFieldSetting)) {
  98. $this->customFieldSettings->removeElement($customFieldSetting);
  99. // set the owning side to null (unless already changed)
  100. if ($customFieldSetting->getCompany() === $this) {
  101. $customFieldSetting->setCompany(null);
  102. }
  103. }
  104. return $this;
  105. }
  106. /**
  107. * @return Collection|AnalysisServiceGroup[]
  108. */
  109. public function getPreselectedAnalysisGroups(): Collection
  110. {
  111. return $this->preselectedAnalysisGroups;
  112. }
  113. public function addPreselectedAnalysisGroup(AnalysisServiceGroup $preselectedAnalysisGroup): self
  114. {
  115. if (!$this->preselectedAnalysisGroups->contains($preselectedAnalysisGroup)) {
  116. $this->preselectedAnalysisGroups[] = $preselectedAnalysisGroup;
  117. }
  118. return $this;
  119. }
  120. public function removePreselectedAnalysisGroup(AnalysisServiceGroup $preselectedAnalysisGroup): self
  121. {
  122. if ($this->preselectedAnalysisGroups->contains($preselectedAnalysisGroup)) {
  123. $this->preselectedAnalysisGroups->removeElement($preselectedAnalysisGroup);
  124. }
  125. return $this;
  126. }
  127. /**
  128. * @return Collection|AnalysisService[]
  129. */
  130. public function getSelectedAnalysisServices(): Collection
  131. {
  132. return $this->selectedAnalysisServices;
  133. }
  134. public function addSelectedAnalysisService(AnalysisService $selectedAnalysisService): self
  135. {
  136. if (!$this->selectedAnalysisServices->contains($selectedAnalysisService)) {
  137. $this->selectedAnalysisServices[] = $selectedAnalysisService;
  138. }
  139. return $this;
  140. }
  141. public function removeSelectedAnalysisService(AnalysisService $selectedAnalysisService): self
  142. {
  143. if ($this->selectedAnalysisServices->contains($selectedAnalysisService)) {
  144. $this->selectedAnalysisServices->removeElement($selectedAnalysisService);
  145. }
  146. return $this;
  147. }
  148. public function getGalabCustomerId(): ?string
  149. {
  150. return $this->galabCustomerId;
  151. }
  152. public function setGalabCustomerId(?string $galabCustomerId): self
  153. {
  154. $this->galabCustomerId = $galabCustomerId;
  155. return $this;
  156. }
  157. public function isDisabled(): bool
  158. {
  159. return $this->disabled;
  160. }
  161. public function setDisabled(bool $disabled): self
  162. {
  163. $this->disabled = $disabled;
  164. return $this;
  165. }
  166. }