2024-11-28 11:37:56 -05:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Entity;
|
|
|
|
|
|
|
|
use App\Repository\CompanyRepository;
|
|
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
|
|
use Doctrine\Common\Collections\Collection;
|
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
use Symfony\Bridge\Doctrine\Types\UuidType;
|
|
|
|
use Symfony\Component\Uid\Uuid;
|
|
|
|
|
|
|
|
#[ORM\Entity(repositoryClass: CompanyRepository::class)]
|
|
|
|
class Company
|
|
|
|
{
|
|
|
|
#[ORM\Id]
|
|
|
|
#[ORM\Column(type: UuidType::NAME, unique: true)]
|
|
|
|
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
|
|
|
|
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
|
|
|
|
private ?Uuid $id = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 255)]
|
|
|
|
private ?string $name = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 255)]
|
|
|
|
private ?string $address = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 255)]
|
|
|
|
private ?string $city = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 10)]
|
|
|
|
private ?string $state = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 15)]
|
|
|
|
private ?string $zip = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 15)]
|
|
|
|
private ?string $phone = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 64)]
|
|
|
|
private ?string $email = null;
|
|
|
|
|
|
|
|
#[ORM\Column(length: 255, nullable: true)]
|
|
|
|
private ?string $url = null;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var Collection<int, User>
|
|
|
|
*/
|
|
|
|
#[ORM\OneToMany(targetEntity: User::class, mappedBy: 'company')]
|
|
|
|
private Collection $users;
|
|
|
|
|
|
|
|
#[ORM\OneToOne(cascade: ['persist', 'remove'])]
|
|
|
|
#[ORM\JoinColumn(nullable: false)]
|
|
|
|
private ?User $owner = null;
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->users = new ArrayCollection();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getId(): ?Uuid
|
|
|
|
{
|
|
|
|
return $this->id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getName(): ?string
|
|
|
|
{
|
|
|
|
return $this->name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setName(string $name): static
|
|
|
|
{
|
|
|
|
$this->name = $name;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getAddress(): ?string
|
|
|
|
{
|
|
|
|
return $this->address;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setAddress(string $address): static
|
|
|
|
{
|
|
|
|
$this->address = $address;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getCity(): ?string
|
|
|
|
{
|
|
|
|
return $this->city;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setCity(string $city): static
|
|
|
|
{
|
|
|
|
$this->city = $city;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getState(): ?string
|
|
|
|
{
|
|
|
|
return $this->state;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setState(string $state): static
|
|
|
|
{
|
|
|
|
$this->state = $state;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getZip(): ?string
|
|
|
|
{
|
|
|
|
return $this->zip;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setZip(string $zip): static
|
|
|
|
{
|
|
|
|
$this->zip = $zip;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getPhone(): ?string
|
|
|
|
{
|
|
|
|
return $this->phone;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setPhone(string $phone): static
|
|
|
|
{
|
|
|
|
$this->phone = $phone;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getEmail(): ?string
|
|
|
|
{
|
|
|
|
return $this->email;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setEmail(string $email): static
|
|
|
|
{
|
|
|
|
$this->email = $email;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getUrl(): ?string
|
|
|
|
{
|
|
|
|
return $this->url;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setUrl(?string $url): static
|
|
|
|
{
|
|
|
|
$this->url = $url;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return Collection<int, User>
|
|
|
|
*/
|
|
|
|
public function getUsers(): Collection
|
|
|
|
{
|
|
|
|
return $this->users;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function addUser(User $user): static
|
|
|
|
{
|
|
|
|
if (!$this->users->contains($user)) {
|
|
|
|
$this->users->add($user);
|
|
|
|
$user->setCompany($this);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function removeUser(User $user): static
|
|
|
|
{
|
|
|
|
if ($this->users->removeElement($user)) {
|
|
|
|
// set the owning side to null (unless already changed)
|
|
|
|
if ($user->getCompany() === $this) {
|
|
|
|
$user->setCompany(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getOwner(): ?User
|
|
|
|
{
|
|
|
|
return $this->owner;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setOwner(User $owner): static
|
|
|
|
{
|
|
|
|
$this->owner = $owner;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
2024-11-29 21:47:37 -05:00
|
|
|
|
|
|
|
public function __toString(): string
|
|
|
|
{
|
|
|
|
$url = ($this->url ? "<br/><a href='$this->url' target='_blank'>$this->url</a>" : '');
|
2024-11-30 19:58:13 -05:00
|
|
|
$email = ($this->email ? "<br/><a href='mailto:$this->email'>$this->email</a>" : '');
|
2024-11-29 21:47:37 -05:00
|
|
|
return <<<"HTML"
|
|
|
|
$this->name<br/>
|
|
|
|
$this->address<br/>
|
|
|
|
$this->city, $this->state $this->zip<br/>
|
|
|
|
<a href='tel:{$this->phone}'>$this->phone</a>
|
2024-11-30 19:58:13 -05:00
|
|
|
$email
|
2024-11-29 21:47:37 -05:00
|
|
|
$url
|
|
|
|
HTML;
|
|
|
|
}
|
2024-11-28 11:37:56 -05:00
|
|
|
}
|