<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="fs_dealer")
* @ORM\Entity(repositoryClass="App\Repository\DealerRepository")
*/
class Dealer
{
public function __toString(){
return $this->name;
}
public function canDelete(){
if(sizeof($this->agencies) > 0)
return false;
return true;
}
/**
* @ORM\Column(name="id", type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="string", length=191)
*/
protected $name;
/**
* @ORM\Column(name="fiscal_code", type="string", length=191)
*/
protected $fiscalCode;
/**
* @ORM\Column(name="vat", type="string", length=191)
*/
protected $vat;
/**
* @ORM\Column(name="vat_country", type="string", length=191)
*/
protected $vatCountry;
/**
* @ORM\Column(name="address", type="string", length=191, nullable=true)
*/
protected $address;
/**
* @ORM\Column(name="manager", type="string", length=191, nullable=true)
*/
protected $manager;
/**
* @ORM\Column(name="directory_path", type="string", length=191)
*/
protected $directoryPath;
/**
* @ORM\Column(name="logo_path", type="string", length=191, nullable=true)
*/
protected $logoPath;
/**
* @ORM\Column(name="admin_access", type="boolean")
*/
protected $adminAccess = false;
/**
* @ORM\Column(name="admin_active", type="boolean")
*/
protected $adminActive = true;
// ONE TO MANY
/**
* @ORM\OneToMany(targetEntity="App\Entity\JoinTableDealerUser", mappedBy="dealer")
*/
private $users;
/**
* @ORM\OneToMany(targetEntity="App\Entity\JoinTableDealerAgency", mappedBy="dealer")
*/
private $agencies;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Boat", mappedBy="dealer")
*/
private $boats;
//
// MANY TO MANY
/**
* @ORM\ManyToMany(targetEntity="Language", inversedBy="dealers")
* @ORM\JoinTable(name="fs_join_table_dealer_language")
*/
private $languages;
public function __construct()
{
$this->users = new ArrayCollection();
$this->agencies = new ArrayCollection();
$this->boats = new ArrayCollection();
$this->languages = new ArrayCollection();
}
//
public function getId(): ?string
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getFiscalCode(): ?string
{
return $this->fiscalCode;
}
public function setFiscalCode(string $fiscalCode): self
{
$this->fiscalCode = $fiscalCode;
return $this;
}
public function getVat(): ?string
{
return $this->vat;
}
public function setVat(string $vat): self
{
$this->vat = $vat;
return $this;
}
public function getVatCountry(): ?string
{
return $this->vatCountry;
}
public function setVatCountry(string $vatCountry): self
{
$this->vatCountry = $vatCountry;
return $this;
}
public function getAddress(): ?string
{
return $this->address;
}
public function setAddress(?string $address): self
{
$this->address = $address;
return $this;
}
public function getManager(): ?string
{
return $this->manager;
}
public function setManager(?string $manager): self
{
$this->manager = $manager;
return $this;
}
public function getDirectoryPath(): ?string
{
return $this->directoryPath;
}
public function setDirectoryPath(string $directoryPath): self
{
$this->directoryPath = $directoryPath;
return $this;
}
public function getLogoPath(): ?string
{
return $this->logoPath;
}
public function setLogoPath(?string $logoPath): self
{
$this->logoPath = $logoPath;
return $this;
}
public function isAdminAccess(): ?bool
{
return $this->adminAccess;
}
public function setAdminAccess(bool $adminAccess): self
{
$this->adminAccess = $adminAccess;
return $this;
}
public function isAdminActive(): ?bool
{
return $this->adminActive;
}
public function setAdminActive(bool $adminActive): self
{
$this->adminActive = $adminActive;
return $this;
}
/**
* @return Collection<int, JoinTableDealerUser>
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(JoinTableDealerUser $user): self
{
if (!$this->users->contains($user)) {
$this->users->add($user);
$user->setDealer($this);
}
return $this;
}
public function removeUser(JoinTableDealerUser $user): self
{
if ($this->users->removeElement($user)) {
// set the owning side to null (unless already changed)
if ($user->getDealer() === $this) {
$user->setDealer(null);
}
}
return $this;
}
/**
* @return Collection<int, JoinTableDealerAgency>
*/
public function getAgencies(): Collection
{
return $this->agencies;
}
public function addAgency(JoinTableDealerAgency $agency): self
{
if (!$this->agencies->contains($agency)) {
$this->agencies->add($agency);
$agency->setDealer($this);
}
return $this;
}
public function removeAgency(JoinTableDealerAgency $agency): self
{
if ($this->agencies->removeElement($agency)) {
// set the owning side to null (unless already changed)
if ($agency->getDealer() === $this) {
$agency->setDealer(null);
}
}
return $this;
}
/**
* @return Collection<int, Boat>
*/
public function getBoats(): Collection
{
return $this->boats;
}
public function addBoat(Boat $boat): self
{
if (!$this->boats->contains($boat)) {
$this->boats->add($boat);
$boat->setDealer($this);
}
return $this;
}
public function removeBoat(Boat $boat): self
{
if ($this->boats->removeElement($boat)) {
// set the owning side to null (unless already changed)
if ($boat->getDealer() === $this) {
$boat->setDealer(null);
}
}
return $this;
}
/**
* @return Collection<int, Language>
*/
public function getLanguages(): Collection
{
return $this->languages;
}
public function addLanguage(Language $language): self
{
if (!$this->languages->contains($language)) {
$this->languages->add($language);
}
return $this;
}
public function removeLanguage(Language $language): self
{
$this->languages->removeElement($language);
return $this;
}
}