src/Entity/Comunicacion.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. /**
  9. * @ORM\Entity
  10. * @ORM\Table(name="comunicacion")
  11. */
  12. class Comunicacion extends BaseEntity
  13. {
  14. /**
  15. * @ORM\Id
  16. * @ORM\Column(type="integer")
  17. * @ORM\GeneratedValue(strategy="AUTO")
  18. */
  19. private $id;
  20. /**
  21. * @ORM\Column(type="integer", nullable=true)
  22. */
  23. private $tipo;
  24. /**
  25. * @ORM\Column(type="string", nullable=true)
  26. */
  27. private $asunto;
  28. /**
  29. * @ORM\Column(type="text", nullable=true)
  30. */
  31. private $mensaje;
  32. /**
  33. * @ORM\Column(type="datetime", nullable=true, name="deleted_at")
  34. */
  35. private $deletedAt;
  36. /**
  37. * @ORM\Column(type="datetime", nullable=false, name="updated_at", options={"default":"2024-01-01 00:00:00"})
  38. * @Gedmo\Timestampable(on="update")
  39. */
  40. private $updatedAt;
  41. /**
  42. * @ORM\Column(type="datetime", nullable=false, name="created_at", options={"default":"2024-01-01 00:00:00"})
  43. * @Gedmo\Timestampable(on="create")
  44. */
  45. private $createdAt;
  46. /**
  47. * @ORM\Column(type="integer", nullable=true)
  48. */
  49. private $estado;
  50. /**
  51. * @ORM\Column(type="boolean", nullable=true)
  52. */
  53. private $borrador;
  54. /**
  55. * @ORM\Column(type="string", nullable=true)
  56. */
  57. private $emisorTipo;
  58. /**
  59. * @ORM\Column(type="boolean", nullable=true)
  60. */
  61. private $isPublico;
  62. /**
  63. * @ORM\Column(type="boolean", nullable=true)
  64. */
  65. private $isConRespuesta;
  66. /**
  67. * @ORM\ManyToOne(targetEntity=\App\Entity\PropietarioContenido::class, inversedBy="comunicacions")
  68. * @ORM\JoinColumn(name="propietario_contenido_id", referencedColumnName="id")
  69. */
  70. private $propietarioContenidoEmisor;
  71. /**
  72. * @ORM\ManyToMany(targetEntity=\App\Entity\PropietarioContenido::class, inversedBy="comunicacionsDestinatarios")
  73. * @ORM\JoinTable(
  74. * name="PropietarioContenidoHasComunicacion",
  75. * joinColumns={@ORM\JoinColumn(name="comunicacion_id", referencedColumnName="id", nullable=false)},
  76. * inverseJoinColumns={@ORM\JoinColumn(name="propietario_contenido_id2", referencedColumnName="id", nullable=false)}
  77. * )
  78. */
  79. private $propietarioContenidosDestinatarios;
  80. /**
  81. * @ORM\ManyToMany(targetEntity=\App\Entity\CategoriaComunicacion::class, inversedBy="comunicaciones")
  82. * @ORM\JoinTable(
  83. * name="comunicacion_has_categoria",
  84. * joinColumns={@ORM\JoinColumn(name="comunicacion_id", referencedColumnName="id", nullable=false)},
  85. * inverseJoinColumns={@ORM\JoinColumn(name="categoria_comunicacion_id", referencedColumnName="id", nullable=false)}
  86. * )
  87. */
  88. private $categorias;
  89. public function __construct()
  90. {
  91. $this->propietarioContenidosDestinatarios = new ArrayCollection();
  92. $this->categorias = new ArrayCollection();
  93. }
  94. public function getId(): ?int
  95. {
  96. return $this->id;
  97. }
  98. public function setId($id)
  99. {
  100. $this->id = $id;
  101. return $this;
  102. }
  103. public function getTipo(): ?int
  104. {
  105. return $this->tipo;
  106. }
  107. public function setTipo(?int $tipo): static
  108. {
  109. $this->tipo = $tipo;
  110. return $this;
  111. }
  112. public function getAsunto(): ?string
  113. {
  114. return $this->asunto;
  115. }
  116. public function setAsunto(?string $asunto): static
  117. {
  118. $this->asunto = $asunto;
  119. return $this;
  120. }
  121. public function getMensaje(): ?string
  122. {
  123. return $this->mensaje;
  124. }
  125. public function setMensaje(?string $mensaje): static
  126. {
  127. $this->mensaje = $mensaje;
  128. return $this;
  129. }
  130. public function getDeletedAt(): ?\DateTimeInterface
  131. {
  132. return $this->deletedAt;
  133. }
  134. public function setDeletedAt(?\DateTimeInterface $deletedAt): static
  135. {
  136. $this->deletedAt = $deletedAt;
  137. return $this;
  138. }
  139. public function getUpdatedAt(): ?\DateTimeInterface
  140. {
  141. return $this->updatedAt;
  142. }
  143. public function setUpdatedAt(\DateTimeInterface $updatedAt): static
  144. {
  145. $this->updatedAt = $updatedAt;
  146. return $this;
  147. }
  148. public function getCreatedAt(): ?\DateTimeInterface
  149. {
  150. return $this->createdAt;
  151. }
  152. public function setCreatedAt(\DateTimeInterface $createdAt): static
  153. {
  154. $this->createdAt = $createdAt;
  155. return $this;
  156. }
  157. public function getEstado(): ?int
  158. {
  159. return $this->estado;
  160. }
  161. public function setEstado(?int $estado): static
  162. {
  163. $this->estado = $estado;
  164. return $this;
  165. }
  166. public function getPropietarioContenidoEmisor(): ?PropietarioContenido
  167. {
  168. return $this->propietarioContenidoEmisor;
  169. }
  170. public function setPropietarioContenidoEmisor(?PropietarioContenido $propietarioContenidoEmisor): static
  171. {
  172. $this->propietarioContenidoEmisor = $propietarioContenidoEmisor;
  173. return $this;
  174. }
  175. /**
  176. * @return Collection<int, PropietarioContenido>
  177. */
  178. public function getPropietarioContenidosDestinatarios(): Collection
  179. {
  180. return $this->propietarioContenidosDestinatarios;
  181. }
  182. public function addPropietarioContenidosDestinatario(PropietarioContenido $propietarioContenidosDestinatario): static
  183. {
  184. if (!$this->propietarioContenidosDestinatarios->contains($propietarioContenidosDestinatario)) {
  185. $this->propietarioContenidosDestinatarios->add($propietarioContenidosDestinatario);
  186. }
  187. return $this;
  188. }
  189. public function removePropietarioContenidosDestinatario(PropietarioContenido $propietarioContenidosDestinatario): static
  190. {
  191. $this->propietarioContenidosDestinatarios->removeElement($propietarioContenidosDestinatario);
  192. return $this;
  193. }
  194. public function isBorrador(): ?bool
  195. {
  196. return $this->borrador;
  197. }
  198. public function setBorrador(?bool $borrador): static
  199. {
  200. $this->borrador = $borrador;
  201. return $this;
  202. }
  203. public function getEmisorTipo(): ?string
  204. {
  205. return $this->emisorTipo;
  206. }
  207. public function setEmisorTipo(?string $emisorTipo): static
  208. {
  209. $this->emisorTipo = $emisorTipo;
  210. return $this;
  211. }
  212. public function isIsPublico(): ?bool
  213. {
  214. return $this->isPublico;
  215. }
  216. public function setIsPublico(?bool $isPublico): static
  217. {
  218. $this->isPublico = $isPublico;
  219. return $this;
  220. }
  221. public function isIsConRespuesta(): ?bool
  222. {
  223. return $this->isConRespuesta;
  224. }
  225. public function setIsConRespuesta(?bool $isConRespuesta): static
  226. {
  227. $this->isConRespuesta = $isConRespuesta;
  228. return $this;
  229. }
  230. /**
  231. * @return Collection<int, CategoriaComunicacion>
  232. */
  233. public function getCategorias(): Collection
  234. {
  235. return $this->categorias;
  236. }
  237. public function addCategoria(CategoriaComunicacion $categoria): static
  238. {
  239. if (!$this->categorias->contains($categoria)) {
  240. $this->categorias->add($categoria);
  241. }
  242. return $this;
  243. }
  244. public function removeCategoria(CategoriaComunicacion $categoria): static
  245. {
  246. $this->categorias->removeElement($categoria);
  247. return $this;
  248. }
  249. /**
  250. * Devuelve las categorías como string separado por comas
  251. */
  252. public function getCategoriasNombres(): string
  253. {
  254. if ($this->categorias->isEmpty()) {
  255. return '-';
  256. }
  257. return implode(', ', $this->categorias->map(fn($c) => $c->getNombre())->toArray());
  258. }
  259. }