*/ #[ORM\OneToMany(targetEntity: CourseRecur::class, mappedBy: 'event', cascade: ['persist'], orphanRemoval: true)] private Collection $eventRecur; /** @var Collection */ #[ORM\OneToMany(targetEntity: Course::class, mappedBy: 'parent', orphanRemoval: true)] private Collection $timeline; #[ORM\ManyToOne(inversedBy: 'timeline')] private ?Course $parent = null; #[ORM\ManyToOne(inversedBy: 'courses')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] protected ?Place $place = null; #[ORM\ManyToOne(inversedBy: 'courses')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] protected ?Room $room = null; /** @var Collection */ #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'practicalCourses')] #[ORM\JoinTable(name: 'booking_organizer')] #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn(name: 'organizer_id', referencedColumnName: 'id')] private Collection $organizer; #[ORM\ManyToOne(inversedBy: 'courses')] #[ORM\JoinColumn(nullable: false)] protected Organization $organization; #[ORM\ManyToOne(inversedBy: 'courses')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] private ?Education $education = null; /** @var Collection */ #[ORM\ManyToMany(targetEntity: EducationCurriculum::class)] private Collection $educationCurriculum; /** @var Collection */ #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'courses')] #[ORM\JoinTable(name: 'course_student')] #[ORM\JoinColumn(name: 'course_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn(name: 'student_id', referencedColumnName: 'id')] private Collection $students; /** @var Collection */ #[ORM\OneToMany(targetEntity: Work::class, mappedBy: 'course', cascade: ['persist'], orphanRemoval: true)] private Collection $work; /** @var Collection */ #[ORM\ManyToMany(targetEntity: Equipment::class)] #[ORM\JoinTable(name: 'booking_equipment')] #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn(name: 'equipment_id', referencedColumnName: 'id')] private Collection $equipments; /** @var Collection */ #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'course', cascade: ['persist'], orphanRemoval: true)] #[ORM\JoinColumn(nullable: false)] private Collection $attendanceBooking; /** @var Collection */ #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'courses', cascade: ['persist'])] #[ORM\JoinTable(name: 'tag_booking')] #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')] private Collection $tags; public function __construct() { $this->eventRecur = new ArrayCollection(); $this->timeline = new ArrayCollection(); $this->organizer = new ArrayCollection(); $this->educationCurriculum = new ArrayCollection(); $this->students = new ArrayCollection(); $this->work = new ArrayCollection(); $this->equipments = new ArrayCollection(); $this->attendanceBooking = new ArrayCollection(); $this->tags = new ArrayCollection(); } /** * @return Collection */ public function getEventRecur(): Collection { return $this->eventRecur; } public function addEventRecur(CourseRecur $eventRecur): self { if (!$this->eventRecur->contains($eventRecur)) { $this->eventRecur[] = $eventRecur; $eventRecur->setEvent($this); } return $this; } public function removeEventRecur(CourseRecur $eventRecur): self { if ($this->eventRecur->removeElement($eventRecur)) { // set the owning side to null (unless already changed) if ($eventRecur->getEvent() === $this) { $eventRecur->setEvent(null); } } return $this; } /** * @return Collection */ public function getTimeline(): Collection { return $this->timeline; } public function addTimeline(Course $timeline): self { if (!$this->timeline->contains($timeline)) { $this->timeline[] = $timeline; $timeline->setParent($this); } return $this; } public function removeTimeline(Course $timeline): self { if ($this->timeline->removeElement($timeline)) { // set the owning side to null (unless already changed) if ($timeline->getParent() === $this) { $timeline->setParent(null); } } return $this; } public function getParent(): ?self { return $this->parent; } public function setParent(?self $parent): self { $this->parent = $parent; return $this; } public function getPlace(): ?Place { return $this->place; } public function setPlace(?Place $place): self { $this->place = $place; return $this; } public function getRoom(): ?Room { return $this->room; } public function setRoom(?Room $room): self { $this->room = $room; return $this; } /** * @return Collection */ public function getOrganizer(): Collection { return $this->organizer; } public function addOrganizer(Access $organizer): self { if (!$this->organizer->contains($organizer)) { $this->organizer[] = $organizer; } return $this; } public function removeOrganizer(Access $organizer): self { $this->organizer->removeElement($organizer); return $this; } public function getOrganization(): ?Organization { return $this->organization; } public function setOrganization(?Organization $organization): self { $this->organization = $organization; return $this; } public function getEducation(): ?Education { return $this->education; } public function setEducation(?Education $education): self { $this->education = $education; return $this; } /** * @return Collection */ public function getEducationCurriculum(): Collection { return $this->educationCurriculum; } public function addEducationCurriculum(EducationCurriculum $educationCurriculum): self { if (!$this->educationCurriculum->contains($educationCurriculum)) { $this->educationCurriculum[] = $educationCurriculum; } return $this; } public function removeEducationCurriculum(EducationCurriculum $educationCurriculum): self { $this->educationCurriculum->removeElement($educationCurriculum); return $this; } /** * @return Collection */ public function getStudents(): Collection { return $this->students; } public function addStudent(Access $student): self { if (!$this->students->contains($student)) { $this->students[] = $student; } return $this; } public function removeStudent(Access $student): self { $this->students->removeElement($student); return $this; } /** * @return Collection */ public function getWork(): Collection { return $this->work; } public function addWork(Work $work): self { if (!$this->work->contains($work)) { $this->work[] = $work; $work->setCourse($this); } return $this; } public function removeWork(Work $work): self { if ($this->work->removeElement($work)) { // set the owning side to null (unless already changed) if ($work->getCourse() === $this) { $work->setCourse(null); } } return $this; } /** * @return Collection */ public function getEquipments(): Collection { return $this->equipments; } public function addEquipment(Equipment $equipment): self { if (!$this->equipments->contains($equipment)) { $this->equipments[] = $equipment; } return $this; } public function removeEquipment(Equipment $equipment): self { $this->equipments->removeElement($equipment); return $this; } /** * @return Collection */ public function getAttendanceBooking(): Collection { return $this->attendanceBooking; } public function addAttendanceBooking(AttendanceBooking $attendanceBooking): self { if (!$this->attendanceBooking->contains($attendanceBooking)) { $this->attendanceBooking[] = $attendanceBooking; $attendanceBooking->setCourse($this); } return $this; } public function removeAttendanceBooking(AttendanceBooking $attendanceBooking): self { if ($this->attendanceBooking->removeElement($attendanceBooking)) { // set the owning side to null (unless already changed) if ($attendanceBooking->getCourse() === $this) { $attendanceBooking->setCourse(null); } } return $this; } /** * @return Collection */ public function getTags(): Collection { return $this->tags; } public function addTag(Tagg $tag): self { if (!$this->tags->contains($tag)) { $this->tags[] = $tag; } return $this; } public function removeTag(Tagg $tag): self { $this->tags->removeElement($tag); return $this; } }