<?phpdeclare(strict_types=1);namespace App\Database\Domain\Entity\Sessions;use App\Database\Domain\Entity\AbstractEntity;use App\Database\Domain\Entity\User\User;use App\Database\Domain\Traits\CreationDateTrait;use App\Database\Domain\Traits\OrderIndexTrait;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Serializer\Annotation\Groups;use Symfony\Component\Validator\Constraints as Assert;/** * @ORM\Entity(repositoryClass="App\Database\Domain\Repository\ToastSessionRepository") */class ToastSessionSection extends AbstractEntity{ use CreationDateTrait; use OrderIndexTrait; /** * @ORM\ManyToOne(targetEntity="App\Database\Domain\Entity\User\User", inversedBy="sections") * * @ORM\JoinColumn(onDelete="CASCADE") */ private User $user; /** * @ORM\Column(type="string") * * @Assert\Length(max="255") * * @Groups({"toast_session_section"}) */ private string $name = ''; /** * @ORM\Column(type="string", nullable=true) * * @Assert\Length(max="5") * * @Groups({"toast_session_section"}) */ private ?string $emoji = null; /** * @ORM\OneToMany(targetEntity="App\Database\Domain\Entity\Sessions\ToastSession", mappedBy="section", fetch="EXTRA_LAZY") * * @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="write_rare") * * @var Collection<int, ToastSession> */ private Collection $sessions; /** * @ORM\Column(type="string", nullable=true) * * @Groups({"toast_session_section"}) */ private ?string $browserId; public function __construct(User $user) { $this->user = $user; $this->orderIndex = 0; $this->sessions = new ArrayCollection(); $this->creationDate = new \DateTimeImmutable(); } public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } public function getEmoji(): ?string { if (!$this->emoji) { return $this->emoji; } return mb_convert_encoding($this->emoji, 'UTF-8', 'UTF-8'); } public function setEmoji(?string $emoji): void { $this->emoji = $emoji; } public function getSessions(): Collection { return $this->sessions; } public function setSessions(Collection $sessions): void { $this->sessions = $sessions; } public function getUser(): User { return $this->user; } public function setUser(User $user): void { $this->user = $user; } public function getBrowserId(): ?string { return $this->browserId; } public function setBrowserId(?string $browserId): void { $this->browserId = $browserId; }}