<?phpnamespace App\Entity;use App\Repository\GHGrupoTrabajoRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: GHGrupoTrabajoRepository::class)]class GHGrupoTrabajo{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 255, nullable: true)] private ?string $nombre = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $createAt = null; #[ORM\Column(length: 50)] private ?string $createUser = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $updateAt = null; #[ORM\Column(length: 50)] private ?string $updateUser = null; #[ORM\ManyToOne(inversedBy: 'grupoTrabajoJefe')] private ?TerPersona $director = null; #[ORM\ManyToOne(inversedBy: 'grupoTrabajoCoordinador')] private ?TerPersona $coordinador = null; #[ORM\ManyToOne(inversedBy: 'grupoTrabajo')] private ?ParProceso $proceso = null; #[ORM\ManyToOne(inversedBy: 'grupoTrabajo')] private ?ParSubproceso $subProceso = null; #[ORM\ManyToMany(targetEntity: TerPersona::class, inversedBy: 'grupoTrabajoColaboradores')] private Collection $colaboradores; #[ORM\OneToMany(mappedBy: 'grupoTrabajo', targetEntity: GHGestionTurno::class, cascade: ['persist'], orphanRemoval: true)] private Collection $gestionTurno; #[ORM\ManyToOne(inversedBy: 'gHGrupoTrabajos')] private ?TerSedeEmpresa $sucursal = null; public function __construct() { $this->colaboradores = new ArrayCollection(); $this->gestionTurno = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getNombre(): ?string { return $this->nombre; } public function setNombre(string $nombre): static { $this->nombre = $nombre; return $this; } public function getCreateAt(): ?\DateTimeInterface { return $this->createAt; } public function setCreateAt(\DateTimeInterface $createAt): static { $this->createAt = $createAt; return $this; } public function getCreateUser(): ?string { return $this->createUser; } public function setCreateUser(string $createUser): static { $this->createUser = $createUser; return $this; } public function getUpdateAt(): ?\DateTimeInterface { return $this->updateAt; } public function setUpdateAt(\DateTimeInterface $updateAt): static { $this->updateAt = $updateAt; return $this; } public function getUpdateUser(): ?string { return $this->updateUser; } public function setUpdateUser(string $updateUser): static { $this->updateUser = $updateUser; return $this; } public function getDirector(): ?TerPersona { return $this->director; } public function setDirector(?TerPersona $director): static { $this->director = $director; return $this; } public function getCoordinador(): ?TerPersona { return $this->coordinador; } public function setCoordinador(?TerPersona $coordinador): static { $this->coordinador = $coordinador; return $this; } public function getProceso(): ?ParProceso { return $this->proceso; } public function setProceso(?ParProceso $proceso): static { $this->proceso = $proceso; return $this; } public function getSubProceso(): ?ParSubproceso { return $this->subProceso; } public function setSubProceso(?ParSubproceso $subProceso): static { $this->subProceso = $subProceso; return $this; } /** * @return Collection<int, TerPersona> */ public function getColaboradores(): Collection { return $this->colaboradores; } public function addColaborador(TerPersona $colaborador): static { if (!$this->colaboradores->contains($colaborador)) { $this->colaboradores->add($colaborador); $colaborador->addGrupoTrabajoColaborador($this); // 👈 mantener sincronía } return $this; } public function removeColaborador(TerPersona $colaborador): static { if ($this->colaboradores->removeElement($colaborador)) { $colaborador->removeGrupoTrabajoColaborador($this); // 👈 mantener sincronía } return $this; } /** * @return Collection<int, GHGestionTurno> */ public function getGestionTurno(): Collection { return $this->gestionTurno; } public function addGestionTurno(GHGestionTurno $gestionTurno): static { if (!$this->gestionTurno->contains($gestionTurno)) { $this->gestionTurno->add($gestionTurno); $gestionTurno->setGrupoTrabajo($this); } return $this; } public function removeGestionTurno(GHGestionTurno $gestionTurno): static { if ($this->gestionTurno->removeElement($gestionTurno)) { // set the owning side to null (unless already changed) if ($gestionTurno->getGrupoTrabajo() === $this) { $gestionTurno->setGrupoTrabajo(null); } } return $this; } public function getSucursal(): ?TerSedeEmpresa { return $this->sucursal; } public function setSucursal(?TerSedeEmpresa $sucursal): static { $this->sucursal = $sucursal; return $this; }}