<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Sonata\UserBundle\Entity\BaseUser;
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User extends BaseUser
{
const USER_ZSOLT = 1;
/**
* @var int
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @var string
* @ORM\Column(type="string", length=100, unique=true, nullable=true)
*/
private ?string $name;
/**
* @ORM\OneToMany(targetEntity=Task::class, mappedBy="assignedUser")
*/
private $assignedTasks;
/**
* @ORM\OneToMany(targetEntity=TaskLog::class, mappedBy="user", orphanRemoval=true)
*/
private $taskLogs;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $phone;
/**
* @ORM\OneToMany(targetEntity=CashOut::class, mappedBy="user")
*/
private $cashOuts;
/**
* @ORM\OneToMany(targetEntity=AnualLeave::class, mappedBy="userOnHoliday")
*/
private $userAnualLeavs;
public function __construct()
{
$this->assignedTasks = new ArrayCollection();
$this->taskLogs = new ArrayCollection();
$this->cashOuts = new ArrayCollection();
$this->userAnualLeavs = new ArrayCollection();
}
public function getName(): ?string
{
return $this->name;
}
public function setName(?string $name): void
{
$this->name = $name;
}
/**
* @return Collection<int, Task>
*/
public function getAssignedTasks(): Collection
{
return $this->assignedTasks;
}
public function addAssignedTask(Task $assignedTask): self
{
if (!$this->assignedTasks->contains($assignedTask)) {
$this->assignedTasks[] = $assignedTask;
$assignedTask->setAssignedUser($this);
}
return $this;
}
public function removeAssignedTask(Task $assignedTask): self
{
if ($this->assignedTasks->removeElement($assignedTask)) {
// set the owning side to null (unless already changed)
if ($assignedTask->getAssignedUser() === $this) {
$assignedTask->setAssignedUser(null);
}
}
return $this;
}
/**
* @return Collection<int, TaskLog>
*/
public function getTaskLogs(): Collection
{
return $this->taskLogs;
}
public function addTaskLog(TaskLog $taskLog): self
{
if (!$this->taskLogs->contains($taskLog)) {
$this->taskLogs[] = $taskLog;
$taskLog->setUser($this);
}
return $this;
}
public function removeTaskLog(TaskLog $taskLog): self
{
if ($this->taskLogs->removeElement($taskLog)) {
// set the owning side to null (unless already changed)
if ($taskLog->getUser() === $this) {
$taskLog->setUser(null);
}
}
return $this;
}
public function getPhone(): ?string
{
return $this->phone;
}
public function setPhone(?string $phone): self
{
$this->phone = $phone;
return $this;
}
/**
* @return Collection<int, CashOut>
*/
public function getCashOuts(): Collection
{
return $this->cashOuts;
}
public function addCashOut(CashOut $cashOut): self
{
if (!$this->cashOuts->contains($cashOut)) {
$this->cashOuts[] = $cashOut;
$cashOut->setUser($this);
}
return $this;
}
public function removeCashOut(CashOut $cashOut): self
{
if ($this->cashOuts->removeElement($cashOut)) {
// set the owning side to null (unless already changed)
if ($cashOut->getUser() === $this) {
$cashOut->setUser(null);
}
}
return $this;
}
public function getUserAnualLeavs(): ArrayCollection
{
return $this->userAnualLeavs;
}
public function setUserAnualLeavs(ArrayCollection $userAnualLeavs): void
{
$this->userAnualLeavs = $userAnualLeavs;
}
/**
* @return Collection<int, AnualLeave>
*/
public function getUserAnualLeave(): Collection
{
return $this->cashOuts;
}
public function addAnualLeave(AnualLeave $anualLeave): self
{
if (!$this->cashOuts->contains($anualLeave)) {
$this->cashOuts[] = $anualLeave;
$anualLeave->setUser($this);
}
return $this;
}
public function removeAnualLeave(AnualLeave $anualLeave): self
{
if ($this->cashOuts->removeElement($anualLeave)) {
// set the owning side to null (unless already changed)
if ($anualLeave->getUser() === $this) {
$anualLeave->setUser(null);
}
}
return $this;
}
}