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\OneToMany(mappedBy: 'company', targetEntity: OrderRequest::class, cascade: ['all'], orphanRemoval: true)]
  33. private iterable $orderItems;
  34. #[ORM\Column(type: 'boolean', options: ['default' => false])]
  35. private bool $disabled = false;
  36. public function __construct()
  37. {
  38. $this->members = new ArrayCollection();
  39. $this->customFieldSettings = new ArrayCollection();
  40. $this->preselectedAnalysisGroups = new ArrayCollection();
  41. $this->selectedAnalysisServices = new ArrayCollection();
  42. $this->prices = new ArrayCollection();
  43. $this->orderItems = new ArrayCollection();
  44. }
  45. public function getOrderItems(): iterable
  46. {
  47. return $this->orderItems;
  48. }
  49. public function getPrices(): ArrayCollection
  50. {
  51. return $this->prices;
  52. }
  53. public function getId(): ?int
  54. {
  55. return $this->id;
  56. }
  57. public function getName(): ?string
  58. {
  59. return $this->name;
  60. }
  61. public function setName(string $name): self
  62. {
  63. $this->name = $name;
  64. return $this;
  65. }
  66. /**
  67. * @return Collection|User[]
  68. */
  69. public function getMembers(): Collection
  70. {
  71. return $this->members;
  72. }
  73. public function addMember(User $member): self
  74. {
  75. if (!$this->members->contains($member)) {
  76. $this->members[] = $member;
  77. }
  78. return $this;
  79. }
  80. public function removeMember(User $member): self
  81. {
  82. if ($this->members->contains($member)) {
  83. $this->members->removeElement($member);
  84. }
  85. return $this;
  86. }
  87. /**
  88. * @return Collection|CustomFieldSetting[]
  89. */
  90. public function getCustomFieldSettings(): Collection
  91. {
  92. return $this->customFieldSettings;
  93. }
  94. public function addCustomFieldSetting(CustomFieldSetting $customFieldSetting): self
  95. {
  96. if (!$this->customFieldSettings->contains($customFieldSetting)) {
  97. $this->customFieldSettings[] = $customFieldSetting;
  98. $customFieldSetting->setCompany($this);
  99. }
  100. return $this;
  101. }
  102. public function removeCustomFieldSetting(CustomFieldSetting $customFieldSetting): self
  103. {
  104. if ($this->customFieldSettings->contains($customFieldSetting)) {
  105. $this->customFieldSettings->removeElement($customFieldSetting);
  106. // set the owning side to null (unless already changed)
  107. if ($customFieldSetting->getCompany() === $this) {
  108. $customFieldSetting->setCompany(null);
  109. }
  110. }
  111. return $this;
  112. }
  113. /**
  114. * @return Collection|AnalysisServiceGroup[]
  115. */
  116. public function getPreselectedAnalysisGroups(): Collection
  117. {
  118. return $this->preselectedAnalysisGroups;
  119. }
  120. public function addPreselectedAnalysisGroup(AnalysisServiceGroup $preselectedAnalysisGroup): self
  121. {
  122. if (!$this->preselectedAnalysisGroups->contains($preselectedAnalysisGroup)) {
  123. $this->preselectedAnalysisGroups[] = $preselectedAnalysisGroup;
  124. }
  125. return $this;
  126. }
  127. public function removePreselectedAnalysisGroup(AnalysisServiceGroup $preselectedAnalysisGroup): self
  128. {
  129. if ($this->preselectedAnalysisGroups->contains($preselectedAnalysisGroup)) {
  130. $this->preselectedAnalysisGroups->removeElement($preselectedAnalysisGroup);
  131. }
  132. return $this;
  133. }
  134. /**
  135. * @return Collection|AnalysisService[]
  136. */
  137. public function getSelectedAnalysisServices(): Collection
  138. {
  139. return $this->selectedAnalysisServices;
  140. }
  141. public function addSelectedAnalysisService(AnalysisService $selectedAnalysisService): self
  142. {
  143. if (!$this->selectedAnalysisServices->contains($selectedAnalysisService)) {
  144. $this->selectedAnalysisServices[] = $selectedAnalysisService;
  145. }
  146. return $this;
  147. }
  148. public function removeSelectedAnalysisService(AnalysisService $selectedAnalysisService): self
  149. {
  150. if ($this->selectedAnalysisServices->contains($selectedAnalysisService)) {
  151. $this->selectedAnalysisServices->removeElement($selectedAnalysisService);
  152. }
  153. return $this;
  154. }
  155. public function getGalabCustomerId(): ?string
  156. {
  157. return $this->galabCustomerId;
  158. }
  159. public function setGalabCustomerId(?string $galabCustomerId): self
  160. {
  161. $this->galabCustomerId = $galabCustomerId;
  162. return $this;
  163. }
  164. public function isDisabled(): bool
  165. {
  166. return $this->disabled;
  167. }
  168. public function setDisabled(bool $disabled): self
  169. {
  170. $this->disabled = $disabled;
  171. return $this;
  172. }
  173. }