<?php
namespace App\Entity;
use App\Repository\SolicitudRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=SolicitudRepository::class)
*/
class Solicitud
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="date")
*/
private $fechaDesde;
/**
* @ORM\Column(type="date")
*/
private $fechaHasta;
/**
* @ORM\Column(type="integer")
*/
private $adultos;
/**
* @ORM\Column(type="integer")
*/
private $menores;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="solicitudes")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity=Provider::class, inversedBy="solicitudes")
*/
private $provider;
/**
* @ORM\Column(type="datetime_immutable")
*/
private $createdAt;
/**
* @ORM\Column(type="boolean")
*/
private $abierta;
/**
* @ORM\OneToMany(targetEntity=SolicitudLog::class, mappedBy="solicitud", cascade={"persist", "remove"})
*/
private $logs;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $autorizaRespuesta;
/**
* @ORM\Column(type="string", length=1000, nullable=true)
*/
private $comentarios;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $destino;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $cadena;
/**
* @return mixed
*/
public function getDestino()
{
return $this->destino;
}
/**
* @param mixed $destino
*/
public function setDestino($destino): void
{
$this->destino = $destino;
}
/**
* @return mixed
*/
public function getCadena()
{
return $this->cadena;
}
/**
* @param mixed $cadena
*/
public function setCadena($cadena): void
{
$this->cadena = $cadena;
}
/**
* @return mixed
*/
public function getComentarios()
{
return $this->comentarios;
}
/**
* @param mixed $comentarios
*/
public function setComentarios($comentarios): void
{
$this->comentarios = $comentarios;
}
public function __construct()
{
$this->logs = new ArrayCollection();
$this->createdAt = new \DateTimeImmutable();
}
public function getId(): ?int
{
return $this->id;
}
public function getFechaDesde(): ?\DateTimeInterface
{
return $this->fechaDesde;
}
public function setFechaDesde(\DateTimeInterface $fechaDesde): self
{
$this->fechaDesde = $fechaDesde;
return $this;
}
public function getFechaHasta(): ?\DateTimeInterface
{
return $this->fechaHasta;
}
public function setFechaHasta(\DateTimeInterface $fechaHasta): self
{
$this->fechaHasta = $fechaHasta;
return $this;
}
public function getAdultos(): ?int
{
return $this->adultos;
}
public function setAdultos(int $adultos): self
{
$this->adultos = $adultos;
return $this;
}
public function getMenores(): ?int
{
return $this->menores;
}
public function setMenores(int $menores): self
{
$this->menores = $menores;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getProvider(): ?Provider
{
return $this->provider;
}
public function setProvider(?Provider $provider): self
{
$this->provider = $provider;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeImmutable $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function isAbierta(): ?bool
{
return $this->abierta;
}
public function setAbierta(bool $abierta): self
{
$this->abierta = $abierta;
return $this;
}
/**
* @return Collection<int, SolicitudLog>
*/
public function getLogs(): Collection
{
return $this->logs;
}
public function addLog(SolicitudLog $log): self
{
if (!$this->logs->contains($log)) {
$this->logs[] = $log;
$log->setSolicitud($this);
}
return $this;
}
public function removeLog(SolicitudLog $log): self
{
if ($this->logs->removeElement($log)) {
// set the owning side to null (unless already changed)
if ($log->getSolicitud() === $this) {
$log->setSolicitud(null);
}
}
return $this;
}
public function getLastLog()
{
return $this->getLogs()->last();
}
public function __toString()
{
return $this->id . ': ' . $this->getUser() . ': ' . $this->getProvider()->getNombreLocation();
}
/**
* @return mixed
*/
public function getAutorizaRespuesta()
{
return $this->autorizaRespuesta;
}
/**
* @param mixed $autorizaRespuesta
*/
public function setAutorizaRespuesta($autorizaRespuesta): void
{
$this->autorizaRespuesta = $autorizaRespuesta;
}
}