src/Entity/CRM/LeaveRequestHistory.php line 11
<?phpnamespace App\Entity\CRM;use App\Repository\LeaveRequestHistoryRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: LeaveRequestHistoryRepository::class)]#[ORM\HasLifecycleCallbacks]class LeaveRequestHistory{#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\Column(type: Types::INTEGER)]private ?int $leaveRequestId = null;#[ORM\Column(type: Types::INTEGER, nullable: true)]private ?int $consultantId = null;#[ORM\Column(type: Types::INTEGER, nullable: true)]private ?int $adminId = null;#[ORM\Column(type: Types::DATETIME_MUTABLE)]private ?\DateTimeInterface $startTime = null;#[ORM\Column(type: Types::DATETIME_MUTABLE)]private ?\DateTimeInterface $endTime = null;#[ORM\Column]private ?bool $accepted = null;#[ORM\Column(type: Types::INTEGER, nullable: true)]private ?int $acceptedById = null;#[ORM\Column]private ?bool $rejected = null;#[ORM\Column(type: Types::INTEGER, nullable: true)]private ?int $rejectedById = null;#[ORM\Column(type: Types::INTEGER, nullable: true)]private ?int $leaveRequestTypeId = null;#[ORM\Column(type: Types::DATETIME_MUTABLE)]private ?\DateTimeInterface $createdAt = null;#[ORM\Column(length: 255)]private ?string $action = null; // CREATE, UPDATE, DELETE#[ORM\Column(length: 255, nullable: true)]private ?string $changedBy = null;#[ORM\Column]private ?bool $acceptedByHr = false;#[ORM\Column(nullable: true)]private ?int $acceptedByHrBy = null;public function getId(): ?int{return $this->id;}public function getLeaveRequestId(): ?int{return $this->leaveRequestId;}public function setLeaveRequestId(int $leaveRequestId): self{$this->leaveRequestId = $leaveRequestId;return $this;}public function getConsultantId(): ?int{return $this->consultantId;}public function setConsultantId(int $consultantId): self{$this->consultantId = $consultantId;return $this;}public function getAdminId(): ?int{return $this->adminId;}public function setAdminId(int $adminId): self{$this->adminId = $adminId;return $this;}public function getStartTime(): ?\DateTimeInterface{return $this->startTime;}public function setStartTime(\DateTimeInterface $startTime): self{$this->startTime = $startTime;return $this;}public function getEndTime(): ?\DateTimeInterface{return $this->endTime;}public function setEndTime(\DateTimeInterface $endTime): self{$this->endTime = $endTime;return $this;}public function isAccepted(): ?bool{return $this->accepted;}public function setAccepted(bool $accepted): self{$this->accepted = $accepted;return $this;}public function getAcceptedById(): ?int{return $this->acceptedById;}public function setAcceptedById(?int $acceptedById): self{$this->acceptedById = $acceptedById;return $this;}public function isRejected(): ?bool{return $this->rejected;}public function setRejected(bool $rejected): self{$this->rejected = $rejected;return $this;}public function getRejectedById(): ?int{return $this->rejectedById;}public function setRejectedById(?int $rejectedById): self{$this->rejectedById = $rejectedById;return $this;}public function getLeaveRequestTypeId(): ?int{return $this->leaveRequestTypeId;}public function setLeaveRequestTypeId(?int $leaveRequestTypeId): self{$this->leaveRequestTypeId = $leaveRequestTypeId;return $this;}public function getCreatedAt(): ?\DateTimeInterface{return $this->createdAt;}public function setCreatedAt(\DateTimeInterface $createdAt): self{$this->createdAt = $createdAt;return $this;}public function getAction(): ?string{return $this->action;}public function setAction(string $action): self{$this->action = $action;return $this;}public function getChangedBy(): ?string{return $this->changedBy;}public function setChangedBy(?string $changedBy): self{$this->changedBy = $changedBy;return $this;}#[ORM\PrePersist]public function setCreatedAtValue(): void{$this->createdAt = new \DateTime();}/*** Create a history record from a LeaveRequest entity*/public static function createFromLeaveRequest(LeaveRequest $leaveRequest, string $action, ?string $changedBy = null): self{$history = new self();$history->setLeaveRequestId($leaveRequest->getId());if ($leaveRequest->getAdmin()) {$history->setAdminId($leaveRequest->getAdmin()->getId());}if($leaveRequest->getConsultant()){$history->setConsultantId($leaveRequest->getConsultant()->getId());}$history->setStartTime($leaveRequest->getStartTime());$history->setEndTime($leaveRequest->getEndTime());$history->setAccepted($leaveRequest->isAccepted());$history->setRejected($leaveRequest->isRejected());if ($leaveRequest->getAcceptedBy()) {$history->setAcceptedById($leaveRequest->getAcceptedBy()->getId());}if ($leaveRequest->getRejectedBy()) {$history->setRejectedById($leaveRequest->getRejectedBy()->getId());}if ($leaveRequest->getLeaveRequestType()) {$history->setLeaveRequestTypeId($leaveRequest->getLeaveRequestType()->getId());}if ($leaveRequest->getAcceptedByHr()) {$history->setAcceptedByHr($leaveRequest->getAcceptedByHr());}if ($leaveRequest->getAcceptedByHrBy()) {$history->setAcceptedByHrBy($leaveRequest->getAcceptedByHrBy()->getId());}$history->setAction($action);$history->setChangedBy($changedBy);$history->setCreatedAt(new \DateTime());return $history;}public function isAcceptedByHr(): ?bool{return $this->acceptedByHr;}public function setAcceptedByHr(?bool $acceptedByHr): static{$this->acceptedByHr = $acceptedByHr;return $this;}public function getAcceptedByHrBy(): ?int{return $this->acceptedByHrBy;}public function setAcceptedByHrBy(?int $acceptedByHrBy): static{$this->acceptedByHrBy = $acceptedByHrBy;return $this;}}