<?php
namespace App\Entity;
use App\Entity\Traits\Timestampable;
use App\Repository\ExamAgendaElementRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Groups;
#[ORM\HasLifecycleCallbacks]
#[ORM\Entity(repositoryClass: ExamAgendaElementRepository::class)]
class ExamAgendaElement
{
use Timestampable;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[Groups(['getExamAgenda'])]
private ?int $id = null;
#[ORM\Column(type: Types::TIME_MUTABLE)]
#[Groups(['getExamAgenda'])]
private ?\DateTimeInterface $startAt = null;
#[ORM\Column(type: Types::TIME_MUTABLE)]
#[Groups(['getExamAgenda'])]
private ?\DateTimeInterface $endAt = null;
#[ORM\Column(length: 255)]
#[Groups(['getExamAgenda'])]
private ?string $duration = null;
#[ORM\Column(length: 255, nullable: true)]
#[Groups(['getExamAgenda'])]
private ?string $other = null;
#[ORM\ManyToOne(inversedBy: 'examAgendaElements')]
#[Groups(['getExamAgenda'])]
private ?Subject $subject = null;
#[ORM\ManyToOne(inversedBy: 'examAgendaElements')]
private ?ExamAgendaDay $examAgendaDay = null;
#[ORM\ManyToOne(inversedBy: 'examAgendaElements')]
#[ORM\JoinColumn(nullable: false)]
private ?User $author = null;
public function getId(): ?int
{
return $this->id;
}
public function getStartAt(): ?\DateTimeInterface
{
return $this->startAt;
}
public function setStartAt(\DateTimeInterface $startAt): static
{
$this->startAt = $startAt;
return $this;
}
public function getEndAt(): ?\DateTimeInterface
{
return $this->endAt;
}
public function setEndAt(\DateTimeInterface $endAt): static
{
$this->endAt = $endAt;
return $this;
}
public function getDuration(): ?string
{
return $this->duration;
}
public function setDuration(string $duration): static
{
$this->duration = $duration;
return $this;
}
public function getOther(): ?string
{
return $this->other;
}
public function setOther(?string $other): static
{
$this->other = $other;
return $this;
}
public function getSubject(): ?Subject
{
return $this->subject;
}
public function setSubject(?Subject $subject): static
{
$this->subject = $subject;
return $this;
}
public function getExamAgendaDay(): ?ExamAgendaDay
{
return $this->examAgendaDay;
}
public function setExamAgendaDay(?ExamAgendaDay $examAgendaDay): static
{
$this->examAgendaDay = $examAgendaDay;
return $this;
}
public function getAuthor(): ?User
{
return $this->author;
}
public function setAuthor(?User $author): static
{
$this->author = $author;
return $this;
}
}