src/Entity/Recurso.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Enum\TipoModalidad;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. /**
  11. * @ORM\Entity
  12. */
  13. class Recurso extends \App\Entity\BaseEntity
  14. {
  15. /**
  16. * @ORM\Id
  17. * @ORM\Column(type="integer")
  18. * @ORM\GeneratedValue(strategy="AUTO")
  19. */
  20. private $id;
  21. /**
  22. * @ORM\Column(type="string", nullable=true)
  23. */
  24. private $nombre;
  25. /**
  26. * @ORM\Column(type="string", nullable=true)
  27. */
  28. private $descripcion;
  29. /**
  30. * @ORM\OneToMany(
  31. * targetEntity=\App\Entity\DisponibilidadDiaria::class,
  32. * mappedBy="recurso",
  33. * cascade={"persist","remove"}
  34. * )
  35. * @Assert\Valid
  36. */
  37. private $disponibilidadDiaria;
  38. /**
  39. * @ORM\OneToMany(
  40. * targetEntity=\App\Entity\NoDisponibilidadAnual::class,
  41. * mappedBy="recurso",
  42. * cascade={"persist","remove"}
  43. * )
  44. * @Assert\Valid
  45. */
  46. private $noDisponibilidadAnual;
  47. /**
  48. * @ORM\ManyToOne(targetEntity=\App\Entity\TipoReserva::class, inversedBy="recursos")
  49. * @ORM\JoinColumn(name="tipo_recurso_id", referencedColumnName="id")
  50. */
  51. private $tipoReserva;
  52. /**
  53. * @ORM\ManyToOne(targetEntity=\App\Entity\Entidad::class, inversedBy="recursos")
  54. * @ORM\JoinColumn(name="entidad_id", referencedColumnName="id")
  55. */
  56. private $entidad;
  57. /**
  58. * @ORM\Column(type="string", nullable=true)
  59. */
  60. private $ubicacion;
  61. /**
  62. * @ORM\Column(type="string", nullable=true)
  63. */
  64. private $categoria;
  65. /**
  66. * @ORM\OneToMany(targetEntity=\App\Entity\Reserva::class, mappedBy="recurso")
  67. */
  68. private $reservas;
  69. /**
  70. * @ORM\ManyToOne(targetEntity=\App\Entity\EstadoRecurso::class, inversedBy="recursos")
  71. * @ORM\JoinColumn(name="estado_recurso_id", referencedColumnName="id")
  72. */
  73. private $estadoRecurso;
  74. /**
  75. * @ORM\ManyToOne(targetEntity=\App\Entity\CategoriaRecurso::class, inversedBy="recursos")
  76. * @ORM\JoinColumn(name="categoria_recurso_id", referencedColumnName="id")
  77. */
  78. private $categoriaRecurso;
  79. /**
  80. * @ORM\Column(type="string", nullable=true)
  81. */
  82. private $modalidad;
  83. /**
  84. * @ORM\Column(type="datetime", nullable=true)
  85. * @Groups({"recurso_read"})
  86. */
  87. private $fechaCreacion;
  88. /**
  89. * @ORM\Column(type="datetime", nullable=true)
  90. * @Groups({"recurso_read"})
  91. */
  92. private $fechaActualizacion;
  93. /**
  94. * @ORM\Column(type="datetime", nullable=true)
  95. * @Groups({"recurso_read"})
  96. */
  97. private $deletedAt;
  98. public function __construct()
  99. {
  100. $this->reservas = new ArrayCollection();
  101. $this->disponibilidadDiaria = new ArrayCollection();
  102. $this->noDisponibilidadAnual = new ArrayCollection();
  103. $this->fechaCreacion = new \DateTime();
  104. $this->fechaActualizacion = new \DateTime();
  105. }
  106. public function getId(): ?int
  107. {
  108. return $this->id;
  109. }
  110. public function setId($id)
  111. {
  112. $this->id = $id;
  113. return $this;
  114. }
  115. public function getNombre(): ?string
  116. {
  117. return $this->nombre;
  118. }
  119. public function setNombre(?string $nombre): static
  120. {
  121. $this->nombre = $nombre;
  122. return $this;
  123. }
  124. public function getDescripcion(): ?string
  125. {
  126. return $this->descripcion;
  127. }
  128. public function setDescripcion(?string $descripcion): static
  129. {
  130. $this->descripcion = $descripcion;
  131. return $this;
  132. }
  133. public function getTipoRecurso(): ?TipoReserva
  134. {
  135. return $this->tipoReserva;
  136. }
  137. public function setTipoRecurso(?TipoReserva $tipoRecurso): static
  138. {
  139. $this->tipoReserva = $tipoRecurso;
  140. return $this;
  141. }
  142. public function getUbicacion(): ?string
  143. {
  144. return $this->ubicacion;
  145. }
  146. public function setUbicacion(?string $ubicacion): static
  147. {
  148. $this->ubicacion = $ubicacion;
  149. return $this;
  150. }
  151. public function getCategoria(): ?string
  152. {
  153. return $this->categoria;
  154. }
  155. public function setCategoria(?string $categoria): static
  156. {
  157. $this->categoria = $categoria;
  158. return $this;
  159. }
  160. /**
  161. * @return Collection<int, Reserva>
  162. */
  163. public function getReservas(): Collection
  164. {
  165. return $this->reservas;
  166. }
  167. public function addReserva(Reserva $reserva): static
  168. {
  169. if (!$this->reservas->contains($reserva)) {
  170. $this->reservas->add($reserva);
  171. $reserva->setRecurso($this);
  172. }
  173. return $this;
  174. }
  175. public function removeReserva(Reserva $reserva): static
  176. {
  177. if ($this->reservas->removeElement($reserva)) {
  178. // set the owning side to null (unless already changed)
  179. if ($reserva->getRecurso() === $this) {
  180. $reserva->setRecurso(null);
  181. }
  182. }
  183. return $this;
  184. }
  185. public function getEstadoRecurso(): ?EstadoRecurso
  186. {
  187. return $this->estadoRecurso;
  188. }
  189. public function setEstadoRecurso(?EstadoRecurso $estadoRecurso): static
  190. {
  191. $this->estadoRecurso = $estadoRecurso;
  192. return $this;
  193. }
  194. public function getCategoriaRecurso(): ?CategoriaRecurso
  195. {
  196. return $this->categoriaRecurso;
  197. }
  198. public function setCategoriaRecurso(?CategoriaRecurso $categoriaRecurso): static
  199. {
  200. $this->categoriaRecurso = $categoriaRecurso;
  201. return $this;
  202. }
  203. public function getFechaCreacion(): ?\DateTime
  204. {
  205. return $this->fechaCreacion;
  206. }
  207. public function setFechaCreacion(?\DateTime $fechaCreacion): static
  208. {
  209. $this->fechaCreacion = $fechaCreacion;
  210. return $this;
  211. }
  212. public function getFechaActualizacion(): ?\DateTime
  213. {
  214. return $this->fechaActualizacion;
  215. }
  216. public function setFechaActualizacion(?\DateTime $fechaActualizacion): static
  217. {
  218. $this->fechaActualizacion = $fechaActualizacion;
  219. return $this;
  220. }
  221. public function __toString(): string
  222. {
  223. return $this->nombre;
  224. }
  225. public function getTipoReserva(): ?TipoReserva
  226. {
  227. return $this->tipoReserva;
  228. }
  229. public function setTipoReserva(?TipoReserva $tipoReserva): static
  230. {
  231. $this->tipoReserva = $tipoReserva;
  232. return $this;
  233. }
  234. /**
  235. * @return Collection<int, DisponibilidadDiaria>
  236. */
  237. public function getDisponibilidadDiaria(): Collection
  238. {
  239. return $this->disponibilidadDiaria;
  240. }
  241. public function addDisponibilidadDiaria(DisponibilidadDiaria $disponibilidad): static
  242. {
  243. if (!$this->disponibilidadDiaria->contains($disponibilidad)) {
  244. $this->disponibilidadDiaria->add($disponibilidad);
  245. $disponibilidad->setRecurso($this);
  246. }
  247. return $this;
  248. }
  249. public function removeDisponibilidadDiaria(DisponibilidadDiaria $disponibilidad): static
  250. {
  251. if ($this->disponibilidadDiaria->removeElement($disponibilidad)) {
  252. // set the owning side to null (unless already changed)
  253. if ($disponibilidad->getRecurso() === $this) {
  254. $disponibilidad->setRecurso(null);
  255. }
  256. }
  257. return $this;
  258. }
  259. /**
  260. * @return Collection<int, NoDisponibilidadAnual>
  261. */
  262. public function getNoDisponibilidadAnual(): Collection
  263. {
  264. return $this->noDisponibilidadAnual;
  265. }
  266. public function addNoDisponibilidadAnual(NoDisponibilidadAnual $noDisponibilidad): static
  267. {
  268. if (!$this->noDisponibilidadAnual->contains($noDisponibilidad)) {
  269. $this->noDisponibilidadAnual->add($noDisponibilidad);
  270. $noDisponibilidad->setRecurso($this);
  271. }
  272. return $this;
  273. }
  274. public function removeNoDisponibilidadAnual(NoDisponibilidadAnual $noDisponibilidad): static
  275. {
  276. if ($this->noDisponibilidadAnual->removeElement($noDisponibilidad)) {
  277. // set the owning side to null (unless already changed)
  278. if ($noDisponibilidad->getRecurso() === $this) {
  279. $noDisponibilidad->setRecurso(null);
  280. }
  281. }
  282. return $this;
  283. }
  284. public function getModalidad(): ?TipoModalidad
  285. {
  286. return $this->modalidad;
  287. }
  288. public function setModalidad(?TipoModalidad $modalidad): static
  289. {
  290. $this->modalidad = $modalidad;
  291. return $this;
  292. }
  293. public function addDisponibilidadDiarium(DisponibilidadDiaria $disponibilidadDiarium): static
  294. {
  295. if (!$this->disponibilidadDiaria->contains($disponibilidadDiarium)) {
  296. $this->disponibilidadDiaria->add($disponibilidadDiarium);
  297. $disponibilidadDiarium->setRecurso($this);
  298. }
  299. return $this;
  300. }
  301. public function removeDisponibilidadDiarium(DisponibilidadDiaria $disponibilidadDiarium): static
  302. {
  303. if ($this->disponibilidadDiaria->removeElement($disponibilidadDiarium)) {
  304. // set the owning side to null (unless already changed)
  305. if ($disponibilidadDiarium->getRecurso() === $this) {
  306. $disponibilidadDiarium->setRecurso(null);
  307. }
  308. }
  309. return $this;
  310. }
  311. public function getDeletedAt(): ?\DateTimeInterface
  312. {
  313. return $this->deletedAt;
  314. }
  315. public function setDeletedAt(?\DateTimeInterface $deletedAt): static
  316. {
  317. $this->deletedAt = $deletedAt;
  318. return $this;
  319. }
  320. public function getEntidad(): ?Entidad
  321. {
  322. return $this->entidad;
  323. }
  324. public function setEntidad(?Entidad $entidad): static
  325. {
  326. $this->entidad = $entidad;
  327. return $this;
  328. }
  329. }