<?php
namespace App\Entity\Gos\Consultant;
use App\Entity\Gos\User;
use App\Repository\Gos\Consultant\ConsultantSettingsRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ConsultantSettingsRepository::class)
*/
class ConsultantSettings
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $maxAwaitingMinutes;
/**
* @ORM\Column(type="time_immutable", nullable=true)
*/
private $workStartTime;
/**
* @ORM\Column(type="time_immutable", nullable=true)
*/
private $workEndTime;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $outOfWorkTimeMessage;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $exceedAwaitingMinutesMessage;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $minutesBeforeExceedingToAlarm;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $maxInactivityMinutes;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $exceedInactivityMinutesMessage;
/**
* @ORM\Column(type="simple_array", nullable=true)
*/
private $workingWeekdays = [];
/**
* @ORM\ManyToMany(targetEntity=User::class)
* @ORM\JoinTable(name="consultants")
*/
private $consultants;
public function __construct()
{
$this->consultants = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getMaxAwaitingMinutes(): ?int
{
return $this->maxAwaitingMinutes;
}
public function setMaxAwaitingMinutes(int $maxAwaitingMinutes): self
{
$this->maxAwaitingMinutes = $maxAwaitingMinutes;
return $this;
}
public function getWorkStartTime(): ?\DateTimeImmutable
{
return $this->workStartTime;
}
public function setWorkStartTime(?\DateTimeImmutable $workStartTime): self
{
$this->workStartTime = $workStartTime;
return $this;
}
public function getWorkEndTime(): ?\DateTimeImmutable
{
return $this->workEndTime;
}
public function setWorkEndTime(?\DateTimeImmutable $workEndTime): self
{
$this->workEndTime = $workEndTime;
return $this;
}
public function getOutOfWorkTimeMessage(): ?string
{
return $this->outOfWorkTimeMessage;
}
public function setOutOfWorkTimeMessage(?string $outOfWorkTimeMessage): self
{
$this->outOfWorkTimeMessage = $outOfWorkTimeMessage;
return $this;
}
public function getExceedAwaitingMinutesMessage(): ?string
{
return $this->exceedAwaitingMinutesMessage;
}
public function setExceedAwaitingMinutesMessage(?string $exceedAwaitingMinutesMessage): self
{
$this->exceedAwaitingMinutesMessage = $exceedAwaitingMinutesMessage;
return $this;
}
public function getMinutesBeforeExceedingToAlarm(): ?int
{
return $this->minutesBeforeExceedingToAlarm;
}
public function setMinutesBeforeExceedingToAlarm(?int $minutesBeforeExceedingToAlarm): self
{
$this->minutesBeforeExceedingToAlarm = $minutesBeforeExceedingToAlarm;
return $this;
}
public function getMaxInactivityMinutes(): ?int
{
return $this->maxInactivityMinutes;
}
public function setMaxInactivityMinutes(?int $maxInactivityMinutes): self
{
$this->maxInactivityMinutes = $maxInactivityMinutes;
return $this;
}
public function getExceedInactivityMinutesMessage(): ?string
{
return $this->exceedInactivityMinutesMessage;
}
public function setExceedInactivityMinutesMessage(?string $exceedInactivityMinutesMessage): self
{
$this->exceedInactivityMinutesMessage = $exceedInactivityMinutesMessage;
return $this;
}
public function getWorkingWeekdays(): ?array
{
return $this->workingWeekdays;
}
public function setWorkingWeekdays(?array $workingWeekdays): self
{
$this->workingWeekdays = $workingWeekdays;
return $this;
}
/**
* @return Collection|User[]
*/
public function getConsultants(): Collection
{
return $this->consultants;
}
public function addConsultant(User $consultant): self
{
if (!$this->consultants->contains($consultant)) {
$this->consultants[] = $consultant;
}
return $this;
}
public function removeConsultant(User $consultant): self
{
if ($this->consultants->contains($consultant)) {
$this->consultants->removeElement($consultant);
}
return $this;
}
}