Files
domain-watchdog/src/Entity/BookmarkList.php

78 lines
1.8 KiB
PHP
Raw Normal View History

2024-07-11 02:29:08 +02:00
<?php
namespace App\Entity;
2024-07-11 22:20:20 +02:00
use App\Repository\BookmarkListRepository;
2024-07-11 02:29:08 +02:00
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Uid\Uuid;
2024-07-11 22:20:20 +02:00
#[ORM\Entity(repositoryClass: BookmarkListRepository::class)]
class BookmarkList
2024-07-11 02:29:08 +02:00
{
#[ORM\Id]
#[ORM\Column(length: 36)]
private string $token;
2024-07-11 17:01:16 +02:00
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'bookmarkDomainLists')]
2024-07-11 02:29:08 +02:00
#[ORM\JoinColumn(nullable: false)]
private ?User $user = null;
/**
* @var Collection<int, Domain>
*/
2024-07-11 22:20:20 +02:00
#[ORM\ManyToMany(targetEntity: Domain::class, inversedBy: 'bookmarkLists')]
#[ORM\JoinTable(name: 'bookmark_lists_domains',
joinColumns: [new ORM\JoinColumn(name: 'bookmark_token', referencedColumnName: 'token')],
2024-07-12 00:50:30 +02:00
inverseJoinColumns: [new ORM\JoinColumn(name: 'domain_handle', referencedColumnName: 'handle')])]
2024-07-11 02:29:08 +02:00
private Collection $domains;
public function __construct()
{
$this->token = Uuid::v4();
$this->domains = new ArrayCollection();
}
public function getToken(): ?string
{
return $this->token;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): static
{
$this->user = $user;
return $this;
}
/**
* @return Collection<int, Domain>
*/
public function getDomains(): Collection
{
return $this->domains;
}
public function addDomain(Domain $domain): static
{
if (!$this->domains->contains($domain)) {
$this->domains->add($domain);
}
return $this;
}
public function removeDomain(Domain $domain): static
{
$this->domains->removeElement($domain);
return $this;
}
}