<?php
namespace App\Entity;
use App\Repository\UserNotificationRepository;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=UserNotificationRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class UserNotification
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="userNotifications")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\Column(type="text")
*/
private $text;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $linkUrl;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $linkLabel;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $category;
/**
* @ORM\Column(type="datetime_immutable", nullable=true)
*/
private $seenAt;
/**
* @ORM\Column(type="datetime_immutable", nullable=true)
*/
private $createdAt;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $expiresAt;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $relatedType;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $relatedId;
public function getId(): ?int
{
return $this->id;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getText(): ?string
{
return $this->text;
}
public function setText(string $text): self
{
$this->text = $text;
return $this;
}
public function getLinkUrl(): ?string
{
return $this->linkUrl;
}
public function setLinkUrl(?string $linkUrl): self
{
$this->linkUrl = $linkUrl;
return $this;
}
public function getLinkLabel(): ?string
{
return $this->linkLabel;
}
public function setLinkLabel(?string $linkLabel): self
{
$this->linkLabel = $linkLabel;
return $this;
}
public function getCategory(): ?string
{
return $this->category;
}
public function setCategory(?string $category): self
{
$this->category = $category;
return $this;
}
public function getSeenAt(): ?\DateTimeImmutable
{
return $this->seenAt;
}
public function setSeenAt(?\DateTimeImmutable $seenAt): self
{
$this->seenAt = $seenAt;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeImmutable $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getExpiresAt(): ?\DateTimeInterface
{
return $this->expiresAt;
}
public function setExpiresAt(?\DateTimeInterface $expiresAt): self
{
$this->expiresAt = $expiresAt;
return $this;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
if ($this->createdAt === null) {
$this->createdAt = new \DateTimeImmutable();
}
}
public function getRelatedType(): ?string
{
return $this->relatedType;
}
public function setRelatedType(?string $relatedType): self
{
$this->relatedType = $relatedType;
return $this;
}
public function getRelatedId(): ?int
{
return $this->relatedId;
}
public function setRelatedId(?int $relatedId): self
{
$this->relatedId = $relatedId;
return $this;
}
}