<?php
namespace App\Entity;
use App\Repository\SegIngresoVisitanteRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: SegIngresoVisitanteRepository::class)]
#[ORM\HasLifecycleCallbacks]
class SegIngresoVisitante {
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fechaSolicitud = null;
#[ORM\ManyToOne(inversedBy: 'sedeUsuarioIngresoVisitante')]
private ?TerSedeEmpresa $sede = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable:true)]
private ?\DateTimeInterface $fechaVisita = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fechaFinVisita = null;
#[ORM\Column(length: 150)]
private ?string $empresaOrigen = null;
#[ORM\ManyToOne(inversedBy: 'atiendeIngresoVisitante')]
private ?TerPersona $usuarioAtiende = null;
#[ORM\Column]
private ?int $cantidadVisitantes = null;
#[ORM\ManyToMany(targetEntity: ParCondicionVisita::class, inversedBy: 'ingresoVisitante')]
private Collection $condicionesEspeciales;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observaciones = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $createAt = null;
#[ORM\Column(length: 50, nullable: true)]
private ?string $createUser = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $updateAt = null;
#[ORM\Column(length: 50, nullable: true)]
private ?string $updateUser = null;
#[ORM\OneToMany(mappedBy: 'ingresoVisitante', targetEntity: SegVisitante::class)]
private Collection $visitante;
#[ORM\ManyToOne(inversedBy: 'ingresoVisitante')]
private ?ParEstado $estado = null;
#[ORM\ManyToOne(inversedBy: 'solicitaIngresoVisitante')]
private ?TerPersona $usuarioSolicita = null;
#[ORM\Column(length: 150)]
private ?string $motivoVisita = null;
public function __construct() {
$this->condicionesEspeciales = new ArrayCollection();
$this->visitante = new ArrayCollection();
}
public function getId(): ?int {
return $this->id;
}
public function getFechaSolicitud(): ?\DateTimeInterface {
return $this->fechaSolicitud;
}
public function setFechaSolicitud(\DateTimeInterface $fechaSolicitud): static {
$this->fechaSolicitud = $fechaSolicitud;
return $this;
}
public function getSede(): ?TerSedeEmpresa {
return $this->sede;
}
public function setSede(?TerSedeEmpresa $sede): static {
$this->sede = $sede;
return $this;
}
public function getFechaVisita(): ?\DateTimeInterface {
return $this->fechaVisita;
}
public function setFechaVisita(?\DateTimeInterface $fechaVisita): static {
$this->fechaVisita = $fechaVisita;
return $this;
}
public function getFechaFinVisita(): ?\DateTimeInterface {
return $this->fechaFinVisita;
}
public function setFechaFinVisita(\DateTimeInterface $fechaFinVisita): static {
$this->fechaFinVisita = $fechaFinVisita;
return $this;
}
public function getEmpresaOrigen(): ?string {
return $this->empresaOrigen;
}
public function setEmpresaOrigen(string $empresaOrigen): static {
$this->empresaOrigen = $empresaOrigen;
return $this;
}
public function getUsuarioAtiende(): ?TerPersona {
return $this->usuarioAtiende;
}
public function setUsuarioAtiende(?TerPersona $usuarioAtiende): static {
$this->usuarioAtiende = $usuarioAtiende;
return $this;
}
public function getCantidadVisitantes(): ?int {
return $this->cantidadVisitantes;
}
public function setCantidadVisitantes(int $cantidadVisitantes): static {
$this->cantidadVisitantes = $cantidadVisitantes;
return $this;
}
/**
* @return Collection<int, ParCondicionVisita>
*/
public function getCondicionesEspeciales(): Collection {
return $this->condicionesEspeciales;
}
public function addCondicionesEspeciale(ParCondicionVisita $condicionesEspeciale): static {
if (!$this->condicionesEspeciales->contains($condicionesEspeciale)) {
$this->condicionesEspeciales->add($condicionesEspeciale);
}
return $this;
}
public function removeCondicionesEspeciale(ParCondicionVisita $condicionesEspeciale): static {
$this->condicionesEspeciales->removeElement($condicionesEspeciale);
return $this;
}
public function getObservaciones(): ?string {
return $this->observaciones;
}
public function setObservaciones(?string $observaciones): static {
$this->observaciones = $observaciones;
return $this;
}
public function getCreateAt(): ?\DateTimeInterface {
return $this->createAt;
}
public function setCreateAt(\DateTimeInterface $createAt): static {
$this->createAt = $createAt;
return $this;
}
public function getCreateUser(): ?string {
return $this->createUser;
}
public function setCreateUser(string $createUser): static {
$this->createUser = $createUser;
return $this;
}
public function getUpdateAt(): ?\DateTimeInterface {
return $this->updateAt;
}
public function setUpdateAt(\DateTimeInterface $updateAt): static {
$this->updateAt = $updateAt;
return $this;
}
public function getUpdateUser(): ?string {
return $this->updateUser;
}
public function setUpdateUser(string $updateUser): static {
$this->updateUser = $updateUser;
return $this;
}
/**
* @return Collection<int, SegVisitante>
*/
public function getVisitante(): Collection {
return $this->visitante;
}
public function addVisitante(SegVisitante $visitante): static {
if (!$this->visitante->contains($visitante)) {
$this->visitante->add($visitante);
$visitante->setIngresoVisitante($this);
}
return $this;
}
public function removeVisitante(SegVisitante $visitante): static {
if ($this->visitante->removeElement($visitante)) {
// set the owning side to null (unless already changed)
if ($visitante->getIngresoVisitante() === $this) {
$visitante->setIngresoVisitante(null);
}
}
return $this;
}
public function getEstado(): ?ParEstado
{
return $this->estado;
}
public function setEstado(?ParEstado $estado): static
{
$this->estado = $estado;
return $this;
}
public function getUsuarioSolicita(): ?TerPersona
{
return $this->usuarioSolicita;
}
public function setUsuarioSolicita(?TerPersona $usuarioSolicita): static
{
$this->usuarioSolicita = $usuarioSolicita;
return $this;
}
public function getMotivoVisita(): ?string
{
return $this->motivoVisita;
}
public function setMotivoVisita(string $motivoVisita): static
{
$this->motivoVisita = $motivoVisita;
return $this;
}
}