Newer
Older
<?php
namespace App\Entity;
use App\Repository\UserRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\Ignore;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: UserRepository::class)]
#[ORM\Table(name: '`user`')]
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])]
class User implements UserInterface, PasswordAuthenticatedUserInterface
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 180)]
private ?string $email = null;
/**
* @var list<string> The user roles
*/
#[ORM\Column]
private array $roles = [];
/**
* @var string The hashed password
*/
#[ORM\Column]
private ?string $password = null;
#[ORM\Column(length: 255)]
private ?string $name = null;
#[ORM\Column(length: 255)]
private ?string $surname = null;
#[ORM\Column(length: 255)]
private ?string $patronymic = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $phone_number = null;
#[ORM\OneToOne(mappedBy: 'related_user', cascade: ['persist', 'remove'])]
private ?UserImage $image = null;
#[ORM\Column]
private ?bool $confirm = null;
#[ORM\Column]
private ?bool $deleted = null;
#[ORM\OneToOne(mappedBy: 'related_user', cascade: ['persist', 'remove'])]
private ?UserCode $register_code = null;
#[Groups(['all'])]
public function getId(): ?int
{
return $this->id;
}
#[Groups(['all', 'profile', 'edit', 'card', 'detail'])]
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): static
{
$this->email = $email;
return $this;
}
/**
* A visual identifier that represents this user.
*
* @see UserInterface
*/
public function getUserIdentifier(): string
{
return (string) $this->email;
}
/**
* @see UserInterface
*
* @return list<string>
*/
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
public function getRoles(): array
{
$roles = $this->roles;
// guarantee every user at least has ROLE_USER
$roles[] = 'ROLE_USER';
if ($this->isDeleted()) {
$roles[] = 'ROLE_DELETED';
} else if ($this->isConfirm()) {
$roles[] = 'ROLE_CONFIRMED';
} else {
$roles[] = 'ROLE_NOT_CONFIRMED';
}
return array_unique($roles);
}
/**
* @param list<string> $roles
*/
public function setRoles(array $roles): static
{
$this->roles = $roles;
return $this;
}
/**
* @see PasswordAuthenticatedUserInterface
*/
public function getPassword(): string
{
return $this->password;
}
public function setPassword(string $password): static
{
$this->password = $password;
return $this;
}
/**
* @see UserInterface
*/
public function eraseCredentials(): void
{
// If you store any temporary, sensitive data on the user, clear it here
// $this->plainPassword = null;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): static
{
$this->name = $name;
return $this;
}
public function getSurname(): ?string
{
return $this->surname;
}
public function setSurname(string $surname): static
{
$this->surname = $surname;
return $this;
}
public function getPatronymic(): ?string
{
return $this->patronymic;
}
public function setPatronymic(string $patronymic): static
{
$this->patronymic = $patronymic;
return $this;
}
public function getPhoneNumber(): ?string
{
return $this->phone_number;
}
public function setPhoneNumber(?string $phone_number): static
{
$this->phone_number = $phone_number;
return $this;
}
public function getImage(): ?UserImage
{
return $this->image;
}
public function setImage(?UserImage $image): static
{
// unset the owning side of the relation if necessary
if ($image === null && $this->image !== null) {
$this->image->setRelatedUser(null);
}
// set the owning side of the relation if necessary
if ($image !== null && $image->getRelatedUser() !== $this) {
$image->setRelatedUser($this);
}
$this->image = $image;
return $this;
}
public function isConfirm(): ?bool
{
return $this->confirm;
}
public function setConfirm(bool $confirm): static
{
$this->confirm = $confirm;
return $this;
}
public function isDeleted(): ?bool
{
return $this->deleted;
}
public function setDeleted(bool $deleted): static
{
$this->deleted = $deleted;
return $this;
}
public function getFullName(): string
{
return $this->getSurname() . ' ' . $this->getName() . ' ' . $this->getPatronymic() ?: '';
}
public function getRegisterCode(): ?UserCode
{
return $this->register_code;
}
public function setRegisterCode(?UserCode $register_code): static
{
// unset the owning side of the relation if necessary
if ($register_code === null && $this->register_code !== null) {
$this->register_code->setRelatedUser(null);
}
// set the owning side of the relation if necessary
if ($register_code !== null && $register_code->getRelatedUser() !== $this) {
$register_code->setRelatedUser($this);
}
$this->register_code = $register_code;
return $this;
}