src/Entity/DisponibilidadDiaria.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\DBAL\Types\Types;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Serializer\Annotation\Groups;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. /**
  8. * @ORM\Entity
  9. * @ORM\Table(name="disponibilidad_diaria")
  10. */
  11. class DisponibilidadDiaria extends \App\Entity\BaseEntity
  12. {
  13. /**
  14. * @ORM\Id
  15. * @ORM\Column(type="integer")
  16. * @ORM\GeneratedValue(strategy="AUTO")
  17. * @Groups({"recurso_read", "recurso_write"})
  18. */
  19. private $id;
  20. /**
  21. * @ORM\Column(type="smallint", nullable=true, name="dia_semana")
  22. * @Groups({"recurso_read", "recurso_write"})
  23. * @Assert\NotBlank(message="Debe seleccionar un día de la semana")
  24. * @Assert\Range(min=1, max=7, minMessage="El día debe estar entre 1 y 7", maxMessage="El día debe estar entre 1 y 7")
  25. */
  26. private $diaSemana;
  27. /**
  28. * @ORM\Column(type="time", nullable=true, name="hora_inicio")
  29. * @Groups({"recurso_read", "recurso_write"})
  30. * @Assert\NotBlank(message="Debe especificar una hora de inicio")
  31. */
  32. private $horaInicio;
  33. /**
  34. * @ORM\Column(type="time", nullable=true, name="hora_fin")
  35. * @Groups({"recurso_read", "recurso_write"})
  36. * @Assert\NotBlank(message="Debe especificar una hora de fin")
  37. */
  38. private $horaFin;
  39. /**
  40. * @ORM\ManyToOne(targetEntity=\App\Entity\Recurso::class, inversedBy="disponibilidadDiaria")
  41. * @ORM\JoinColumn(name="recurso_id", referencedColumnName="id", onDelete="CASCADE")
  42. */
  43. private $recurso;
  44. /**
  45. * @ORM\Column(type="datetime", nullable=true)
  46. * @Groups({"recurso_read"})
  47. */
  48. private $fechaCreacion;
  49. /**
  50. * @ORM\Column(type="datetime", nullable=true)
  51. * @Groups({"recurso_read"})
  52. */
  53. private $fechaActualizacion;
  54. public function __construct()
  55. {
  56. $this->fechaCreacion = new \DateTime();
  57. $this->fechaActualizacion = new \DateTime();
  58. }
  59. public function getId(): ?int
  60. {
  61. return $this->id;
  62. }
  63. public function setId($id)
  64. {
  65. $this->id = $id;
  66. return $this;
  67. }
  68. public function getDiaSemana(): ?int
  69. {
  70. return $this->diaSemana;
  71. }
  72. public function setDiaSemana(?int $diaSemana): static
  73. {
  74. $this->diaSemana = $diaSemana;
  75. return $this;
  76. }
  77. public function getHoraInicio(): ?\DateTime
  78. {
  79. return $this->horaInicio;
  80. }
  81. public function setHoraInicio(?\DateTime $horaInicio): static
  82. {
  83. $this->horaInicio = $horaInicio;
  84. return $this;
  85. }
  86. public function getHoraFin(): ?\DateTime
  87. {
  88. return $this->horaFin;
  89. }
  90. public function setHoraFin(?\DateTime $horaFin): static
  91. {
  92. $this->horaFin = $horaFin;
  93. return $this;
  94. }
  95. public function getRecurso(): ?Recurso
  96. {
  97. return $this->recurso;
  98. }
  99. public function setRecurso(?Recurso $recurso): static
  100. {
  101. $this->recurso = $recurso;
  102. return $this;
  103. }
  104. public function getFechaCreacion(): ?\DateTime
  105. {
  106. return $this->fechaCreacion;
  107. }
  108. public function setFechaCreacion(?\DateTime $fechaCreacion): static
  109. {
  110. $this->fechaCreacion = $fechaCreacion;
  111. return $this;
  112. }
  113. public function getFechaActualizacion(): ?\DateTime
  114. {
  115. return $this->fechaActualizacion;
  116. }
  117. public function setFechaActualizacion(?\DateTime $fechaActualizacion): static
  118. {
  119. $this->fechaActualizacion = $fechaActualizacion;
  120. return $this;
  121. }
  122. public function __toString(): string
  123. {
  124. $dias = ['', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo'];
  125. $diaTexto = isset($dias[$this->diaSemana]) ? $dias[$this->diaSemana] : "Día {$this->diaSemana}";
  126. $horaInicioTexto = $this->horaInicio ? $this->horaInicio->format('H:i') : '--:--';
  127. $horaFinTexto = $this->horaFin ? $this->horaFin->format('H:i') : '--:--';
  128. return "{$diaTexto} de {$horaInicioTexto} a {$horaFinTexto}";
  129. }
  130. }