<?php
namespace App\Entity;
use App\Repository\StaffWorkExperienceRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: StaffWorkExperienceRepository::class), ORM\Table(name: 'staff_work_experiences')]
class StaffWorkExperience
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
private $id;
#[ORM\ManyToOne(targetEntity: DesignationSetting::class), ORM\JoinColumn(name: 'designation_from_id', nullable: false)]
#[Assert\NotBlank]
private $postingType;
#[ORM\ManyToOne(targetEntity: DesignationSetting::class), ORM\JoinColumn(name: 'designation_to_id', nullable: false)]
#[Assert\NotBlank]
private $promotedAs;
#[ORM\Column(type: 'date'), Assert\NotBlank]
private $doj;
#[ORM\Column(type: 'date'), Assert\NotBlank]
private $dojPresent;
#[ORM\Column(type: 'string', length: 100, nullable: true)]
private $transPromOrder;
#[ORM\Column(type: 'string', length: 100, nullable: true)]
private $retireOrder;
#[Gedmo\Timestampable(on: 'create'), ORM\Column(type: 'datetime')]
private $createdAt;
#[Gedmo\Timestampable(on: 'update'), ORM\Column(type: 'datetime')]
private $updatedAt;
#[ORM\ManyToOne(targetEntity: StaffProfile::class, inversedBy: 'workExperiences'), ORM\JoinColumn(nullable: false)]
private $profile;
public function getId(): ?int
{
return $this->id;
}
public function getPostingType(): ?DesignationSetting
{
return $this->postingType;
}
public function setPostingType(DesignationSetting $postingType): self
{
$this->postingType = $postingType;
return $this;
}
public function getPromotedAs(): ?DesignationSetting
{
return $this->promotedAs;
}
public function setPromotedAs(DesignationSetting $promotedAs): self
{
$this->promotedAs = $promotedAs;
return $this;
}
public function getDoj(): ?\DateTimeInterface
{
return $this->doj;
}
public function setDoj(\DateTimeInterface $doj): self
{
$this->doj = $doj;
return $this;
}
public function getDojPresent(): ?\DateTimeInterface
{
return $this->dojPresent;
}
public function setDojPresent(\DateTimeInterface $dojPresent): self
{
$this->dojPresent = $dojPresent;
return $this;
}
public function getTransPromOrder(): ?string
{
return $this->transPromOrder;
}
public function setTransPromOrder(?string $transPromOrder): self
{
$this->transPromOrder = $transPromOrder;
return $this;
}
public function getRetireOrder(): ?string
{
return $this->retireOrder;
}
public function setRetireOrder(?string $retireOrder): self
{
$this->retireOrder = $retireOrder;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function getProfile(): ?StaffProfile
{
return $this->profile;
}
public function setProfile(?StaffProfile $profile): self
{
$this->profile = $profile;
return $this;
}
}