src/Entity/Formador.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Enum\GeneroEnum;
  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. /**
  9. * @ORM\Entity
  10. * @ORM\Table(name="formador")
  11. */
  12. class Formador extends PropietarioContenido
  13. {
  14. /**
  15. * @ORM\Column(type="string", nullable=true)
  16. */
  17. private $formacionRecibida;
  18. /**
  19. * @ORM\Column(type="boolean", nullable=true)
  20. */
  21. private $publico;
  22. /**
  23. * @ORM\Column(type="string", nullable=true, enumType="App\Enum\GeneroEnum")
  24. */
  25. private $genero;
  26. /**
  27. * @ORM\Column(type="string", nullable=true, name="pais_origen")
  28. */
  29. private $paisOrigen;
  30. /**
  31. * @ORM\Column(type="datetime", nullable=true, name="fecha_nacimiento")
  32. */
  33. private $fechaNacimiento;
  34. /**
  35. * @ORM\Column(type="string", nullable=true)
  36. */
  37. private $estudios;
  38. /**
  39. * @ORM\Column(type="string", nullable=true, name="categoria_profesional")
  40. */
  41. private $categoriaProfesional;
  42. /**
  43. * @ORM\Column(type="json", nullable=true)
  44. */
  45. private $datosAcademicos;
  46. /**
  47. * @ORM\Column(type="json", nullable=true)
  48. */
  49. private $datosProfesionales;
  50. /**
  51. * @ORM\Column(type="json", nullable=true)
  52. */
  53. private $datosFormativos;
  54. /**
  55. * @ORM\Column(type="json", nullable=true)
  56. */
  57. private $notificaciones;
  58. /**
  59. * @ORM\Column(type="json", nullable=true)
  60. */
  61. private $autorizaciones;
  62. /**
  63. * @ORM\Column(type="boolean", nullable=true, name="info_datos_formativos_public", options={"default":false})
  64. */
  65. private $infoDatosFormativosPublic;
  66. /**
  67. * @ORM\Column(type="boolean", nullable=true, name="info_telefono_public", options={"default":false})
  68. */
  69. private $infoTelefonoPublic;
  70. /**
  71. * @ORM\Column(type="boolean", nullable=true, name="info_email_public", options={"default":false})
  72. */
  73. private $infoEmailPublic;
  74. /**
  75. * @ORM\Column(type="boolean", nullable=true, name="info_nss_public", options={"default":false})
  76. */
  77. private $infoNssPublic;
  78. /**
  79. * @ORM\OneToMany(targetEntity=\App\Entity\Imparte::class, mappedBy="formador")
  80. */
  81. private $impartes;
  82. /**
  83. * @ORM\ManyToMany(targetEntity=\App\Entity\EntidadColaboradora::class, mappedBy="profesionals")
  84. */
  85. private $entidadColaboradoras;
  86. /**
  87. * @ORM\ManyToMany(targetEntity=\App\Entity\UsuarioHermes::class, mappedBy="formadoresFavorito")
  88. */
  89. private $usuarioHermesFavorito;
  90. public function __construct()
  91. {
  92. $this->impartes = new ArrayCollection();
  93. $this->entidadColaboradoras = new ArrayCollection();
  94. $this->usuarioHermesFavorito = new ArrayCollection();
  95. }
  96. public function getFormacionRecibida(): ?string
  97. {
  98. return $this->formacionRecibida;
  99. }
  100. public function setFormacionRecibida(?string $formacionRecibida): static
  101. {
  102. $this->formacionRecibida = $formacionRecibida;
  103. return $this;
  104. }
  105. public function isPublico(): ?bool
  106. {
  107. return $this->publico;
  108. }
  109. public function setPublico(?bool $publico): static
  110. {
  111. $this->publico = $publico;
  112. return $this;
  113. }
  114. /**
  115. * @return Collection<int, Imparte>
  116. */
  117. public function getImpartes(): Collection
  118. {
  119. return $this->impartes;
  120. }
  121. public function addImparte(Imparte $imparte): static
  122. {
  123. if (!$this->impartes->contains($imparte)) {
  124. $this->impartes->add($imparte);
  125. $imparte->setFormador($this);
  126. }
  127. return $this;
  128. }
  129. public function removeImparte(Imparte $imparte): static
  130. {
  131. if ($this->impartes->removeElement($imparte)) {
  132. // set the owning side to null (unless already changed)
  133. if ($imparte->getFormador() === $this) {
  134. $imparte->setFormador(null);
  135. }
  136. }
  137. return $this;
  138. }
  139. /**
  140. * @return Collection<int, EntidadColaboradora>
  141. */
  142. public function getEntidadColaboradoras(): Collection
  143. {
  144. return $this->entidadColaboradoras;
  145. }
  146. public function addEntidadColaboradora(EntidadColaboradora $entidadColaboradora): static
  147. {
  148. if (!$this->entidadColaboradoras->contains($entidadColaboradora)) {
  149. $this->entidadColaboradoras->add($entidadColaboradora);
  150. $entidadColaboradora->addProfesional($this);
  151. }
  152. return $this;
  153. }
  154. public function removeEntidadColaboradora(EntidadColaboradora $entidadColaboradora): static
  155. {
  156. if ($this->entidadColaboradoras->removeElement($entidadColaboradora)) {
  157. $entidadColaboradora->removeProfesional($this);
  158. }
  159. return $this;
  160. }
  161. /**
  162. * @return Collection<int, UsuarioHermes>
  163. */
  164. public function getUsuarioHermesFavorito(): Collection
  165. {
  166. return $this->usuarioHermesFavorito;
  167. }
  168. public function addUsuarioHermesFavorito(UsuarioHermes $usuarioHermes): static
  169. {
  170. if (!$this->usuarioHermesFavorito->contains($usuarioHermes)) {
  171. $this->usuarioHermesFavorito->add($usuarioHermes);
  172. $usuarioHermes->addFormadoresFavorito($this);
  173. }
  174. return $this;
  175. }
  176. public function removeUsuarioHermesFavorito(UsuarioHermes $usuarioHermes): static
  177. {
  178. if ($this->usuarioHermesFavorito->removeElement($usuarioHermes)) {
  179. $usuarioHermes->removeFormadoresFavorito($this);
  180. }
  181. return $this;
  182. }
  183. public function getGenero(): ?GeneroEnum
  184. {
  185. return $this->genero; //? $this->genero->label() : null;
  186. }
  187. public function setGenero(?GeneroEnum $genero): static
  188. {
  189. $this->genero = $genero; //GeneroEnum::tryFrom($genero);
  190. return $this;
  191. }
  192. public function getPaisOrigen(): ?string
  193. {
  194. return $this->paisOrigen;
  195. }
  196. public function setPaisOrigen(?string $paisOrigen): static
  197. {
  198. $this->paisOrigen = $paisOrigen;
  199. return $this;
  200. }
  201. public function getFechaNacimiento(): ?\DateTimeInterface
  202. {
  203. return $this->fechaNacimiento;
  204. }
  205. public function setFechaNacimiento(?\DateTimeInterface $fechaNacimiento): static
  206. {
  207. $this->fechaNacimiento = $fechaNacimiento;
  208. return $this;
  209. }
  210. public function getCategoriaProfesional(): ?string
  211. {
  212. return $this->categoriaProfesional;
  213. }
  214. public function setCategoriaProfesional(?string $categoriaProfesional): static
  215. {
  216. $this->categoriaProfesional = $categoriaProfesional;
  217. return $this;
  218. }
  219. public function getDatosAcademicos(): ?array
  220. {
  221. return $this->datosAcademicos;
  222. }
  223. public function setDatosAcademicos(?array $datosAcademicos): static
  224. {
  225. $this->datosAcademicos = $datosAcademicos;
  226. return $this;
  227. }
  228. public function getDatosProfesionales(): ?array
  229. {
  230. return $this->datosProfesionales;
  231. }
  232. public function setDatosProfesionales(?array $datosProfesionales): static
  233. {
  234. $this->datosProfesionales = $datosProfesionales;
  235. return $this;
  236. }
  237. public function getDatosFormativos(): ?array
  238. {
  239. return $this->datosFormativos;
  240. }
  241. public function setDatosFormativos(?array $datosFormativos): static
  242. {
  243. $this->datosFormativos = $datosFormativos;
  244. return $this;
  245. }
  246. public function isInfoDatosFormativosPublic(): ?bool
  247. {
  248. return $this->infoDatosFormativosPublic;
  249. }
  250. public function setInfoDatosFormativosPublic(?bool $infoDatosFormativosPublic): static
  251. {
  252. $this->infoDatosFormativosPublic = $infoDatosFormativosPublic;
  253. return $this;
  254. }
  255. public function isInfoTelefonoPublic(): ?bool
  256. {
  257. return $this->infoTelefonoPublic;
  258. }
  259. public function setInfoTelefonoPublic(?bool $infoTelefonoPublic): static
  260. {
  261. $this->infoTelefonoPublic = $infoTelefonoPublic;
  262. return $this;
  263. }
  264. public function isInfoEmailPublic(): ?bool
  265. {
  266. return $this->infoEmailPublic;
  267. }
  268. public function setInfoEmailPublic(?bool $infoEmailPublic): static
  269. {
  270. $this->infoEmailPublic = $infoEmailPublic;
  271. return $this;
  272. }
  273. public function isInfoNssPublic(): ?bool
  274. {
  275. return $this->infoNssPublic;
  276. }
  277. public function setInfoNssPublic(?bool $infoNssPublic): static
  278. {
  279. $this->infoNssPublic = $infoNssPublic;
  280. return $this;
  281. }
  282. public function getEstudios(): ?string
  283. {
  284. return $this->estudios;
  285. }
  286. public function setEstudios(?string $estudios): static
  287. {
  288. $this->estudios = $estudios;
  289. return $this;
  290. }
  291. public function getNotificaciones(): ?array
  292. {
  293. return $this->notificaciones;
  294. }
  295. public function setNotificaciones(?array $notificaciones): static
  296. {
  297. $this->notificaciones = $notificaciones;
  298. return $this;
  299. }
  300. public function getAutorizaciones(): ?array
  301. {
  302. return $this->autorizaciones;
  303. }
  304. public function setAutorizaciones(?array $autorizaciones): static
  305. {
  306. $this->autorizaciones = $autorizaciones;
  307. return $this;
  308. }
  309. public function getGrupos(): Collection
  310. {
  311. return new ArrayCollection([]);
  312. }
  313. }