["security" => "is_granted('ROLE_ADMIN') and object.getOrganization().getId() == user.getOrganization().getId()"] ] )] class Examen extends AbstractBooking { #[ORM\Column(length: 255, nullable: false)] private string $discr = 'examen'; #[ORM\ManyToOne(inversedBy: 'examens')] #[ORM\JoinColumn(nullable: false)] protected Organization $organization; #[ORM\OneToMany(mappedBy: 'event',targetEntity: ExamenRecur::class, cascade: ['persist'], orphanRemoval: true)] private Collection $eventRecur; #[ORM\OneToMany(mappedBy: 'parent',targetEntity: Examen::class, orphanRemoval: true)] private Collection $timeline; #[ORM\ManyToOne(inversedBy: 'timeline')] private Examen $parent; #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'examens')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] private Jury $jury; #[ORM\ManyToOne(inversedBy: 'examens')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] private Education $education; #[ORM\ManyToMany(targetEntity: EducationCurriculum::class)] private Collection $educationCurriculum; #[ORM\OneToMany(mappedBy: 'examen',targetEntity: ExamenConvocation::class, cascade: ['persist'], orphanRemoval: true)] private Collection $convocation; #[ORM\OneToMany(mappedBy: 'examen', targetEntity: AttendanceBooking::class, cascade: ['persist'], orphanRemoval: true)] #[ORM\JoinColumn(nullable: false)] private Collection $attendanceBooking; #[ORM\ManyToOne(inversedBy: 'examens')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] protected Place $place; #[ORM\ManyToOne(inversedBy: 'examens')] #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')] protected Room $room; #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'examens', 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->educationCurriculum = new ArrayCollection(); $this->convocation = new ArrayCollection(); $this->attendanceBooking = new ArrayCollection(); $this->tags = new ArrayCollection(); } public function getDiscr(): ?string { return $this->discr; } public function setDiscr(string $discr): self { $this->discr = $discr; return $this; } public function getOrganization(): ?Organization { return $this->organization; } public function setOrganization(?Organization $organization): self { $this->organization = $organization; return $this; } /** * @return Collection */ public function getEventRecur(): Collection { return $this->eventRecur; } public function addEventRecur(ExamenRecur $eventRecur): self { if (!$this->eventRecur->contains($eventRecur)) { $this->eventRecur[] = $eventRecur; $eventRecur->setEvent($this); } return $this; } public function removeEventRecur(ExamenRecur $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(Examen $timeline): self { if (!$this->timeline->contains($timeline)) { $this->timeline[] = $timeline; $timeline->setParent($this); } return $this; } public function removeTimeline(Examen $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 getJury(): ?Jury { return $this->jury; } public function setJury(?Jury $jury): self { $this->jury = $jury; 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 getConvocation(): Collection { return $this->convocation; } public function addConvocation(ExamenConvocation $convocation): self { if (!$this->convocation->contains($convocation)) { $this->convocation[] = $convocation; $convocation->setExamen($this); } return $this; } public function removeConvocation(ExamenConvocation $convocation): self { if ($this->convocation->removeElement($convocation)) { // set the owning side to null (unless already changed) if ($convocation->getExamen() === $this) { $convocation->setExamen(null); } } 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->setExamen($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->getExamen() === $this) { $attendanceBooking->setExamen(null); } } 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 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; } }