<?php
namespace App\Entity;
use App\Repository\ProductoRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ProductoRepository::class)
*/
class Producto
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $nombre;
/**
* @ORM\ManyToOne(targetEntity=Tarifa::class, inversedBy="productos")
* @ORM\JoinColumn(nullable=false)
*/
private $tarifa;
/**
* @ORM\ManyToOne(targetEntity=Modalidad::class, inversedBy="productos")
* @ORM\JoinColumn(nullable=false)
*/
private $modalidad;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $gastoGestion;
/**
* @ORM\Column(type="dateinterval")
*/
private $duracion;
/**
* @ORM\Column(type="decimal", precision=10, scale=7)
*/
private $precioPotenciaP1;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioPotenciaP2;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioPotenciaP3;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioPotenciaP4;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioPotenciaP5;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioPotenciaP6;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP1;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP2;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP3;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP4;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP5;
/**
* @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
*/
private $precioEnergiaP6;
/**
* @ORM\Column(type="boolean")
*/
private $facturaElectronica;
/**
* @ORM\OneToMany(targetEntity=Contrato::class, mappedBy="producto")
*/
private $contratos;
/**
* @ORM\Column(type="boolean")
*/
private $personalizado;
public function __construct()
{
$this->contratos = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getNombre(): ?string
{
return $this->nombre;
}
public function setNombre(string $nombre): self
{
$this->nombre = $nombre;
return $this;
}
public function getTarifa(): ?Tarifa
{
return $this->tarifa;
}
public function setTarifa(?Tarifa $tarifa): self
{
$this->tarifa = $tarifa;
return $this;
}
public function getModalidad(): ?Modalidad
{
return $this->modalidad;
}
public function setModalidad(?Modalidad $modalidad): self
{
$this->modalidad = $modalidad;
return $this;
}
public function getGastoGestion(): ?string
{
return $this->gastoGestion;
}
public function setGastoGestion(?string $gastoGestion): self
{
$this->gastoGestion = $gastoGestion;
return $this;
}
public function getDuracion(): ?\DateInterval
{
return $this->duracion;
}
public function setDuracion(\DateInterval $duracion): self
{
$this->duracion = $duracion;
return $this;
}
public function getPrecioPotenciaP1(): ?string
{
return $this->precioPotenciaP1;
}
public function setPrecioPotenciaP1(string $precioPotenciaP1): self
{
$this->precioPotenciaP1 = $precioPotenciaP1;
return $this;
}
public function getPrecioPotenciaP2(): ?string
{
return $this->precioPotenciaP2;
}
public function setPrecioPotenciaP2(?string $precioPotenciaP2): self
{
$this->precioPotenciaP2 = $precioPotenciaP2;
return $this;
}
public function getPrecioPotenciaP3(): ?string
{
return $this->precioPotenciaP3;
}
public function setPrecioPotenciaP3(?string $precioPotenciaP3): self
{
$this->precioPotenciaP3 = $precioPotenciaP3;
return $this;
}
public function getPrecioPotenciaP4(): ?string
{
return $this->precioPotenciaP4;
}
public function setPrecioPotenciaP4(?string $precioPotenciaP4): self
{
$this->precioPotenciaP4 = $precioPotenciaP4;
return $this;
}
public function getPrecioPotenciaP5(): ?string
{
return $this->precioPotenciaP5;
}
public function setPrecioPotenciaP5(?string $precioPotenciaP5): self
{
$this->precioPotenciaP5 = $precioPotenciaP5;
return $this;
}
public function getPrecioPotenciaP6(): ?string
{
return $this->precioPotenciaP6;
}
public function setPrecioPotenciaP6(?string $precioPotenciaP6): self
{
$this->precioPotenciaP6 = $precioPotenciaP6;
return $this;
}
public function getPrecioEnergiaP1(): ?string
{
return $this->precioEnergiaP1;
}
public function setPrecioEnergiaP1(?string $precioEnergiaP1): self
{
$this->precioEnergiaP1 = $precioEnergiaP1;
return $this;
}
public function getPrecioEnergiaP2(): ?string
{
return $this->precioEnergiaP2;
}
public function setPrecioEnergiaP2(?string $precioEnergiaP2): self
{
$this->precioEnergiaP2 = $precioEnergiaP2;
return $this;
}
public function getPrecioEnergiaP3(): ?string
{
return $this->precioEnergiaP3;
}
public function setPrecioEnergiaP3(?string $precioEnergiaP3): self
{
$this->precioEnergiaP3 = $precioEnergiaP3;
return $this;
}
public function getPrecioEnergiaP4(): ?string
{
return $this->precioEnergiaP4;
}
public function setPrecioEnergiaP4(?string $precioEnergiaP4): self
{
$this->precioEnergiaP4 = $precioEnergiaP4;
return $this;
}
public function getPrecioEnergiaP5(): ?string
{
return $this->precioEnergiaP5;
}
public function setPrecioEnergiaP5(?string $precioEnergiaP5): self
{
$this->precioEnergiaP5 = $precioEnergiaP5;
return $this;
}
public function getPrecioEnergiaP6(): ?string
{
return $this->precioEnergiaP6;
}
public function setPrecioEnergiaP6(?string $precioEnergiaP6): self
{
$this->precioEnergiaP6 = $precioEnergiaP6;
return $this;
}
public function getFacturaElectronica(): ?bool
{
return $this->facturaElectronica;
}
public function setFacturaElectronica(bool $facturaElectronica): self
{
$this->facturaElectronica = $facturaElectronica;
return $this;
}
/**
* @return Collection|Contrato[]
*/
public function getContratos(): Collection
{
return $this->contratos;
}
public function addContrato(Contrato $contrato): self
{
if (!$this->contratos->contains($contrato)) {
$this->contratos[] = $contrato;
$contrato->setProducto($this);
}
return $this;
}
public function removeContrato(Contrato $contrato): self
{
if ($this->contratos->contains($contrato)) {
$this->contratos->removeElement($contrato);
// set the owning side to null (unless already changed)
if ($contrato->getProducto() === $this) {
$contrato->setProducto(null);
}
}
return $this;
}
public function __toString():?string
{
return $this->nombre;
}
public function getPersonalizado(): ?bool
{
return $this->personalizado;
}
public function setPersonalizado(bool $personalizado): self
{
$this->personalizado = $personalizado;
return $this;
}
}