<?php
namespace App\Entity;
use App\Repository\GHVacanteRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Table(name: 'gh_vacante')]
#[ORM\Entity(repositoryClass: GHVacanteRepository::class)]
class GHVacante {
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $resumenPerfilCandidato = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fecha = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $rangoSalarial = null;
#[ORM\Column(type: Types::DECIMAL, precision: 12, scale: '2', nullable: true)]
private ?string $rodamiento = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $riesgoArl = null;
#[ORM\Column]
private ?int $numeroVacante = null;
#[ORM\Column]
private ?int $numeroPostulados = null;
#[ORM\Column]
private ?int $numeroAdmitidos = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $dotacion = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $requerimientoEspecifico = null;
#[ORM\ManyToOne(inversedBy: 'vacante')]
private ?TerSedeEmpresa $sede = null;
#[ORM\ManyToOne(inversedBy: 'personaApruebaVacante')]
private ?TerPersona $personaAprueba = null;
#[ORM\ManyToOne(inversedBy: 'personaSolicitaVacante')]
private ?TerPersona $personaSolicita = null;
#[ORM\ManyToMany(targetEntity: ParTipoConvocatoria::class, inversedBy: 'idVacante')]
private Collection $ParTipoConvocatoria;
#[ORM\ManyToOne(inversedBy: 'idVacante')]
private ?ParMotivoVacante $ParMotivoVacante = null;
#[ORM\ManyToOne(inversedBy: 'idVacante')]
private ?ParModalidadTrabajo $ParModalidadTrabajo = null;
#[ORM\ManyToOne(inversedBy: 'vacante')]
private ?TerEmpresa $empresaFilial = null;
#[ORM\ManyToOne(inversedBy: 'idVacante')]
private ?ParTipoContrato $ParTipoContrato = null;
#[ORM\ManyToOne(inversedBy: 'idVacante')]
private ?ParTipoSeleccion $ParTipoSeleccion = null;
#[ORM\ManyToOne(inversedBy: 'vacante')]
private ?GHPerfilCargo $perfilCargo = null;
#[ORM\OneToMany(mappedBy: 'vacante', targetEntity: GHCandidato::class)]
private Collection $candidato;
#[ORM\OneToMany(mappedBy: 'vacante', targetEntity: GHContratacion::class)]
private Collection $contratacion;
#[ORM\ManyToOne(inversedBy: 'idVacante')]
private ?ParCiudad $ciudad = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionCierre = null;
#[ORM\ManyToOne(inversedBy: 'GHVacante')]
private ?ParEstado $estado = null;
#[ORM\ManyToOne(inversedBy: 'vacante')]
private ?TerAsociado $empresaAsociado = null;
#[ORM\ManyToOne(inversedBy: 'vacante')]
private ?ParTipoVinculacion $tipoVinculacion = null;
#[ORM\ManyToOne(inversedBy: 'vacantes')]
private ?TerEmpresaCliente $empresaCliente = null;
#[ORM\Column]
private ?\DateTime $createAt = null;
#[ORM\Column]
private ?\DateTime $updateAt = null;
#[ORM\Column(length: 255)]
private ?string $createUser = null;
#[ORM\Column(length: 255)]
private ?string $updateUser = null;
#[ORM\ManyToMany(targetEntity: ParTipoDotacion::class, mappedBy: 'vacantes')]
private Collection $tipoDotacion;
public function getCreateAt(): ?\DateTime {
return $this->createAt;
}
public function setCreateAt(\DateTime $createAt): static {
$this->createAt = $createAt;
return $this;
}
public function getUpdateAt(): ?\DateTime {
return $this->updateAt;
}
public function setUpdateAt(\DateTime $updateAt): static {
$this->updateAt = $updateAt;
return $this;
}
public function getCreateUser(): ?string {
return $this->createUser;
}
public function setCreateUser(string $createUser): static {
$this->createUser = $createUser;
return $this;
}
public function getUpdateUser(): ?string {
return $this->updateUser;
}
public function setUpdateUser(string $updateUser): static {
$this->updateUser = $updateUser;
return $this;
}
public function __construct() {
$this->ParTipoConvocatoria = new ArrayCollection();
$this->idCandidato = new ArrayCollection();
$this->contratacion = new ArrayCollection();
$this->idCarnetizacion = new ArrayCollection();
$this->tipoDotacion = new ArrayCollection();
}
public function getId(): ?int {
return $this->id;
}
public function getResumenPerfilCandidato(): ?string {
return $this->resumenPerfilCandidato;
}
public function getFecha(): ?\DateTimeInterface {
return $this->fecha;
}
public function getRangoSalarial(): ?string {
return $this->rangoSalarial;
}
public function setResumenPerfilCandidato(?string $resumenPerfilCandidato): void {
$this->resumenPerfilCandidato = $resumenPerfilCandidato;
}
public function setFecha(?\DateTimeInterface $fecha): void {
$this->fecha = $fecha;
}
public function setRangoSalarial(?string $rangoSalarial): void {
$this->rangoSalarial = $rangoSalarial;
}
public function getRodamiento(): ?string {
return $this->rodamiento;
}
public function setRodamiento(string $rodamiento): static {
$this->rodamiento = $rodamiento;
return $this;
}
public function getRiesgoArl(): ?string {
return $this->riesgoArl;
}
public function setRiesgoArl(string $riesgoArl): static {
$this->riesgoArl = $riesgoArl;
return $this;
}
public function getNumeroVacante(): ?int {
return $this->numeroVacante;
}
public function setNumeroVacante(int $numeroVacante): static {
$this->numeroVacante = $numeroVacante;
return $this;
}
public function getNumeroPostulados(): ?int {
return $this->numeroPostulados;
}
public function setNumeroPostulados(int $numeroPostulados): static {
$this->numeroPostulados = $numeroPostulados;
return $this;
}
public function getNumeroAdmitidos(): ?int {
return $this->numeroAdmitidos;
}
public function setNumeroAdmitidos(int $numeroAdmitidos): static {
$this->numeroAdmitidos = $numeroAdmitidos;
return $this;
}
public function getDotacion(): ?string {
return $this->dotacion;
}
public function setDotacion(string $dotacion): static {
$this->dotacion = $dotacion;
return $this;
}
public function getRequerimientoEspecifico(): ?string {
return $this->requerimientoEspecifico;
}
public function setRequerimientoEspecifico(?string $requerimientoEspecifico): void {
$this->requerimientoEspecifico = $requerimientoEspecifico;
}
public function getSede(): ?TerSedeEmpresa {
return $this->sede;
}
public function setSede(?TerSedeEmpresa $sede): static {
$this->sede = $sede;
return $this;
}
public function getPersonaAprueba(): ?TerPersona {
return $this->personaAprueba;
}
public function setPersonaAprueba(?TerPersona $personaAprueba): static {
$this->personaAprueba = $personaAprueba;
return $this;
}
public function getPersonaSolicita(): ?TerPersona {
return $this->personaSolicita;
}
public function setPersonaSolicita(?TerPersona $personaSolicita): static {
$this->personaSolicita = $personaSolicita;
return $this;
}
/**
* @return Collection<int, ParTipoConvocatoria>
*/
public function getParTipoConvocatoria(): Collection {
return $this->ParTipoConvocatoria;
}
public function addParTipoConvocatorium(ParTipoConvocatoria $parTipoConvocatorium): static {
if (!$this->ParTipoConvocatoria->contains($parTipoConvocatorium)) {
$this->ParTipoConvocatoria->add($parTipoConvocatorium);
$parTipoConvocatorium->addIdVacante($this);
}
return $this;
}
public function removeParTipoConvocatorium(ParTipoConvocatoria $parTipoConvocatorium): static {
if ($this->ParTipoConvocatoria->removeElement($parTipoConvocatorium)) {
$parTipoConvocatorium->removeIdVacante($this);
}
return $this;
}
public function getParMotivoVacante(): ?ParMotivoVacante {
return $this->ParMotivoVacante;
}
public function setParMotivoVacante(?ParMotivoVacante $ParMotivoVacante): static {
$this->ParMotivoVacante = $ParMotivoVacante;
return $this;
}
public function getParModalidadTrabajo(): ?ParModalidadTrabajo {
return $this->ParModalidadTrabajo;
}
public function setParModalidadTrabajo(?ParModalidadTrabajo $ParModalidadTrabajo): static {
$this->ParModalidadTrabajo = $ParModalidadTrabajo;
return $this;
}
public function getEmpresaFilial(): ?TerEmpresa {
return $this->empresaFilial;
}
public function setEmpresaFilial(?TerEmpresa $empresaFilial): static {
$this->empresaFilial = $empresaFilial;
return $this;
}
public function getParTipoContrato(): ?ParTipoContrato {
return $this->ParTipoContrato;
}
public function setParTipoContrato(?ParTipoContrato $ParTipoContrato): static {
$this->ParTipoContrato = $ParTipoContrato;
return $this;
}
public function getParTipoSeleccion(): ?ParTipoSeleccion {
return $this->ParTipoSeleccion;
}
public function setParTipoSeleccion(?ParTipoSeleccion $ParTipoSeleccion): static {
$this->ParTipoSeleccion = $ParTipoSeleccion;
return $this;
}
public function getPerfilCargo(): ?GHPerfilCargo {
return $this->perfilCargo;
}
public function setPerfilCargo(?GHPerfilCargo $perfilCargo): static {
$this->perfilCargo = $perfilCargo;
return $this;
}
/**
* @return Collection<int, GHCandidato>
*/
public function getCandidato(): Collection {
return $this->candidato;
}
public function addCandidato(GHCandidato $idCandidato): static {
if (!$this->candidato->contains($idCandidato)) {
$this->candidato->add($idCandidato);
$idCandidato->setVacante($this);
}
return $this;
}
public function removeCandidato(GHCandidato $idCandidato): static {
if ($this->candidato->removeElement($idCandidato)) {
// set the owning side to null (unless already changed)
if ($idCandidato->getVacante() === $this) {
$idCandidato->setVacante(null);
}
}
return $this;
}
/**
* @return Collection<int, GHContratacion>
*/
public function getContratacion(): Collection {
return $this->contratacion;
}
public function addContratacion(GHContratacion $contratacion): static {
if (!$this->contratacion->contains($contratacion)) {
$this->contratacion->add($contratacion);
$contratacion->setVacante($this);
}
return $this;
}
public function removeContratacion(GHContratacion $contratacion): static {
if ($this->contratacion->removeElement($contratacion)) {
// set the owning side to null (unless already changed)
if ($contratacion->getVacante() === $this) {
$contratacion->setVacante(null);
}
}
return $this;
}
public function getCiudad(): ?ParCiudad {
return $this->ciudad;
}
public function setCiudad(?ParCiudad $ciudad): static {
$this->ciudad = $ciudad;
return $this;
}
public function getObservacionCierre(): ?string
{
return $this->observacionCierre;
}
public function setObservacionCierre(?string $observacionCierre): static
{
$this->observacionCierre = $observacionCierre;
return $this;
}
public function getEstado(): ?ParEstado
{
return $this->estado;
}
public function setEstado(?ParEstado $estado): static
{
$this->estado = $estado;
return $this;
}
public function getEmpresaAsociado(): ?TerAsociado
{
return $this->empresaAsociado;
}
public function setEmpresaAsociado(?TerAsociado $empresaAsociado): static
{
$this->empresaAsociado = $empresaAsociado;
return $this;
}
public function getTipoVinculacion(): ?ParTipoVinculacion
{
return $this->tipoVinculacion;
}
public function setTipoVinculacion(?ParTipoVinculacion $tipoVinculacion): static
{
$this->tipoVinculacion = $tipoVinculacion;
return $this;
}
public function getEmpresaCliente(): ?TerEmpresaCliente
{
return $this->empresaCliente;
}
public function setEmpresaCliente(?TerEmpresaCliente $empresaCliente): static
{
$this->empresaCliente = $empresaCliente;
return $this;
}
/**
* @return Collection<int, ParTipoDotacion>
*/
public function getTipoDotacion(): Collection
{
return $this->tipoDotacion;
}
public function addTipoDotacion(ParTipoDotacion $tipoDotacion): static
{
if (!$this->tipoDotacion->contains($tipoDotacion)) {
$this->tipoDotacion->add($tipoDotacion);
$tipoDotacion->addVacante($this);
}
return $this;
}
public function removeTipoDotacion(ParTipoDotacion $tipoDotacion): static
{
if ($this->tipoDotacion->removeElement($tipoDotacion)) {
$tipoDotacion->removeVacante($this);
}
return $this;
}
}