src/Entity/CalculatorProductBusinessCard.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CalculatorProductBusinessCardRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Timestampable\Traits\TimestampableEntity;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. /**
  10.  * @ORM\Entity(repositoryClass=CalculatorProductBusinessCardRepository::class)
  11.  * @UniqueEntity("code")
  12.  */
  13. class CalculatorProductBusinessCard
  14. {
  15.     use TimestampableEntity;
  16.     /**
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue
  19.      * @ORM\Column(type="integer")
  20.      */
  21.     private $id;
  22.     /**
  23.      * @ORM\Column(type="string", length=255)
  24.      */
  25.     private $name;
  26.     /**
  27.      * @ORM\Column(type="string", length=255, unique=true)
  28.      */
  29.     private $code;
  30.     /**
  31.      * @ORM\Column(type="text", nullable=true)
  32.      */
  33.     private $description;
  34.     /**
  35.      * @ORM\Column(type="json", nullable=true)
  36.      */
  37.     private $price = [];
  38.     /**
  39.      * @ORM\OneToMany(targetEntity=BusinessCardOption::class, mappedBy="calculatorProductBusinessCard",
  40.      *     orphanRemoval=true, cascade={"persist", "remove"})
  41.      */
  42.     private $businessCardOptions;
  43.     /**
  44.      * @ORM\ManyToOne(targetEntity=Calculator::class, inversedBy="calculatorProductBusinessCards")
  45.      */
  46.     private $calculator;
  47.     /**
  48.      * @ORM\Column(type="json", nullable=true)
  49.      */
  50.     private $priceTop = [];
  51.     public function __construct()
  52.     {
  53.         $this->businessCardOptions = new ArrayCollection();
  54.     }
  55.     public function getId(): ?int
  56.     {
  57.         return $this->id;
  58.     }
  59.     public function getName(): ?string
  60.     {
  61.         return $this->name;
  62.     }
  63.     public function setName(string $name): self
  64.     {
  65.         $this->name $name;
  66.         return $this;
  67.     }
  68.     public function getCode(): ?string
  69.     {
  70.         return $this->code;
  71.     }
  72.     public function setCode(string $code): self
  73.     {
  74.         $this->code $code;
  75.         return $this;
  76.     }
  77.     public function getDescription(): ?string
  78.     {
  79.         return $this->description;
  80.     }
  81.     public function setDescription(?string $description): self
  82.     {
  83.         $this->description $description;
  84.         return $this;
  85.     }
  86.     public function getPrice(): ?array
  87.     {
  88.         return $this->price;
  89.     }
  90.     public function setPrice(?array $price): self
  91.     {
  92.         $this->price $price;
  93.         return $this;
  94.     }
  95.     public function getCalculator(): ?Calculator
  96.     {
  97.         return $this->calculator;
  98.     }
  99.     public function setCalculator(?Calculator $calculator): self
  100.     {
  101.         $this->calculator $calculator;
  102.         return $this;
  103.     }
  104.     public function getBusinessCardOptions(): Collection
  105.     {
  106.         return $this->businessCardOptions;
  107.     }
  108.     public function addBusinessCardOption(BusinessCardOption $businessCardOption): self
  109.     {
  110.         if (!$this->businessCardOptions->contains($businessCardOption)) {
  111.             $this->businessCardOptions[] = $businessCardOption;
  112.             $businessCardOption->setCalculatorProductBusinessCard($this);
  113.         }
  114.         return $this;
  115.     }
  116.     public function removeBusinessCardOption(BusinessCardOption $businessCardOption): self
  117.     {
  118.         if ($this->businessCardOptions->contains($businessCardOption)) {
  119.             $this->businessCardOptions->removeElement($businessCardOption);
  120.             $businessCardOption->setCalculatorProductBusinessCard(null);
  121.         }
  122.         return $this;
  123.     }
  124.     /*public function __toString() {
  125.         return $this->getName();
  126.     }*/
  127.     public function __clone(){
  128.         $this->id null;
  129.         $businessCardOptions = new ArrayCollection();
  130.         foreach ($this->businessCardOptions as $businessCardOption) {
  131.             $newBusinessCardOption = clone $businessCardOption;
  132.             $newBusinessCardOption->setCalculatorProductBusinessCard($this);
  133.             $businessCardOptions->add($newBusinessCardOption);
  134.         }
  135.         $this->businessCardOptions $businessCardOptions;
  136.     }
  137.     public function getPriceTop(): ?array
  138.     {
  139.         return $this->priceTop;
  140.     }
  141.     public function setPriceTop(?array $priceTop): self
  142.     {
  143.         $this->priceTop $priceTop;
  144.         return $this;
  145.     }
  146.     public function getAdminBase(): ?string
  147.     {
  148.         return $this->adminBase;
  149.     }
  150.     public function setAdminBase(?string $adminBase): self
  151.     {
  152.         $this->adminBase $adminBase;
  153.         return $this;
  154.     }
  155. }