wip: scopes downloads to usrs
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\User\Framework\Entity;
|
||||
|
||||
use Aimeos\Map;
|
||||
use App\Download\Framework\Entity\Download;
|
||||
use App\Monitor\Framework\Entity\Monitor;
|
||||
use App\User\Framework\Repository\UserRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
@@ -49,10 +50,17 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
#[ORM\OneToMany(targetEntity: Monitor::class, mappedBy: 'user', orphanRemoval: true)]
|
||||
private Collection $yes;
|
||||
|
||||
/**
|
||||
* @var Collection<int, Download>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: Download::class, mappedBy: 'user')]
|
||||
private Collection $downloads;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->userPreferences = new ArrayCollection();
|
||||
$this->yes = new ArrayCollection();
|
||||
$this->downloads = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
@@ -256,4 +264,42 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Download>
|
||||
*/
|
||||
public function getDownloads(): Collection
|
||||
{
|
||||
return $this->downloads;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Download>
|
||||
*/
|
||||
public function getActiveDownloads(): Collection
|
||||
{
|
||||
return $this->downloads->filter(fn(Download $download) => in_array($download->getStatus(), ['New', 'In Progress']));
|
||||
}
|
||||
|
||||
public function addDownload(Download $download): static
|
||||
{
|
||||
if (!$this->downloads->contains($download)) {
|
||||
$this->downloads->add($download);
|
||||
$download->setUser($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeDownload(Download $download): static
|
||||
{
|
||||
if ($this->downloads->removeElement($download)) {
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($download->getUser() === $this) {
|
||||
$download->setUser(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user