<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass="App\Repository\CompagnyInfoRepository")
*/
class CompagnyInfo
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups("compagny")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups("compagny")
*/
private $nameCompagny;
/**
* @ORM\Column(type="date")
*/
private $birthdayCompagny;
/**
* @ORM\Column(type="text")
*/
private $adressCompagny;
/**
* @ORM\Column(type="integer")
*/
private $postalCodeCompagny;
/**
* @ORM\Column(type="string", length=255)
*/
private $cityCompagny;
/**
* @ORM\Column(type="string", length=255)
*/
private $countryCompagny;
/**
* @ORM\Column(type="text")
*/
private $descriptionCompagny;
/**
* @ORM\OneToOne(targetEntity="App\Entity\User", cascade={"persist", "remove"})
* @Groups("compagny")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\DomainActivity", inversedBy="compagnyInfos")
*/
private $domainActivity;
/**
* @ORM\OneToOne(targetEntity="App\Entity\ProfilPicture", cascade={"persist", "remove"})
*/
private $pictureProfilCompagny;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Job", inversedBy="compagnyInfos")
*/
private $job;
/**
* @ORM\Column(type="string", length=255)
*/
private $identificationNumberCompagny;
/**
* @ORM\ManyToOne(targetEntity=Department::class, inversedBy="compagnyInfos")
*/
private $departmentCompagny;
/**
* @ORM\OneToMany(targetEntity=ServicePrice::class, mappedBy="compagny")
*/
private $servicePrices;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $firstPrice;
/**
* @ORM\ManyToMany(targetEntity=PackageCompagny::class, mappedBy="compagny", cascade={"persist"})
*/
private $packageCompagnies;
/**
* @ORM\OneToMany(targetEntity=ShoppingCart::class, mappedBy="idCompagny")
*/
private $shoppingCarts;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $RCS;
/**
* @ORM\OneToMany(targetEntity=Billing::class, mappedBy="idProvider")
*/
private $billings;
/**
* @ORM\Column(type="decimal", precision=10, scale=4, nullable=true, options={"default" : 0.1000})
* @Groups("compagny")
*/
private $pourcentage_fees;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $legalType;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true, options={"default" : 0})
*/
private $amountLimitMinDeposit;
/**
* @ORM\Column(type="decimal", precision=10, scale=4, nullable=true)
*/
private $pourcentageDeposit;
/**
* @ORM\Column(type="json", nullable=true)
*/
private $acceptedDeposit = [];
/**
* @ORM\OneToMany(targetEntity=Refund::class, mappedBy="provider")
*/
private $refunds;
/**
* @ORM\ManyToMany(targetEntity=Job::class, inversedBy="supplyCompagnyInfos")
*/
private $supplyJobs;
/**
* @ORM\ManyToMany(targetEntity=DomainActivity::class, inversedBy="supplyCompagnyInfos")
*/
private $supplyDomains;
public function __construct()
{
$this->packageCompagnies = new ArrayCollection();
$this->shoppingCarts = new ArrayCollection();
$this->billings = new ArrayCollection();
$this->servicePrices = new ArrayCollection();
$this->refunds = new ArrayCollection();
$this->supplyJobs = new ArrayCollection();
$this->supplyDomains = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getNameCompagny(): ?string
{
return $this->nameCompagny;
}
public function setNameCompagny(string $nameCompagny): self
{
$this->nameCompagny = $nameCompagny;
return $this;
}
public function getBirthdayCompagny(): ?\DateTimeInterface
{
return $this->birthdayCompagny;
}
public function setBirthdayCompagny(\DateTimeInterface $birthdayCompagny): self
{
$this->birthdayCompagny = $birthdayCompagny;
return $this;
}
public function getAdressCompagny(): ?string
{
return $this->adressCompagny;
}
public function setAdressCompagny(string $adressCompagny): self
{
$this->adressCompagny = $adressCompagny;
return $this;
}
public function getPostalCodeCompagny(): ?int
{
return $this->postalCodeCompagny;
}
public function setPostalCodeCompagny(int $postalCodeCompagny): self
{
$this->postalCodeCompagny = $postalCodeCompagny;
return $this;
}
public function getCityCompagny(): ?string
{
return $this->cityCompagny;
}
public function setCityCompagny(string $cityCompagny): self
{
$this->cityCompagny = $cityCompagny;
return $this;
}
public function getCountryCompagny(): ?string
{
return $this->countryCompagny;
}
public function setCountryCompagny(string $countryCompagny): self
{
$this->countryCompagny = $countryCompagny;
return $this;
}
public function getDescriptionCompagny(): ?string
{
return $this->descriptionCompagny;
}
public function setDescriptionCompagny(string $descriptionCompagny): self
{
$this->descriptionCompagny = $descriptionCompagny;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getDomainActivity(): ?DomainActivity
{
return $this->domainActivity;
}
public function setDomainActivity(?DomainActivity $domainActivity): self
{
$this->domainActivity = $domainActivity;
return $this;
}
public function getPictureProfilCompagny(): ?ProfilPicture
{
return $this->pictureProfilCompagny;
}
public function setPictureProfilCompagny(?ProfilPicture $pictureProfilCompagny): self
{
$this->pictureProfilCompagny = $pictureProfilCompagny;
return $this;
}
public function getJob(): ?Job
{
return $this->job;
}
public function setJob(?Job $job): self
{
$this->job = $job;
return $this;
}
public function getIdentificationNumberCompagny(): ?string
{
return $this->identificationNumberCompagny;
}
public function setIdentificationNumberCompagny(string $identificationNumberCompagny): self
{
$this->identificationNumberCompagny = $identificationNumberCompagny;
return $this;
}
public function getDepartmentCompagny(): ?Department
{
return $this->departmentCompagny;
}
public function setDepartmentCompagny(?Department $departmentCompagny): self
{
$this->departmentCompagny = $departmentCompagny;
return $this;
}
/**
* @return Collection|ServicePrice[]
*/
public function getServicePrices(): Collection
{
return $this->servicePrices;
}
public function addServicePrice(ServicePrice $servicePrice): self
{
if (!$this->servicePrices->contains($servicePrice)) {
$this->servicePrices[] = $servicePrice;
$servicePrice->setCompagny($this);
}
return $this;
}
public function removeServicePrice(ServicePrice $servicePrice): self
{
if ($this->servicePrices->contains($servicePrice)) {
$this->servicePrices->removeElement($servicePrice);
// set the owning side to null (unless already changed)
if ($servicePrice->getCompagny() === $this) {
$servicePrice->setCompagny(null);
}
}
return $this;
}
public function getFirstPrice(): ?string
{
return $this->firstPrice;
}
public function setFirstPrice(string $firstPrice): self
{
$this->firstPrice = $firstPrice;
return $this;
}
/**
* @return Collection|PackageCompagny[]
*/
public function getPackageCompagnies(): Collection
{
return $this->packageCompagnies;
}
public function addPackageCompagny(PackageCompagny $packageCompagny): self
{
if (!$this->packageCompagnies->contains($packageCompagny)) {
$this->packageCompagnies[] = $packageCompagny;
$packageCompagny->addCompagny($this);
}
return $this;
}
public function removePackageCompagny(PackageCompagny $packageCompagny): self
{
if ($this->packageCompagnies->contains($packageCompagny)) {
$this->packageCompagnies->removeElement($packageCompagny);
$packageCompagny->removeCompagny($this);
}
return $this;
}
/**
* @return Collection|ShoppingCart[]
*/
public function getShoppingCarts(): Collection
{
return $this->shoppingCarts;
}
public function addShoppingCart(ShoppingCart $shoppingCart): self
{
if (!$this->shoppingCarts->contains($shoppingCart)) {
$this->shoppingCarts[] = $shoppingCart;
$shoppingCart->setIdCompagny($this);
}
return $this;
}
public function removeShoppingCart(ShoppingCart $shoppingCart): self
{
if ($this->shoppingCarts->removeElement($shoppingCart)) {
// set the owning side to null (unless already changed)
if ($shoppingCart->getIdCompagny() === $this) {
$shoppingCart->setIdCompagny(null);
}
}
return $this;
}
public function getRCS(): ?string
{
return $this->RCS;
}
public function setRCS(?string $RCS): self
{
$this->RCS = $RCS;
return $this;
}
public function getLegalType()
{
return $this->legalType;
}
public function setLegalType(?string $legalType): self
{
$this->legalType = $legalType;
return $this;
}
/**
* @return Collection|Billing[]
*/
public function getBillings(): Collection
{
return $this->billings;
}
public function addBilling(Billing $billing): self
{
if (!$this->billings->contains($billing)) {
$this->billings[] = $billing;
$billing->setIdProvider($this);
}
return $this;
}
public function removeBilling(Billing $billing): self
{
if ($this->billings->removeElement($billing)) {
// set the owning side to null (unless already changed)
if ($billing->getIdProvider() === $this) {
$billing->setIdProvider(null);
}
}
return $this;
}
public function getPourcentageFees(): ?string
{
return $this->pourcentage_fees;
}
public function setPourcentageFees(?string $pourcentage_fees): self
{
$this->pourcentage_fees = $pourcentage_fees/100;
return $this;
}
public function getAmountLimitMinDeposit(): ?string
{
return $this->amountLimitMinDeposit;
}
public function setAmountLimitMinDeposit(?string $amountLimitMinDeposit): self
{
$this->amountLimitMinDeposit = $amountLimitMinDeposit;
return $this;
}
public function getPourcentageDeposit(): ?string
{
return $this->pourcentageDeposit;
}
public function setPourcentageDeposit(?string $pourcentageDeposit): self
{
$this->pourcentageDeposit = $pourcentageDeposit;
return $this;
}
public function getAcceptedDeposit(): ?array
{
return $this->acceptedDeposit;
}
public function setAcceptedDeposit(?array $acceptedDeposit): self
{
$this->acceptedDeposit = $acceptedDeposit;
return $this;
}
/**
* @return Collection|Refund[]
*/
public function getRefunds(): Collection
{
return $this->refunds;
}
public function addRefund(Refund $refund): self
{
if (!$this->refunds->contains($refund)) {
$this->refunds[] = $refund;
$refund->setProvider($this);
}
return $this;
}
public function removeRefund(Refund $refund): self
{
if ($this->refunds->removeElement($refund)) {
// set the owning side to null (unless already changed)
if ($refund->getProvider() === $this) {
$refund->setProvider(null);
}
}
return $this;
}
/**
* @return Collection|Job[]
*/
public function getSupplyJobs(): Collection
{
return $this->supplyJobs;
}
public function addSupplyJob(Job $supplyJob): self
{
if (!$this->supplyJobs->contains($supplyJob)) {
$this->supplyJobs[] = $supplyJob;
}
return $this;
}
public function removeSupplyJob(Job $supplyJob): self
{
$this->supplyJobs->removeElement($supplyJob);
return $this;
}
/**
* @return Collection|DomainActivity[]
*/
public function getSupplyDomains(): Collection
{
return $this->supplyDomains;
}
public function addSupplyDomain(DomainActivity $supplyDomain): self
{
if (!$this->supplyDomains->contains($supplyDomain)) {
$this->supplyDomains[] = $supplyDomain;
}
return $this;
}
public function removeSupplyDomain(DomainActivity $supplyDomain): self
{
$this->supplyDomains->removeElement($supplyDomain);
return $this;
}
}