The child tasks */ #[ORM\OneToMany(targetEntity: self::class, mappedBy: 'parentTask', orphanRemoval: true)] #[Assert\Valid] private Collection $childTasks; /** * @var Task|null The root task */ #[ORM\ManyToOne(targetEntity: self::class)] #[ORM\JoinColumn(onDelete: 'CASCADE')] #[Assert\Valid] private ?self $rootTask = null; /** * Initialization */ public function __construct () { $this->childTasks = new ArrayCollection(); } /** * The user * * @return User|null The user */ public function getUser (): ?User { return $this->user; } /** * Set the user * * @param User|null $user The user * * @return $this */ public function setUser (?User $user): static { $this->user = $user; return $this; } /** * The produced material * * @return Material|null The produced material */ public function getProducedMaterial (): ?Material { return $this->producedMaterial; } /** * Set the produced material * * @param Material|null $producedMaterial The produced material * * @return $this */ public function setProducedMaterial (?Material $producedMaterial): static { $this->producedMaterial = $producedMaterial; return $this; } /** * The recipe * * @return Recipe|null The recipe */ public function getRecipe (): ?Recipe { return $this->recipe; } /** * The recipe * * @param Recipe|null $recipe The recipe * * @return $this */ public function setRecipe (?Recipe $recipe): static { $this->recipe = $recipe; return $this; } /** * The quantity asked / to produce * * @return int|null The quantity asked / to produce */ public function getQuantityToProduce (): ?int { return $this->quantityToProduce; } /** * Set the quantity asked / to produce * * @param int $quantityToProduce The quantity asked / to produce * * @return $this */ public function setQuantityToProduce (int $quantityToProduce): static { $this->quantityToProduce = $quantityToProduce; return $this; } /** * The quantity already provided at the start * * @return int|null The quantity already provided at the start */ public function getQuantityProvidedAtStart (): ?int { return $this->quantityProvidedAtStart; } /** * Set the quantity already provided at the start * * @param int $quantityProvidedAtStart The quantity already provided at the start * * @return $this */ public function setQuantityProvidedAtStart (int $quantityProvidedAtStart): static { $this->quantityProvidedAtStart = $quantityProvidedAtStart; return $this; } /** * The parent task * * @return self|null The parent task */ public function getParentTask (): ?self { return $this->parentTask; } /** * Set the parent task * * @param Task|null $parentTask The parent task * * @return $this */ public function setParentTask (?self $parentTask): static { $this->parentTask = $parentTask; return $this; } /** * The child tasks * * @return Collection The child tasks */ public function getChildTasks (): Collection { return $this->childTasks; } /** * Add a child task * * @param Task $childTask The child task * * @return $this */ public function addChildTask (self $childTask): static { if (!$this->childTasks->contains($childTask)) { $this->childTasks->add($childTask); $childTask->setParentTask($this); } return $this; } /** * Remove a child task * * @param Task $childTask The child task * * @return $this */ public function removeChildTask (self $childTask): static { if ($this->childTasks->removeElement($childTask)) { // set the owning side to null (unless already changed) if ($childTask->getParentTask() === $this) { $childTask->setParentTask(null); } } return $this; } /** * The root task * * @return self|null The root task */ public function getRootTask (): ?self { return $this->rootTask; } /** * Set the root task * * @param Task|null $rootTask The root task * * @return $this */ public function setRootTask (?self $rootTask): static { $this->rootTask = $rootTask; return $this; } }