<?phpnamespace App\Entity\Report;use App\Entity\Agro\Operation;use App\Entity\Field;use App\Entity\Monitoring\Monitoring;use App\Entity\Season;use App\Repository\Report\TaskListRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass=TaskListRepository::class) */class TaskList{ /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\ManyToOne(targetEntity=Field::class, inversedBy="taskLists") */ private $field; /** * @ORM\ManyToOne(targetEntity=Season::class, inversedBy="taskLists") */ private $season; /** * @ORM\OneToMany(targetEntity=Task::class, mappedBy="taskList",cascade={"persist","remove"}) */ private $tasks; public function __construct() { $this->tasks = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getField(): ?Field { return $this->field; } public function setField(?Field $field): self { $this->field = $field; return $this; } public function getSeason(): ?Season { return $this->season; } public function setSeason(?Season $season): self { $this->season = $season; return $this; } /** * @return Collection|Task[] */ public function getTasks(): Collection { return $this->tasks; } public function addTask(Task $task): self { if (!$this->tasks->contains($task)) { $this->tasks[] = $task; $task->setTaskList($this); } return $this; } public function removeTask(Task $task): self { if ($this->tasks->removeElement($task)) { // set the owning side to null (unless already changed) if ($task->getTaskList() === $this) { $task->setTaskList(null); $task->removeAllReports(); } } return $this; } public function removeAllTask(): self { foreach ($this->getTasks() as $task) { $this->removeTask($task); } return $this; } public function getTaskMonitoring() { return $this->tasks->filter(function ($task){ if(!empty($task->getMonitoring())){ return $task; } return null; }); } public function getTaskOperation() { return $this->tasks->filter(function ($task){ if(!empty($task->getOperation())){ return $task; } return null; }); }}