<?php
namespace App\Entity;
use App\Repository\UserProjectRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Ignore;
#[ORM\Entity(repositoryClass: UserProjectRepository::class)]
#[ORM\Table(name: '`user_project`')]
class UserProject
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'userProjects')]
#[Ignore]
private User $user;
#[ORM\ManyToOne(targetEntity: Project::class, inversedBy: 'userProjects')]
#[Ignore]
private Project $project;
#[ORM\Column]
private array $role;
public function __construct(?User $user = null, ?Project $project = null, ?array $role = null)
{
if ($user) {
$this->user = $user;
}
if ($project) {
$this->project = $project;
}
if ($role) {
$this->role = $role;
}
}
public function getRole(): array
{
return $this->role;
}
public function setRole(array $role): static
{
$this->role = $role;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): static
{
$this->user = $user;
return $this;
}
public function getProject(): ?Project
{
return $this->project;
}
public function setProject(?Project $project): static
{
$this->project = $project;
return $this;
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): string
{
return $this->getUser()->getUserIdentifier().' - '.$this->getProject()->getName();
}
public function __toString(): string
{
return $this->getName();
}
}