<?php
namespace App\Entity;
use App\Enum\ComarcaEnum;
use App\Enum\RolEnum;
use App\Validator as ConforcatAssert;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity
* @ORM\Table(name="propietario_contenido")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({
* "propietario_contenido":"App\Entity\PropietarioContenido",
* "participante":"App\Entity\Participante",
* "formador":"App\Entity\Formador",
* "empresa":"App\Entity\EmpresaPropietarioContenido",
* "entidad_representativa":"App\Entity\EntidadRepresentativaPropietarioContenido",
* "consorci":"App\Entity\ConsorciPropietarioContenido",
* "entidad_colaboradora":"App\Entity\EntidadColaboradoraPropietarioContenido"
* })
*/
#[Vich\Uploadable]
abstract class PropietarioContenido extends BaseEntity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $nombre;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $apellidos;
/**
* @ORM\Column(type="string", nullable=true, name="nombre_sentido")
*/
private $nombreSentido;
/**
* @ORM\Column(type="string", nullable=true, options={"comment":"NĂºmero de la Seguridad Social"})
*/
private $nss;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $correo;
/**
* @ORM\Column(type="integer", nullable=true, name="tipo_via")
*/
private $tipoVia;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $direccion;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $numero;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $escalera;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $planta;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $puerta;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $piso;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $cp;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $poblacion;
/**
* @ORM\Column(type="string", nullable=true, enumType="App\Enum\ComarcaEnum")
*/
private $comarca;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $provincia;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $pais;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $telefonos;
/**
* @ORM\Column(type="boolean", nullable=true, options={"default":1})
*/
protected $activo=1;
/**
* @ORM\Column(type="json", nullable=true, name="preferencias_notificaciones")
*/
protected $preferenciasNotificaciones;
/**
* @ORM\Column(type="boolean", nullable=true, name="info_public")
*/
private $infoPublic;
/**
* @ORM\Column(type="boolean", nullable=true, name="intercambio_mensajes", options={"default":1})
*/
private $intercambioMensajes = true;
/**
* @ORM\Column(type="string", nullable=true, name="id_externo")
*/
protected $idExterno;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $foto;
/**
* @var File
*/
#[Vich\UploadableField(mapping: 'propietario', fileNameProperty: 'foto')]
protected $fotoFile;
/**
* @ORM\Column(type="string", nullable=true, name="tipo_identificador")
*/
private $tipoIdentificador;
/**
* @ConforcatAssert\ConstraintIdentidad()
* @ORM\Column(type="string", nullable=true, options={"comment":"siendo el dni, cif, nif, nie, etc ... "})
*/
private $identificador;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $razonSocial;
/**
* @ORM\Column(type="datetime", nullable=true, name="deleted_at")
*/
protected $deletedAt;
/**
* @ORM\Column(type="datetime", nullable=false, name="updated_at", options={"default":"2024-01-01 00:00:00"})
* @Gedmo\Timestampable(on="update")
*/
protected $updatedAt;
/**
* @ORM\Column(type="datetime", nullable=false, name="created_at", options={"default":"2024-01-01 00:00:00"})
* @Gedmo\Timestampable(on="create")
*/
protected $createdAt;
/**
* @deprecated Utilizar la propiedad identificador
* @ORM\Column(
* type="string",
* nullable=true,
* options={"default":"Deprecated utilizar identificador","comment":"Deprecated utilizar identificador"}
* )
*/
protected $nif;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $token;
/**
* @ORM\Column(type="boolean", nullable=true, name="alert_fill_profile", options={"default":1})
*/
private $alertFillProfile;
/**
* @ORM\OneToMany(
* targetEntity=\App\Entity\PropietarioContenidoHasUsuarioHermes::class,
* mappedBy="propietarioContenido"
* )
*/
private $propietarioContenidoHasUsuarioHermes;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Evento::class, mappedBy="propietarioContenidoEmisor")
*/
private $eventos;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Formulario::class, mappedBy="propietarioContenidoEmisor")
*/
private $formulariosEmisor;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\FormularioRespuestas::class, mappedBy="propietarioContenido")
*/
private $formularioRespuestas;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\FormularioRespuestas::class, mappedBy="aprobador1")
*/
private $formularioRespuestasAprobador1;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\FormularioRespuestas::class, mappedBy="aprobador2")
*/
private $formularioRespuestasAprobador2;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\FormularioRespuestas::class, mappedBy="aprobador3")
*/
private $formularioRespuestasAprobador3;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Tema::class, mappedBy="propietarioContenido")
*/
private $temas;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\MensajeForo::class, mappedBy="propietarioContenido")
*/
private $mensajeForos;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Comunicacion::class, mappedBy="propietarioContenidoEmisor")
*/
private $comunicacions;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Aviso::class, mappedBy="propietarioContenido")
*/
private $avisos;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\Reserva::class, mappedBy="propietarioContenidoAutoriza")
*/
private $reservasAutoriza;
/**
* @ORM\OneToMany(targetEntity=\App\Entity\BuenaPractica::class, mappedBy="creador")
*/
private $buenasPracticas;
/**
* @ORM\ManyToMany(targetEntity=\App\Entity\Comunicacion::class, mappedBy="propietarioContenidosDestinatarios")
*/
private $comunicacionsDestinatarios;
/**
* @ORM\ManyToMany(targetEntity=\App\Entity\Reserva::class, mappedBy="propietarioContenidos")
*/
private $reservas;
public function __construct()
{
$this->propietarioContenidoHasUsuarioHermes = new ArrayCollection();
$this->formulariosEmisor = new ArrayCollection();
$this->formularioRespuestas = new ArrayCollection();
$this->formularioRespuestasAprobador1 = new ArrayCollection();
$this->formularioRespuestasAprobador2 = new ArrayCollection();
$this->formularioRespuestasAprobador3 = new ArrayCollection();
$this->temas = new ArrayCollection();
$this->mensajeForos = new ArrayCollection();
$this->comunicacions = new ArrayCollection();
$this->avisos = new ArrayCollection();
$this->reservasAutoriza = new ArrayCollection();
$this->comunicacionsDestinatarios = new ArrayCollection();
$this->reservas = new ArrayCollection();
$this->buenasPracticas = new ArrayCollection();
$this->eventos = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function getFoto(): ?string
{
return $this->foto;
}
public function setFoto(?string $foto): static
{
$this->foto = $foto;
return $this;
}
public function getFotoFile(): ?File
{
return $this->fotoFile;
}
public function setFotoFile(?File $fotoFile): self
{
$this->fotoFile = $fotoFile;
if ($fotoFile) {
$this->setUpdatedAt(new DateTime('now'));
}
return $this;
}
public function getNombre(): ?string
{
return $this->nombre;
}
public function setNombre(?string $nombre): static
{
$this->nombre = $nombre;
return $this;
}
public function getApellidos(): ?string
{
return $this->apellidos;
}
public function setApellidos(?string $apellidos): static
{
$this->apellidos = $apellidos;
return $this;
}
public function getCorreo(): ?string
{
return $this->correo;
}
public function setCorreo(?string $correo): static
{
$this->correo = $correo;
return $this;
}
public function getDireccion(): ?string
{
return $this->direccion;
}
public function setDireccion(?string $direccion): static
{
$this->direccion = $direccion;
return $this;
}
public function getTelefonos(): ?string
{
return $this->telefonos;
}
public function setTelefonos(?string $telefonos): static
{
$this->telefonos = $telefonos;
return $this;
}
public function isActivo(): ?bool
{
return $this->activo;
}
public function setActivo(?bool $activo): static
{
$this->activo = $activo;
return $this;
}
public function getPreferenciasNotificaciones(): ?array
{
return $this->preferenciasNotificaciones;
}
public function setPreferenciasNotificaciones(?array $preferenciasNotificaciones): static
{
$this->preferenciasNotificaciones = $preferenciasNotificaciones;
return $this;
}
public function getIdExterno(): ?string
{
if (!$this->idExterno) {
return RolEnum::getRolFromClass(get_class($this))."::".$this->getNif();
}
return $this->idExterno;
}
public function setIdExterno(?string $idExterno): static
{
$this->idExterno = $idExterno;
return $this;
}
public function getDeletedAt(): ?\DateTimeInterface
{
return $this->deletedAt;
}
public function setDeletedAt(?\DateTimeInterface $deletedAt): static
{
$this->deletedAt = $deletedAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(\DateTimeInterface $updatedAt): static
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): static
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @deprecated Utilizar el método getIdenficador()
* @return string|null
*/
public function getNif(): ?string
{
if (!$this->nif) return $this->getIdentificador();
return $this->nif;
}
/**
* @deprecated Utilizar el método setIdentificador()
* @param string|null $nif
* @return $this
*/
public function setNif(?string $nif): static
{
$this->nif = $nif;
return $this;
}
public function getToken(): ?string
{
return $this->token;
}
public function setToken(?string $token): static
{
$this->token = $token;
return $this;
}
/**
* @return Collection<int, PropietarioContenidoHasUsuarioHermes>
*/
public function getPropietarioContenidoHasUsuarioHermes(): Collection
{
return $this->propietarioContenidoHasUsuarioHermes;
}
public function addPropietarioContenidoHasUsuarioHerme(PropietarioContenidoHasUsuarioHermes $propietarioContenidoHasUsuarioHerme): static
{
if (!$this->propietarioContenidoHasUsuarioHermes->contains($propietarioContenidoHasUsuarioHerme)) {
$this->propietarioContenidoHasUsuarioHermes->add($propietarioContenidoHasUsuarioHerme);
$propietarioContenidoHasUsuarioHerme->setPropietarioContenido($this);
}
return $this;
}
public function removePropietarioContenidoHasUsuarioHerme(PropietarioContenidoHasUsuarioHermes $propietarioContenidoHasUsuarioHerme): static
{
if ($this->propietarioContenidoHasUsuarioHermes->removeElement($propietarioContenidoHasUsuarioHerme)) {
// set the owning side to null (unless already changed)
if ($propietarioContenidoHasUsuarioHerme->getPropietarioContenido() === $this) {
$propietarioContenidoHasUsuarioHerme->setPropietarioContenido(null);
}
}
return $this;
}
/**
* @return Collection<int, Formulario>
*/
public function getFormulariosEmisor(): Collection
{
return $this->formulariosEmisor;
}
public function addFormulariosEmisor(Formulario $formulariosEmisor): static
{
if (!$this->formulariosEmisor->contains($formulariosEmisor)) {
$this->formulariosEmisor->add($formulariosEmisor);
$formulariosEmisor->setPropietarioContenidoEmisor($this);
}
return $this;
}
public function removeFormulariosEmisor(Formulario $formulariosEmisor): static
{
if ($this->formulariosEmisor->removeElement($formulariosEmisor)) {
// set the owning side to null (unless already changed)
if ($formulariosEmisor->getPropietarioContenidoEmisor() === $this) {
$formulariosEmisor->setPropietarioContenidoEmisor(null);
}
}
return $this;
}
/**
* @return Collection<int, FormularioRespuestas>
*/
public function getFormularioRespuestas(): Collection
{
return $this->formularioRespuestas;
}
public function addFormularioRespuesta(FormularioRespuestas $formularioRespuesta): static
{
if (!$this->formularioRespuestas->contains($formularioRespuesta)) {
$this->formularioRespuestas->add($formularioRespuesta);
$formularioRespuesta->setPropietarioContenido($this);
}
return $this;
}
public function removeFormularioRespuesta(FormularioRespuestas $formularioRespuesta): static
{
if ($this->formularioRespuestas->removeElement($formularioRespuesta)) {
// set the owning side to null (unless already changed)
if ($formularioRespuesta->getPropietarioContenido() === $this) {
$formularioRespuesta->setPropietarioContenido(null);
}
}
return $this;
}
/**
* @return Collection<int, FormularioRespuestas>
*/
public function getFormularioRespuestasAprobador1(): Collection
{
return $this->formularioRespuestasAprobador1;
}
public function addFormularioRespuestasAprobador1(FormularioRespuestas $formularioRespuestasAprobador1): static
{
if (!$this->formularioRespuestasAprobador1->contains($formularioRespuestasAprobador1)) {
$this->formularioRespuestasAprobador1->add($formularioRespuestasAprobador1);
$formularioRespuestasAprobador1->setAprobador1($this);
}
return $this;
}
public function removeFormularioRespuestasAprobador1(FormularioRespuestas $formularioRespuestasAprobador1): static
{
if ($this->formularioRespuestasAprobador1->removeElement($formularioRespuestasAprobador1)) {
// set the owning side to null (unless already changed)
if ($formularioRespuestasAprobador1->getAprobador1() === $this) {
$formularioRespuestasAprobador1->setAprobador1(null);
}
}
return $this;
}
/**
* @return Collection<int, FormularioRespuestas>
*/
public function getFormularioRespuestasAprobador2(): Collection
{
return $this->formularioRespuestasAprobador2;
}
public function addFormularioRespuestasAprobador2(FormularioRespuestas $formularioRespuestasAprobador2): static
{
if (!$this->formularioRespuestasAprobador2->contains($formularioRespuestasAprobador2)) {
$this->formularioRespuestasAprobador2->add($formularioRespuestasAprobador2);
$formularioRespuestasAprobador2->setAprobador2($this);
}
return $this;
}
public function removeFormularioRespuestasAprobador2(FormularioRespuestas $formularioRespuestasAprobador2): static
{
if ($this->formularioRespuestasAprobador2->removeElement($formularioRespuestasAprobador2)) {
// set the owning side to null (unless already changed)
if ($formularioRespuestasAprobador2->getAprobador2() === $this) {
$formularioRespuestasAprobador2->setAprobador2(null);
}
}
return $this;
}
/**
* @return Collection<int, FormularioRespuestas>
*/
public function getFormularioRespuestasAprobador3(): Collection
{
return $this->formularioRespuestasAprobador3;
}
public function addFormularioRespuestasAprobador3(FormularioRespuestas $formularioRespuestasAprobador3): static
{
if (!$this->formularioRespuestasAprobador3->contains($formularioRespuestasAprobador3)) {
$this->formularioRespuestasAprobador3->add($formularioRespuestasAprobador3);
$formularioRespuestasAprobador3->setAprobador3($this);
}
return $this;
}
public function removeFormularioRespuestasAprobador3(FormularioRespuestas $formularioRespuestasAprobador3): static
{
if ($this->formularioRespuestasAprobador3->removeElement($formularioRespuestasAprobador3)) {
// set the owning side to null (unless already changed)
if ($formularioRespuestasAprobador3->getAprobador3() === $this) {
$formularioRespuestasAprobador3->setAprobador3(null);
}
}
return $this;
}
public function getNss(): ?string
{
return $this->nss;
}
public function setNss(?string $nss): static
{
$this->nss = $nss;
return $this;
}
public function getNumero(): ?string
{
return $this->numero;
}
public function setNumero(?string $numero): static
{
$this->numero = $numero;
return $this;
}
public function getEscalera(): ?string
{
return $this->escalera;
}
public function setEscalera(?string $escalera): static
{
$this->escalera = $escalera;
return $this;
}
public function getPlanta(): ?string
{
return $this->planta;
}
public function setPlanta(?string $planta): static
{
$this->planta = $planta;
return $this;
}
public function getPuerta(): ?string
{
return $this->puerta;
}
public function setPuerta(?string $puerta): static
{
$this->puerta = $puerta;
return $this;
}
public function getPiso(): ?string
{
return $this->piso;
}
public function setPiso(?string $piso): static
{
$this->piso = $piso;
return $this;
}
public function getCp(): ?string
{
return $this->cp;
}
public function setCp(?string $cp): static
{
$this->cp = $cp;
return $this;
}
public function getPoblacion(): ?string
{
return $this->poblacion;
}
public function setPoblacion(?string $poblacion): static
{
$this->poblacion = $poblacion;
return $this;
}
public function getProvincia(): ?string
{
return $this->provincia;
}
public function setProvincia(?string $provincia): static
{
$this->provincia = $provincia;
return $this;
}
public function getPais(): ?string
{
return $this->pais;
}
public function setPais(?string $pais): static
{
$this->pais = $pais;
return $this;
}
public function isInfoPublic(): ?bool
{
return $this->infoPublic;
}
public function setInfoPublic(?bool $infoPublic): static
{
$this->infoPublic = $infoPublic;
return $this;
}
public function getIntercambioMensajes(): ?bool
{
return $this->intercambioMensajes;
}
public function setIntercambioMensajes(?bool $intercambioMensajes): static
{
$this->intercambioMensajes = $intercambioMensajes;
return $this;
}
public function getTipoIdentificador(): ?string
{
return $this->tipoIdentificador;
}
public function setTipoIdentificador(?string $tipoIdentificador): static
{
$this->tipoIdentificador = $tipoIdentificador;
return $this;
}
public function getIdentificador(): ?string
{
return $this->identificador;
}
public function setIdentificador(?string $identificador): static
{
$this->identificador = $identificador;
return $this;
}
public function getRazonSocial(): ?string
{
return $this->razonSocial;
}
public function setRazonSocial(?string $razonSocial): static
{
$this->razonSocial = $razonSocial;
return $this;
}
/**
* @return Collection<int, Tema>
*/
public function getTemas(): Collection
{
return $this->temas;
}
public function addTema(Tema $tema): static
{
if (!$this->temas->contains($tema)) {
$this->temas->add($tema);
$tema->setPropietarioContenido($this);
}
return $this;
}
public function removeTema(Tema $tema): static
{
if ($this->temas->removeElement($tema)) {
// set the owning side to null (unless already changed)
if ($tema->getPropietarioContenido() === $this) {
$tema->setPropietarioContenido(null);
}
}
return $this;
}
/**
* @return Collection<int, MensajeForo>
*/
public function getMensajeForos(): Collection
{
return $this->mensajeForos;
}
public function addMensajeForo(MensajeForo $mensajeForo): static
{
if (!$this->mensajeForos->contains($mensajeForo)) {
$this->mensajeForos->add($mensajeForo);
$mensajeForo->setPropietarioContenido($this);
}
return $this;
}
public function removeMensajeForo(MensajeForo $mensajeForo): static
{
if ($this->mensajeForos->removeElement($mensajeForo)) {
// set the owning side to null (unless already changed)
if ($mensajeForo->getPropietarioContenido() === $this) {
$mensajeForo->setPropietarioContenido(null);
}
}
return $this;
}
/**
* @return Collection<int, Comunicacion>
*/
public function getComunicacions(): Collection
{
return $this->comunicacions;
}
public function addComunicacion(Comunicacion $comunicacion): static
{
if (!$this->comunicacions->contains($comunicacion)) {
$this->comunicacions->add($comunicacion);
$comunicacion->setPropietarioContenidoEmisor($this);
}
return $this;
}
public function removeComunicacion(Comunicacion $comunicacion): static
{
if ($this->comunicacions->removeElement($comunicacion)) {
// set the owning side to null (unless already changed)
if ($comunicacion->getPropietarioContenidoEmisor() === $this) {
$comunicacion->setPropietarioContenidoEmisor(null);
}
}
return $this;
}
/**
* @return Collection<int, Aviso>
*/
public function getAvisos(): Collection
{
return $this->avisos;
}
public function addAviso(Aviso $aviso): static
{
if (!$this->avisos->contains($aviso)) {
$this->avisos->add($aviso);
$aviso->setPropietarioContenido($this);
}
return $this;
}
public function removeAviso(Aviso $aviso): static
{
if ($this->avisos->removeElement($aviso)) {
// set the owning side to null (unless already changed)
if ($aviso->getPropietarioContenido() === $this) {
$aviso->setPropietarioContenido(null);
}
}
return $this;
}
/**
* @return Collection<int, Reserva>
*/
public function getReservasAutoriza(): Collection
{
return $this->reservasAutoriza;
}
public function addReservasAutoriza(Reserva $reservasAutoriza): static
{
if (!$this->reservasAutoriza->contains($reservasAutoriza)) {
$this->reservasAutoriza->add($reservasAutoriza);
$reservasAutoriza->setPropietarioContenidoAutoriza($this);
}
return $this;
}
public function removeReservasAutoriza(Reserva $reservasAutoriza): static
{
if ($this->reservasAutoriza->removeElement($reservasAutoriza)) {
// set the owning side to null (unless already changed)
if ($reservasAutoriza->getPropietarioContenidoAutoriza() === $this) {
$reservasAutoriza->setPropietarioContenidoAutoriza(null);
}
}
return $this;
}
/**
* @return Collection<int, Comunicacion>
*/
public function getComunicacionsDestinatarios(): Collection
{
return $this->comunicacionsDestinatarios;
}
public function addComunicacionsDestinatario(Comunicacion $comunicacionsDestinatario): static
{
if (!$this->comunicacionsDestinatarios->contains($comunicacionsDestinatario)) {
$this->comunicacionsDestinatarios->add($comunicacionsDestinatario);
$comunicacionsDestinatario->addPropietarioContenidosDestinatario($this);
}
return $this;
}
public function removeComunicacionsDestinatario(Comunicacion $comunicacionsDestinatario): static
{
if ($this->comunicacionsDestinatarios->removeElement($comunicacionsDestinatario)) {
$comunicacionsDestinatario->removePropietarioContenidosDestinatario($this);
}
return $this;
}
/**
* @return Collection<int, Reserva>
*/
public function getReservas(): Collection
{
return $this->reservas;
}
public function addReserva(Reserva $reserva): static
{
if (!$this->reservas->contains($reserva)) {
$this->reservas->add($reserva);
$reserva->addPropietarioContenido($this);
}
return $this;
}
public function removeReserva(Reserva $reserva): static
{
if ($this->reservas->removeElement($reserva)) {
$reserva->removePropietarioContenido($this);
}
return $this;
}
public function __toString(): string
{
if ($this instanceof Participante or $this instanceof Formador) {
return trim($this->getNombre()." ".$this->getApellidos());
}
return $this->nombre;
}
public function getIniciales(): string
{
$nombre = trim($this->nombre);
$apellidos = trim($this->apellidos);
// Extraer la primera letra del primer nombre
$inicialNombre = mb_substr($nombre, 0, 1, 'UTF-8');
// Extraer la primera letra del primer apellido si existe
$inicialApellido = '';
if (!empty($apellidos)) {
$apellidosArray = explode(' ', $apellidos);
$inicialApellido = mb_substr($apellidosArray[0], 0, 1, 'UTF-8');
}
return strtoupper($inicialNombre . $inicialApellido);
}
public function getUsuarioHermes(): ?UsuarioHermes
{
if ($this->getPropietarioContenidoHasUsuarioHermes()->count() == 0) {
return null;
}
return $this->getPropietarioContenidoHasUsuarioHermes()->first()->getUsuarioHermes();
}
public function getNombreSentido(): ?string
{
return $this->nombreSentido;
}
public function setNombreSentido(?string $nombreSentido): static
{
$this->nombreSentido = $nombreSentido;
return $this;
}
/**
* @return Collection<int, BuenaPractica>
*/
public function getBuenasPracticas(): Collection
{
return $this->buenasPracticas;
}
public function addBuenasPractica(BuenaPractica $buenasPractica): static
{
if (!$this->buenasPracticas->contains($buenasPractica)) {
$this->buenasPracticas->add($buenasPractica);
$buenasPractica->setCreador($this);
}
return $this;
}
public function removeBuenasPractica(BuenaPractica $buenasPractica): static
{
if ($this->buenasPracticas->removeElement($buenasPractica)) {
// set the owning side to null (unless already changed)
if ($buenasPractica->getCreador() === $this) {
$buenasPractica->setCreador(null);
}
}
return $this;
}
public function getEntidadAsociada()
{
switch (get_class($this)) {
case EntidadColaboradoraPropietarioContenido::class:
return $this->getEntidadColaboradora();
case EntidadRepresentativaPropietarioContenido::class:
return $this->getEntidadRepresentativa();
case EmpresaPropietarioContenido::class:
return $this->getEmpresa();
case ConsorciPropietarioContenido::class:
return $this->getConsorci();
default:
return null;
}
}
public function getNombreCompleto()
{
return trim($this->nombre . ' ' . $this->apellidos) ?: 'Desconocido';
}
/**
* @return Collection<int, Evento>
*/
public function getEventos(): Collection
{
return $this->eventos;
}
public function addEvento(Evento $evento): static
{
if (!$this->eventos->contains($evento)) {
$this->eventos->add($evento);
$evento->setPropietarioContenidoEmisor($this);
}
return $this;
}
public function removeEvento(Evento $evento): static
{
if ($this->eventos->removeElement($evento)) {
// set the owning side to null (unless already changed)
if ($evento->getPropietarioContenidoEmisor() === $this) {
$evento->setPropietarioContenidoEmisor(null);
}
}
return $this;
}
public function isAlertFillProfile(): ?bool
{
return $this->alertFillProfile;
}
public function setAlertFillProfile(?bool $alertFillProfile): static
{
$this->alertFillProfile = $alertFillProfile;
return $this;
}
public function getTipoVia(): ?int
{
return $this->tipoVia;
}
public function setTipoVia(?int $tipoVia): static
{
$this->tipoVia = $tipoVia;
return $this;
}
public function getComarca(): ?ComarcaEnum
{
return $this->comarca;
}
public function setComarca(?ComarcaEnum $comarca): static
{
$this->comarca = $comarca;
return $this;
}
}