src/Entity/Identity/Account.php line 20

  1. <?php
  2. namespace App\Entity\Identity;
  3. use App\Entity\Common;
  4. use Doctrine\DBAL\Types\Types;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Gedmo\Mapping\Annotation as Gedmo;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. #[ORM\Table(name'user_account')]
  10. #[ORM\Index(columns: ['provider'], name'user_account_provider_idx')]
  11. #[ORM\Index(columns: ['account_id'], name'user_account_account_id_idx')]
  12. #[ORM\Index(columns: ['user_id'], name'user_account_user_id_idx')]
  13. #[ORM\UniqueConstraint(name'user_account_compound_id_key'columns: ['provider''account_id'])]
  14. #[ORM\UniqueConstraint(name'user_account_slug_key'columns: ['slug'])]
  15. #[ORM\Entity]
  16. #[UniqueEntity(fields: ['provider''accountId'])]
  17. class Account
  18. {
  19.     use Common\Trackable;
  20.     #[ORM\Id]
  21.     #[ORM\GeneratedValue(strategy'IDENTITY')]
  22.     #[ORM\SequenceGenerator(sequenceName'user_account_id_seq')]
  23.     #[ORM\Column(typeTypes::INTEGER)]
  24.     private ?int $id null;
  25.     #[Gedmo\Slug(fields: ['provider''accountId'])]
  26.     #[ORM\Column(typeTypes::STRING)]
  27.     private ?string $slug null;
  28.     #[Assert\NotNull]
  29.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy'accounts')]
  30.     #[ORM\JoinColumn(name'user_id'nullablefalse)]
  31.     private ?User $user null;
  32.     #[Assert\NotBlank]
  33.     #[Assert\Type(typeTypes::STRING)]
  34.     #[ORM\Column(typeTypes::STRINGlength255)]
  35.     private ?string $provider null;
  36.     #[Assert\NotBlank]
  37.     #[Assert\Type(typeTypes::STRING)]
  38.     #[ORM\Column(typeTypes::STRINGlength255)]
  39.     private ?string $accountId null;
  40.     #[Assert\NotNull]
  41.     #[Assert\Type(typeTypes::ARRAY)]
  42.     #[ORM\Column(typeTypes::JSON)]
  43.     private array $data = [];
  44.     public function getId(): ?int
  45.     {
  46.         return $this->id;
  47.     }
  48.     public function getSlug(): ?string
  49.     {
  50.         return $this->slug;
  51.     }
  52.     public function setSlug(?string $slug): self
  53.     {
  54.         $this->slug $slug;
  55.         return $this;
  56.     }
  57.     public function getUser(): ?User
  58.     {
  59.         return $this->user;
  60.     }
  61.     public function setUser(?User $user): self
  62.     {
  63.         $this->user $user;
  64.         return $this;
  65.     }
  66.     public function getProvider(): ?string
  67.     {
  68.         return $this->provider;
  69.     }
  70.     public function setProvider(?string $provider): self
  71.     {
  72.         $this->provider $provider;
  73.         return $this;
  74.     }
  75.     public function getAccountId(): ?string
  76.     {
  77.         return $this->accountId;
  78.     }
  79.     public function setAccountId(?string $accountId): self
  80.     {
  81.         $this->accountId $accountId;
  82.         return $this;
  83.     }
  84.     public function getData(): ?array
  85.     {
  86.         return $this->data;
  87.     }
  88.     public function setData(?array $data): self
  89.     {
  90.         $this->data $data ?? [];
  91.         return $this;
  92.     }
  93. }