<?php
namespace App\Entity;
use App\Repository\ProductRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ProductRepository::class)
*/
class Product
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Programa::class, inversedBy="products", cascade={"persist"})
*/
private $programa;
/**
* @ORM\ManyToOne(targetEntity=Rate::class, inversedBy="products", cascade={"persist"})
*/
private $rate;
/**
* @ORM\Column(type="boolean", options={"default"=1}, nullable=true)
*/
private $publico;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isPrimary;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isPublico;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isActivo;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $stripeId;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $stripePriceId;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $platformFee;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $acceptsPromoCode;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $abrev;
public function __construct()
{
$this->ordenItems = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getPrograma(): ?Programa
{
return $this->programa;
}
public function setPrograma(?Programa $programa): self
{
$this->programa = $programa;
return $this;
}
public function getRate(): ?Rate
{
return $this->rate;
}
public function setRate(?Rate $rate): self
{
$this->rate = $rate;
return $this;
}
public function getRatePrecio()
{
// dd($this->getRate());
if($this->getRate()){
return $this->getRate()->getPrice();
}
return 0;
}
public function getPublico(): ?bool
{
return $this->publico;
}
public function setPublico(bool $publico): self
{
$this->publico = $publico;
return $this;
}
public function getProductName(): string
{
return $this->rate . ' ' . $this->programa;
}
public function getProgramaType()
{
return $this->getPrograma()->getProgramaType();
}
public function getProductPrice()
{
return number_format($this->getRate()->getPrice(), 2);
}
public function __toString()
{
return $this->rate . ' ' . $this->programa;
}
public function getIsPrimary(): ?bool
{
return $this->isPrimary;
}
public function setIsPrimary(bool $isPrimary): self
{
$this->isPrimary = $isPrimary;
return $this;
}
public function getIsPublico(): ?bool
{
return $this->isPublico;
}
public function setIsPublico(?bool $isPublico): self
{
$this->isPublico = $isPublico;
return $this;
}
public function isIsActivo(): ?bool
{
return $this->isActivo;
}
public function setIsActivo(?bool $isActivo): self
{
$this->isActivo = $isActivo;
return $this;
}
public function getStripeId(): ?string
{
return $this->stripeId;
}
public function setStripeId(?string $stripeId): self
{
$this->stripeId = $stripeId;
return $this;
}
public function getStripePriceId(): ?string
{
return $this->stripePriceId;
}
public function setStripePriceId(?string $stripePriceId): self
{
$this->stripePriceId = $stripePriceId;
return $this;
}
public function getPlatformFee(): ?int
{
return $this->platformFee;
}
public function setPlatformFee(?int $platformFee): self
{
$this->platformFee = $platformFee;
return $this;
}
public function getAcceptsPromoCode(): ?bool
{
return $this->acceptsPromoCode;
}
public function setAcceptsPromoCode(bool $acceptsPromoCode): self
{
$this->acceptsPromoCode = $acceptsPromoCode;
return $this;
}
public function getAbrev(): ?string
{
return $this->abrev;
}
public function setAbrev(?string $abrev): self
{
$this->abrev = $abrev;
return $this;
}
}