<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class Reserva extends \App\Entity\BaseEntity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $descripcion;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isValidado;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\HorarioReserva::class, mappedBy="reserva")
*/
private $horarioReservas;
/**
* @ORM\ManyToOne(targetEntity=\App\Entity\TipoReserva::class, inversedBy="reservas")
* @ORM\JoinColumn(name="tipo_reserva_id", referencedColumnName="id")
*/
private $tipoReserva;
/**
* @ORM\ManyToOne(targetEntity=\App\Entity\Recurso::class, inversedBy="reservas")
* @ORM\JoinColumn(name="recurso_id", referencedColumnName="id")
*/
private $recurso;
/**
* @ORM\ManyToOne(targetEntity=\App\Entity\EstadoReserva::class, inversedBy="reservas")
* @ORM\JoinColumn(name="estado_reserva_id", referencedColumnName="id")
*/
private $estadoReserva;
/**
* @ORM\ManyToOne(targetEntity=\App\Entity\PropietarioContenido::class, inversedBy="reservasAutoriza")
* @ORM\JoinColumn(name="propietario_contenido_id", referencedColumnName="id")
*/
private $propietarioContenidoAutoriza;
/**
* @ORM\ManyToMany(targetEntity=\App\Entity\PropietarioContenido::class, inversedBy="reservas")
* @ORM\JoinTable(
* name="PropietarioContenidoHasReserva",
* joinColumns={@ORM\JoinColumn(name="reserva_id", referencedColumnName="id", nullable=false)},
* inverseJoinColumns={@ORM\JoinColumn(name="propietario_contenido_id", referencedColumnName="id", nullable=false)}
* )
*/
private $propietarioContenidos;
public function __construct()
{
$this->horarioReservas = new ArrayCollection();
$this->propietarioContenidos = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function getDescripcion(): ?string
{
return $this->descripcion;
}
public function setDescripcion(?string $descripcion): static
{
$this->descripcion = $descripcion;
return $this;
}
public function isIsValidado(): ?bool
{
return $this->isValidado;
}
public function setIsValidado(?bool $isValidado): static
{
$this->isValidado = $isValidado;
return $this;
}
/**
* @return Collection<int, HorarioReserva>
*/
public function getHorarioReservas(): Collection
{
return $this->horarioReservas;
}
public function addHorarioReserva(HorarioReserva $horarioReserva): static
{
if (!$this->horarioReservas->contains($horarioReserva)) {
$this->horarioReservas->add($horarioReserva);
$horarioReserva->setReserva($this);
}
return $this;
}
public function removeHorarioReserva(HorarioReserva $horarioReserva): static
{
if ($this->horarioReservas->removeElement($horarioReserva)) {
// set the owning side to null (unless already changed)
if ($horarioReserva->getReserva() === $this) {
$horarioReserva->setReserva(null);
}
}
return $this;
}
public function getTipoReserva(): ?TipoReserva
{
return $this->tipoReserva;
}
public function setTipoReserva(?TipoReserva $tipoReserva): static
{
$this->tipoReserva = $tipoReserva;
return $this;
}
public function getRecurso(): ?Recurso
{
return $this->recurso;
}
public function setRecurso(?Recurso $recurso): static
{
$this->recurso = $recurso;
return $this;
}
public function getEstadoReserva(): ?EstadoReserva
{
return $this->estadoReserva;
}
public function setEstadoReserva(?EstadoReserva $estadoReserva): static
{
$this->estadoReserva = $estadoReserva;
return $this;
}
public function getPropietarioContenidoAutoriza(): ?PropietarioContenido
{
return $this->propietarioContenidoAutoriza;
}
public function setPropietarioContenidoAutoriza(?PropietarioContenido $propietarioContenidoAutoriza): static
{
$this->propietarioContenidoAutoriza = $propietarioContenidoAutoriza;
return $this;
}
/**
* @return Collection<int, PropietarioContenido>
*/
public function getPropietarioContenidos(): Collection
{
return $this->propietarioContenidos;
}
public function addPropietarioContenido(PropietarioContenido $propietarioContenido): static
{
if (!$this->propietarioContenidos->contains($propietarioContenido)) {
$this->propietarioContenidos->add($propietarioContenido);
}
return $this;
}
public function removePropietarioContenido(PropietarioContenido $propietarioContenido): static
{
$this->propietarioContenidos->removeElement($propietarioContenido);
return $this;
}
}