<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(
* repositoryClass="App\Repository\PotentialCustomerCompanyRepository"
* )
* @ORM\Table(
* name="potential_customer_company",
* options={"collate"="utf8_swedish_ci"}
* )
* @ORM\HasLifecycleCallbacks
*/
class PotentialCustomerCompany implements EntityInterface
{
/**
* @ORM\Id
* @ORM\Column(
* type="integer"
* )
* @ORM\GeneratedValue(
* strategy="AUTO"
* )
*
* @var int|null
*/
protected ?int $id = null;
/**
* @ORM\OneToOne(
* targetEntity="Company",
* inversedBy="potentialCustomer",
* cascade={"persist"}
* )
* @ORM\JoinColumn(
* name="company_id",
* referencedColumnName="id",
* onDelete="SET NULL"
* )
*
* @var Company|null
*/
protected $company;
/**
* @ORM\OneToMany(
* targetEntity="PotentialCustomerCompanyContact",
* mappedBy="company",
* cascade={"persist","remove"},
* orphanRemoval=true
* )
* @orm\OrderBy({"name" = "ASC"})
*
* @var Collection|PotentialCustomerCompanyContact[]
*/
protected $contacts;
/**
* @ORM\Column(
* type="string",
* length=500
* )
*
* @var string
*/
protected $name;
/**
* @ORM\Column(
* type="string",
* length=5000,
* nullable=true
* )
*
* @var string|null
*/
protected $notes;
public function __construct()
{
$this->contacts = new ArrayCollection();
}
/**
* @return string
*/
public function __toString(): string
{
return $this->name;
}
/**
* @param PotentialCustomerCompanyContact $contact
*/
public function addContact(PotentialCustomerCompanyContact $contact)
{
if (null === $this->contacts) {
$this->contacts = new ArrayCollection();
}
$contact->setCompany($this);
$this->contacts->add($contact);
}
/**
* @return Company|null
*/
public function getCompany()
{
return $this->company;
}
/**
* @return PotentialCustomerCompanyContact[]|ArrayCollection|Collection
*/
public function getContacts()
{
return $this->contacts;
}
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @return null|string
*/
public function getNotes()
{
return $this->notes;
}
/**
* @param PotentialCustomerCompanyContact $contact
*/
public function removeContact(PotentialCustomerCompanyContact $contact)
{
if (null !== $this->contacts) {
$this->contacts->removeElement($contact);
}
}
/**
* @param Company|null $company
*/
public function setCompany(Company $company = null)
{
$this->company = $company;
}
/**
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @param string|null $notes
*/
public function setNotes($notes)
{
$this->notes = $notes;
}
}