<?php

namespace App\Entity;

use App\Repository\LeaveApplicationRepository;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=LeaveApplicationRepository::class)
 */
class LeaveApplication
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="integer")
     */
    private $empId;
 
    /**
     * @ORM\ManyToOne(targetEntity=Leavename::class, inversedBy="leaveApplications")
     * @ORM\JoinColumn(nullable=false)
     */
    private $leavename;

    /**
     * @ORM\Column(type="date")
     */
    private $fromDays;

    /**
     * @ORM\Column(type="date")
     */
    private $toDays;

    /**
     * @ORM\Column(type="string", length=500)
     */
    private $reasons;

    /**
     * @ORM\Column(type="string", length=400, nullable=true)
     */
    private $address;

    /**
     * @ORM\Column(type="string", length=50, nullable=true)
     */
    private $contactNo;

    /**
     * @ORM\Column(type="string", length=500, nullable=true)
     */
    private $specialRemarks;

    /**
     * @ORM\Column(type="integer")
     */
    private $status;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $type;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $entryby;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $entrydate;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $editby;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $editdate;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $fhApproval;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $fhApprovalBy;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $fhApprovalDate;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $dhApproval;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $dhApprovalBy;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $dhApprovalDate;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getEmpId(): ?int
    {
        return $this->empId;
    }

    public function setEmpId(int $empId): self
    {
        $this->empId = $empId;

        return $this;
    }

    public function getLeavename(): ?Leavename
    {
        return $this->leavename;
    }

    public function setLeavename(?Leavename $leavename): self
    {
        $this->leavename = $leavename;

        return $this;
    }

    public function getFromDays(): ?\DateTimeInterface
    {
        return $this->fromDays;
    }

    public function setFromDays(\DateTimeInterface $fromDays): self
    {
        $this->fromDays = $fromDays;

        return $this;
    }

    public function getToDays(): ?\DateTimeInterface
    {
        return $this->toDays;
    }

    public function setToDays(\DateTimeInterface $toDays): self
    {
        $this->toDays = $toDays;

        return $this;
    }

    public function getReasons(): ?string
    {
        return $this->reasons;
    }

    public function setReasons(string $reasons): self
    {
        $this->reasons = $reasons;

        return $this;
    }

    public function getAddress(): ?string
    {
        return $this->address;
    }

    public function setAddress(?string $address): self
    {
        $this->address = $address;

        return $this;
    }

    public function getContactNo(): ?string
    {
        return $this->contactNo;
    }

    public function setContactNo(?string $contactNo): self
    {
        $this->contactNo = $contactNo;

        return $this;
    }

    public function getSpecialRemarks(): ?string
    {
        return $this->specialRemarks;
    }

    public function setSpecialRemarks(?string $specialRemarks): self
    {
        $this->specialRemarks = $specialRemarks;

        return $this;
    }

    public function getStatus(): ?int
    {
        return $this->status;
    }

    public function setStatus(int $status): self
    {
        $this->status = $status;

        return $this;
    }

    public function getType(): ?int
    {
        return $this->type;
    }

    public function setType(?int $type): self
    {
        $this->type = $type;

        return $this;
    }

    public function getEntryby(): ?int
    {
        return $this->entryby;
    }

    public function setEntryby(?int $entryby): self
    {
        $this->entryby = $entryby;

        return $this;
    }

    public function getEntrydate(): ?\DateTimeInterface
    {
        return $this->entrydate;
    }

    public function setEntrydate(?\DateTimeInterface $entrydate): self
    {
        $this->entrydate = $entrydate;

        return $this;
    }

    public function getEditby(): ?int
    {
        return $this->editby;
    }

    public function setEditby(?int $editby): self
    {
        $this->editby = $editby;

        return $this;
    }

    public function getEditdate(): ?\DateTimeInterface
    {
        return $this->editdate;
    }

    public function setEditdate(?\DateTimeInterface $editdate): self
    {
        $this->editdate = $editdate;

        return $this;
    }

    public function getFhApproval(): ?int
    {
        return $this->fhApproval;
    }

    public function setFhApproval(?int $fhApproval): self
    {
        $this->fhApproval = $fhApproval;

        return $this;
    }

    public function getFhApprovalBy(): ?int
    {
        return $this->fhApprovalBy;
    }

    public function setFhApprovalBy(?int $fhApprovalBy): self
    {
        $this->fhApprovalBy = $fhApprovalBy;

        return $this;
    }

    public function getFhApprovalDate(): ?\DateTimeInterface
    {
        return $this->fhApprovalDate;
    }

    public function setFhApprovalDate(?\DateTimeInterface $fhApprovalDate): self
    {
        $this->fhApprovalDate = $fhApprovalDate;

        return $this;
    }

    public function getDhApproval(): ?int
    {
        return $this->dhApproval;
    }

    public function setDhApproval(?int $dhApproval): self
    {
        $this->dhApproval = $dhApproval;

        return $this;
    }

    public function getDhApprovalBy(): ?int
    {
        return $this->dhApprovalBy;
    }

    public function setDhApprovalBy(?int $dhApprovalBy): self
    {
        $this->dhApprovalBy = $dhApprovalBy;

        return $this;
    }

    public function getDhApprovalDate(): ?\DateTimeInterface
    {
        return $this->dhApprovalDate;
    }

    public function setDhApprovalDate(?\DateTimeInterface $dhApprovalDate): self
    {
        $this->dhApprovalDate = $dhApprovalDate;

        return $this;
    }
}
