src/Entity/Identity/Account.php line 20
<?php
namespace App\Entity\Identity;
use App\Entity\Common;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Table(name: 'user_account')]
#[ORM\Index(columns: ['provider'], name: 'user_account_provider_idx')]
#[ORM\Index(columns: ['account_id'], name: 'user_account_account_id_idx')]
#[ORM\Index(columns: ['user_id'], name: 'user_account_user_id_idx')]
#[ORM\UniqueConstraint(name: 'user_account_compound_id_key', columns: ['provider', 'account_id'])]
#[ORM\UniqueConstraint(name: 'user_account_slug_key', columns: ['slug'])]
#[ORM\Entity]
#[UniqueEntity(fields: ['provider', 'accountId'])]
class Account
{
use Common\Trackable;
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
#[ORM\SequenceGenerator(sequenceName: 'user_account_id_seq')]
#[ORM\Column(type: Types::INTEGER)]
private ?int $id = null;
#[Gedmo\Slug(fields: ['provider', 'accountId'])]
#[ORM\Column(type: Types::STRING)]
private ?string $slug = null;
#[Assert\NotNull]
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'accounts')]
#[ORM\JoinColumn(name: 'user_id', nullable: false)]
private ?User $user = null;
#[Assert\NotBlank]
#[Assert\Type(type: Types::STRING)]
#[ORM\Column(type: Types::STRING, length: 255)]
private ?string $provider = null;
#[Assert\NotBlank]
#[Assert\Type(type: Types::STRING)]
#[ORM\Column(type: Types::STRING, length: 255)]
private ?string $accountId = null;
#[Assert\NotNull]
#[Assert\Type(type: Types::ARRAY)]
#[ORM\Column(type: Types::JSON)]
private array $data = [];
public function getId(): ?int
{
return $this->id;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(?string $slug): self
{
$this->slug = $slug;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getProvider(): ?string
{
return $this->provider;
}
public function setProvider(?string $provider): self
{
$this->provider = $provider;
return $this;
}
public function getAccountId(): ?string
{
return $this->accountId;
}
public function setAccountId(?string $accountId): self
{
$this->accountId = $accountId;
return $this;
}
public function getData(): ?array
{
return $this->data;
}
public function setData(?array $data): self
{
$this->data = $data ?? [];
return $this;
}
}