<?phpnamespace App\Entity;use App\Entity\Base\AbstractTimestampableEntity;use App\Repository\AnualLeaveRepository;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;use Symfony\Component\Validator\Mapping\ClassMetadata;use Symfony\Component\Validator\Constraints\GreaterThanOrEqual;/** * @ORM\Entity(repositoryClass=AnualLeaveRepository::class) * @ORM\HasLifecycleCallbacks */class AnualLeave extends AbstractTimestampableEntity{ /** * @ORM\Column(type="string", length=255) */ private $name; /** * @ORM\Column(type="text", nullable=true) */ private $description; /** * @ORM\Column(type="date") */ private $startDate; /** * @ORM\Column(type="date") */ private $endDate; /** * @ORM\ManyToOne(targetEntity=AnualLeaveType::class, inversedBy="anualLeaves") * @ORM\JoinColumn(nullable=false) */ private $anualLeaveType; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="userAnualLeavs") */ private $userOnHoliday; /** * @ORM\Column(type="boolean",options={"default":false}) */ private bool $deleted = false; /** * @ORM\Column(type="boolean",options={"default":false}) */ private bool $accepted = false; public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(?string $description): self { $this->description = $description; return $this; } public function getStartDate(): ?\DateTimeInterface { return $this->startDate; } public function setStartDate(\DateTimeInterface $startDate): self { $this->startDate = $startDate; return $this; } public function getEndDate(): ?\DateTimeInterface { return $this->endDate; } public function setEndDate(\DateTimeInterface $endDate): self { $this->endDate = $endDate; return $this; } public function getAnualLeaveType(): ?AnualLeaveType { return $this->anualLeaveType; } public function setAnualLeaveType(?AnualLeaveType $anualLeaveType): self { $this->anualLeaveType = $anualLeaveType; return $this; } public function getUserOnHoliday() { return $this->userOnHoliday; } public function setUserOnHoliday($userOnHoliday): self { $this->userOnHoliday = $userOnHoliday; return $this; } public static function loadValidatorMetadata(ClassMetadata $metadata): void { $metadata->addPropertyConstraint('endDate', new Assert\GreaterThanOrEqual([ 'propertyPath' => 'startDate', 'message' => 'A végdátumnak nagyobbnak vagy egyenlőnek kell lennie a kezdeti dátummal.'])); } public function __toString(): string { return $this->getName(); } public function isDeleted(): bool { return $this->deleted; } public function setDeleted(bool $deleted): self { $this->deleted = $deleted; return $this; } public function isAccepted(): bool { return $this->accepted; } public function setAccepted(bool $accepted): self { $this->accepted = $accepted; return $this; }}