src/Entity/CRM/Department.php line 13
<?phpnamespace App\Entity\CRM;use App\Entity\CRM\Worker;use App\Repository\DepartmentRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: DepartmentRepository::class)]class Department{#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\Column(length: 255)]private ?string $name = null;#[ORM\ManyToOne(inversedBy: 'departments')]#[ORM\JoinColumn(nullable: false)]private ?Branch $branch = null;#[ORM\OneToMany(mappedBy: 'department', targetEntity: Consultant::class)]private Collection $consultants;#[ORM\OneToMany(mappedBy: 'department', targetEntity: Worker::class)]private Collection $workers;#[ORM\ManyToOne(inversedBy: 'department')]private ?DepartmentType $departmentType = null;#[ORM\Column]private bool $isActive = true;#[ORM\Column(length: 255)]private ?string $color = null;#[ORM\Column]private ?bool $mainDepartmentOfBranch = null;#[ORM\ManyToOne]private ?Admin $orderSupervisor = null;#[ORM\Column(type: Types::JSON, nullable: true)]private ?array $accountingOfficeMailForNotification = [];#[ORM\ManyToMany(targetEntity: Admin::class, inversedBy: 'departments')]private Collection $management;public function __construct(){$this->consultants = new ArrayCollection();$this->workers = new ArrayCollection();$this->isActive = true;$this->management = new ArrayCollection();}public function __toString(){return $this->id.' '.$this->name.' '.$this->branch;}public function getId(): ?int{return $this->id;}public function getName(): ?string{return $this->name;}public function setName(string $name): self{$this->name = $name;return $this;}public function getBranch(): ?Branch{return $this->branch;}public function setBranch(?Branch $branch): self{$this->branch = $branch;return $this;}/*** @return Collection<int, Consultant>*/public function getConsultants(): Collection{return $this->consultants;}public function addConsultant(Consultant $consultant): self{if (!$this->consultants->contains($consultant)) {$this->consultants->add($consultant);$consultant->setDepartment($this);}return $this;}public function removeConsultant(Consultant $consultant): self{if ($this->consultants->removeElement($consultant)) {// set the owning side to null (unless already changed)if ($consultant->getDepartment() === $this) {$consultant->setDepartment(null);}}return $this;}/*** @return Collection<int, Worker>*/public function getWorkers(): Collection{return $this->workers;}public function addWorker(Worker $worker): self{if (!$this->workers->contains($worker)) {$this->workers->add($worker);$worker->setDepartment($this);}return $this;}public function removeWorker(Worker $worker): self{if ($this->workers->removeElement($worker)) {// set the owning side to null (unless already changed)if ($worker->getDepartment() === $this) {$worker->setDepartment(null);}}return $this;}public function getDepartmentType(): ?DepartmentType{return $this->departmentType;}public function setDepartmentType(?DepartmentType $departmentType): static{$this->departmentType = $departmentType;return $this;}public function isIsActive(): ?bool{return $this->isActive;}public function setIsActive(bool $isActive): static{$this->isActive = $isActive;return $this;}public function getColor(): ?string{return $this->color;}public function setColor(string $color): static{$this->color = $color;return $this;}public function isMainDepartmentOfBranch(): ?bool{return $this->mainDepartmentOfBranch;}public function setMainDepartmentOfBranch(bool $mainDepartmentOfBranch): static{$this->mainDepartmentOfBranch = $mainDepartmentOfBranch;return $this;}public function getOrderSupervisor(): ?Admin{return $this->orderSupervisor;}public function setOrderSupervisor(?Admin $orderSupervisor): static{$this->orderSupervisor = $orderSupervisor;return $this;}public function getAccountingOfficeMailForNotification(): array{return $this->accountingOfficeMailForNotification;}public function setAccountingOfficeMailForNotification(?array $accountingOfficeMailForNotification): static{$this->accountingOfficeMailForNotification = $accountingOfficeMailForNotification;return $this;}/*** @return Collection<int, Admin>*/public function getManagement(): Collection{return $this->management;}public function addManagement(Admin $management): static{if (!$this->management->contains($management)) {$this->management->add($management);}return $this;}public function removeManagement(Admin $management): static{$this->management->removeElement($management);return $this;}}