<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\StripePriceRepository")
*/
class StripePrice
{
public function __construct()
{
$this->stripe_subscriptions = new ArrayCollection();
$this->products_one_shot = new ArrayCollection();
$this->products_recurring = new ArrayCollection();
}
/**
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $stripe_id;
/**
* @ORM\Column(type="integer")
*/
private $unit_amount;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $reccuring_interval;
/**
* @ORM\Column(type="boolean")
*/
private $active;
/**
* @ORM\Column(type="boolean", nullable=true, options={"default": 1})
*/
private $display;
/**
* @ORM\Column(type="string", length=255)
*/
private $currency;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $type;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $tax_rate;
/**
* @ORM\Column(type="boolean")
*/
private $address_required = false;
/**
* @ORM\Column(type="boolean")
*/
private $highlighted = false;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $duaj_publication_date;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $duaj_quadri_code;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\StripeProduct", inversedBy="product_prices")
*/
private $stripe_product;
/**
* @ORM\OneToMany(targetEntity="App\Entity\StripeSubscription", mappedBy="stripe_price")
*/
private $stripe_subscriptions;
/**
* @ORM\OneToMany(targetEntity="App\Entity\ProductRecurringOneShot", mappedBy="one_shot_product")
*/
private $products_recurring;
/**
* @ORM\OneToMany(targetEntity="App\Entity\ProductRecurringOneShot", mappedBy="recurring_product")
*/
private $products_one_shot;
public function getId(): ?int
{
return $this->id;
}
public function getStripeId(): ?string
{
return $this->stripe_id;
}
public function setStripeId(string $stripe_id): self
{
$this->stripe_id = $stripe_id;
return $this;
}
public function getUnitAmount(): ?int
{
return $this->unit_amount;
}
public function setUnitAmount(int $unit_amount): self
{
$this->unit_amount = $unit_amount;
return $this;
}
public function getReccuringInterval(): ?string
{
return $this->reccuring_interval;
}
public function setReccuringInterval(?string $reccuring_interval): self
{
$this->reccuring_interval = $reccuring_interval;
return $this;
}
public function getActive(): ?bool
{
return $this->active;
}
public function setActive(bool $active): self
{
$this->active = $active;
return $this;
}
/**
* @return mixed
*/
public function getDisplay()
{
return $this->display;
}
/**
* @param mixed $display
*/
public function setDisplay($display): self
{
$this->display = $display;
return $this;
}
public function getCurrency(): ?string
{
return $this->currency;
}
public function setCurrency(string $currency): self
{
$this->currency = $currency;
return $this;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(?string $type): self
{
$this->type = $type;
return $this;
}
/**
* @return mixed
*/
public function getTaxRate()
{
return $this->tax_rate;
}
/**
* @param mixed $tax_rate
*
* @return StripePrice
*/
public function setTaxRate($tax_rate)
{
$this->tax_rate = $tax_rate;
return $this;
}
public function getAddressRequired(): bool
{
return $this->address_required;
}
public function setAddressRequired(bool $address_required): self
{
$this->address_required = $address_required;
return $this;
}
public function getHighlighted(): bool
{
return $this->highlighted;
}
public function setHighlighted(bool $highlighted): self
{
$this->highlighted = $highlighted;
return $this;
}
/**
* @return mixed
*/
public function getDuajPublicationDate()
{
return $this->duaj_publication_date;
}
/**
* @param mixed $duaj_publication_date
*/
public function setDuajPublicationDate($duaj_publication_date): void
{
$this->duaj_publication_date = $duaj_publication_date;
}
/**
* @return mixed
*/
public function getDuajQuadriCode()
{
return $this->duaj_quadri_code;
}
/**
* @param mixed $duaj_quadri_code
*/
public function setDuajQuadriCode($duaj_quadri_code): void
{
$this->duaj_quadri_code = $duaj_quadri_code;
}
public function getStripeProduct(): ?StripeProduct
{
return $this->stripe_product;
}
public function setStripeProduct(?StripeProduct $stripe_product): self
{
$this->stripe_product = $stripe_product;
return $this;
}
public function getStripeSubscriptions(): Collection
{
return $this->stripe_subscriptions;
}
public function setStripeSubscription(StripeSubscription $stripe_subscription): self
{
$this->stripe_subscription = $stripe_subscription;
return $this;
}
public function addStripeSubscription(StripeSubscription $stripeSubscription): self
{
if (!$this->stripe_subscriptions->contains($stripeSubscription)) {
$this->stripe_subscriptions[] = $stripeSubscription;
$stripeSubscription->setStripePrice($this);
}
return $this;
}
public function removeStripeSubscription(StripeSubscription $stripeSubscription): self
{
if ($this->stripe_subscriptions->contains($stripeSubscription)) {
$this->stripe_subscriptions->removeElement($stripeSubscription);
if ($stripeSubscription->getStripePrice() === $this) {
$stripeSubscription->setStripePrice(null);
}
}
return $this;
}
public function getProductsRecurring(): ?Collection
{
return $this->products_recurring;
}
public function addProductRecurring(ProductRecurringOneShot $productRecurring): self
{
if (!$this->products_recurring->contains($productRecurring)) {
$this->products_recurring[] = $productRecurring;
$productRecurring->setOneShotProduct($this);
}
return $this;
}
public function removeProductRecurring(ProductRecurringOneShot $productRecurring): self
{
if ($this->products_recurring->contains($productRecurring)) {
$this->products_recurring->removeElement($productRecurring);
if ($productRecurring->getOneShotProduct() === $this) {
$productRecurring->setOneShotProduct(null);
}
}
return $this;
}
public function getProductsOneShot(): ?Collection
{
return $this->products_one_shot;
}
public function addProductOneShot(ProductRecurringOneShot $productOneShot): self
{
if (!$this->products_one_shot->contains($productOneShot)) {
$this->products_one_shot[] = $productOneShot;
$productOneShot->setRecurringProduct($this);
}
return $this;
}
public function removeProductOneShot(ProductRecurringOneShot $productOneShot): self
{
if ($this->products_one_shot->contains($productOneShot)) {
$this->products_one_shot->removeElement($productOneShot);
if ($productOneShot->getRecurringProduct() === $this) {
$productOneShot->setRecurringProduct(null);
}
}
return $this;
}
}