<?phpnamespace App\Entity;use Symfony\Component\Security\Core\User\UserInterface;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;use App\Repository\UsuarioRepository;// src/Entity/Usuario.php#[ORM\Entity(repositoryClass: UsuarioRepository::class)]#[ORM\Table( name: "users", uniqueConstraints: [ new ORM\UniqueConstraint(name: "uniq_users_email_empresa", columns: ["email", "empresa_id"]) ])]class Usuario implements UserInterface, PasswordAuthenticatedUserInterface{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 180)] private string $email; #[ORM\Column] private string $password; #[ORM\Column] private bool $status; #[ORM\Column] private int $isAdmin; #[ORM\Column] private int $connection; #[ORM\ManyToOne(inversedBy: 'usuarios')] #[ORM\JoinColumn(nullable: false)] private Empresa $empresa; public function getId(): ?int { return $this->id; } public function getEmail(): string { return $this->email; } public function setEmail(string $email): self { $this->email = $email; return $this; } public function getPassword(): string { return $this->password; } public function setPassword(string $password): self { $this->password = $password; return $this; } public function isStatus(): bool { return $this->status; } public function setStatus(bool $status): self { $this->status = $status; return $this; } public function getIsAdmin(): int { return $this->isAdmin; } public function setIsAdmin(int $isAdmin): self { $this->isAdmin = $isAdmin; return $this; } public function getEmpresa(): Empresa { return $this->empresa; } public function setEmpresa(Empresa $empresa): self { $this->empresa = $empresa; return $this; } public function getConnection(): int { return $this->connection; } public function setConnection($c): self { $this->connection = $c; return $this; } // Métodos requeridos por UserInterface public function getRoles(): array { return $this->isAdmin === 1 ? ['ROLE_ADMIN'] : ['ROLE_USER']; } public function getUserIdentifier(): string { return $this->email; } public function eraseCredentials(): void { // Si almacenas datos temporales o sensibles, límpialos aquí } public function getSalt(): ?string { return null; // No necesario si usas bcrypt o sodium } public function getUsername(): string { return $this->getUserIdentifier(); // Obsoleto pero usado en versiones anteriores } // + métodos de seguridad requeridos por UserInterface}