<?php
namespace App\Entity;
use App\Repository\ProviderRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ProviderRepository::class)
*/
class Provider
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $content;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isActivo;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $slug;
/**
* @ORM\Column(type="string", length=2000, nullable=true)
*/
private $description;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $location;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $subcontent;
/**
* @ORM\ManyToOne(targetEntity=ProviderType::class)
*/
private $providerType;
/**
* @ORM\ManyToMany(targetEntity=Programa::class, mappedBy="provider")
*/
private $programas;
/**
* @ORM\OneToMany(targetEntity=Discount::class, mappedBy="provider")
*/
private $discounts;
/**
* @ORM\OneToMany(targetEntity=Solicitud::class, mappedBy="provider")
*/
private $solicitudes;
/**
* @ORM\OneToMany(targetEntity=SolicitudPublica::class, mappedBy="proveedor")
*/
private $solicitudesPublicas;
public function __construct()
{
$this->programas = new ArrayCollection();
$this->discounts = new ArrayCollection();
$this->solicitudes = new ArrayCollection();
$this->solicitudesPublicas = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getContent(): ?string
{
return $this->content;
}
public function setContent(string $content): self
{
$this->content = $content;
return $this;
}
public function getIsActivo(): ?bool
{
return $this->isActivo;
}
public function setIsActivo(?bool $isActivo): self
{
$this->isActivo = $isActivo;
return $this;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(?string $slug): self
{
$this->slug = $slug;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getLocation(): ?string
{
return $this->location;
}
public function setLocation(?string $location): self
{
$this->location = $location;
return $this;
}
public function getSubcontent(): ?string
{
return $this->subcontent;
}
public function setSubcontent(?string $subcontent): self
{
$this->subcontent = $subcontent;
return $this;
}
public function getProviderType(): ?ProviderType
{
return $this->providerType;
}
public function setProviderType(?ProviderType $providerType): self
{
$this->providerType = $providerType;
return $this;
}
/**
* @return Collection<int, Programa>
*/
public function getProgramas(): Collection
{
return $this->programas;
}
public function addPrograma(Programa $programa): self
{
if (!$this->programas->contains($programa)) {
$this->programas[] = $programa;
$programa->addProvider($this);
}
return $this;
}
public function removePrograma(Programa $programa): self
{
if ($this->programas->removeElement($programa)) {
$programa->removeProvider($this);
}
return $this;
}
public function __toString()
{
return $this->getProviderType(). ' ' . $this->content . ' ' . $this->getSubcontent() . ' ' . $this->getLocation();
}
public function getNombre($type): ?string
{
switch ($type){
case 1:
return $this->getProviderType(). ' ' . $this->content . ' ' . $this->getSubcontent();
break;
case 2:
return $this->content . ', ' . $this->getLocation();
break;
default:
return $this->content . ' ' . $this->getSubcontent();
break;
}
}
public function getNombreLocation(): ?string
{
return $this->content . ' ' . $this->getLocation();
}
/**
* @return Collection<int, Discount>
*/
public function getDiscounts(): Collection
{
return $this->discounts;
}
public function addDiscount(Discount $discount): self
{
if (!$this->discounts->contains($discount)) {
$this->discounts[] = $discount;
$discount->setProvider($this);
}
return $this;
}
public function removeDiscount(Discount $discount): self
{
if ($this->discounts->removeElement($discount)) {
// set the owning side to null (unless already changed)
if ($discount->getProvider() === $this) {
$discount->setProvider(null);
}
}
return $this;
}
/**
* @return Collection<int, Solicitud>
*/
public function getSolicitudes(): Collection
{
return $this->solicitudes;
}
public function addSolicitude(Solicitud $solicitude): self
{
if (!$this->solicitudes->contains($solicitude)) {
$this->solicitudes[] = $solicitude;
$solicitude->setProvider($this);
}
return $this;
}
public function removeSolicitude(Solicitud $solicitude): self
{
if ($this->solicitudes->removeElement($solicitude)) {
// set the owning side to null (unless already changed)
if ($solicitude->getProvider() === $this) {
$solicitude->setProvider(null);
}
}
return $this;
}
/**
* @return Collection<int, SolicitudPublica>
*/
public function getSolicitudesPublicas(): Collection
{
return $this->solicitudesPublicas;
}
public function addSolicitudesPublica(SolicitudPublica $solicitudesPublica): self
{
if (!$this->solicitudesPublicas->contains($solicitudesPublica)) {
$this->solicitudesPublicas[] = $solicitudesPublica;
$solicitudesPublica->setProveedor($this);
}
return $this;
}
public function removeSolicitudesPublica(SolicitudPublica $solicitudesPublica): self
{
if ($this->solicitudesPublicas->removeElement($solicitudesPublica)) {
// set the owning side to null (unless already changed)
if ($solicitudesPublica->getProveedor() === $this) {
$solicitudesPublica->setProveedor(null);
}
}
return $this;
}
}