<?php
namespace App\Entity;
use App\Controller\Action\UserSiteRoleAction;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Metadata\ApiResource;
use Symfony\Component\Serializer\Annotation\Groups;
use ApiPlatform\Metadata\Get;
#[ORM\Table(name: 'user_site')]
#[ORM\Index(name: 'site_id', columns: ['site_id'])]
#[ORM\Index(name: 'user_id', columns: ['user_id'])]
#[ORM\Entity]
#[ApiResource(
normalizationContext: ['groups' => ['user.get']],
operations: [
new Get(
name: '_api_/user_site_role',
uriTemplate: '/user_site_role',
controller: UserSiteRoleAction::class,
write: false,
read: false
)
]
)
]
class UserSite
{
#[ORM\Column(name: 'id', type: 'integer', nullable: false)]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
#[Groups(['site.get', 'plan.get'])]
private int $id;
#[ORM\Column(name: 'role', type: 'string', length: 255, nullable: true)]
#[Groups(['user.get', 'user.write'])]
private ?string $role = null;
#[ORM\ManyToOne(inversedBy: 'userSites')]
#[Groups(['user.write'])]
#[ORM\JoinColumn(nullable: false)]
private ?User $user;
#[ORM\ManyToOne(inversedBy: 'userSites')]
#[Groups(['user.get', 'user.write'])]
private Site $site;
#[ORM\Column(length: 255, nullable: true)]
#[Groups(['user.get', 'plan.get', 'user.write'])]
private ?string $userRole = null;
public function getId(): ?int
{
return $this->id;
}
public function getRole(): ?string
{
return $this->role;
}
public function setRole(?string $role): self
{
$this->role = $role;
return $this;
}
public function getUser(): User
{
return $this->user;
}
public function setUser(User $user = null): self
{
$this->user = $user;
return $this;
}
public function getSite(): Site
{
return $this->site;
}
public function setSite(Site $site): self
{
$this->site = $site;
return $this;
}
public function getUserRole(): ?string
{
return $this->userRole;
}
public function setUserRole(?string $userRole): self
{
$this->userRole = $userRole;
return $this;
}
}