src/Entity/Experience.php line 377

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace App\Entity;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Doctrine\Common\Collections\Collection;
  13. use Doctrine\ORM\Mapping as ORM;
  14. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  15. use Symfony\Component\Validator\Constraints as Assert;
  16. /**
  17.  * @ORM\Entity(repositoryClass="App\Repository\ExperienceRepository")
  18.  * @ORM\Table(name="experience")
  19.  *
  20.  * Defines the properties of the Subcategory entity to represent the article Subcategories.
  21.  *
  22.  * See https://symfony.com/doc/current/doctrine.html#creating-an-entity-class
  23.  *
  24.  * @author Yonel Ceruto <yonelceruto@gmail.com>
  25.  */
  26. class Experience {
  27.     /**
  28.      * @ORM\Id
  29.      * @ORM\GeneratedValue
  30.      * @ORM\Column(type="integer")
  31.      */
  32.     private ?int $id null;
  33.     /**
  34.      * @ORM\Column(type="datetime")
  35.      */
  36.     private \DateTime $createdAt;
  37.     /**
  38.      * @ORM\Column(type="string")
  39.      */
  40.     private ?string $image;
  41.     /**
  42.      * @ORM\Column(type="string", nullable=true)
  43.      */
  44.     private ?string $title null;
  45.     /**
  46.      * @ORM\Column(type="string", nullable=true)
  47.      */
  48.     private ?string $coachingtype null;
  49.     /**
  50.      * @ORM\Column(type="string", nullable=true)
  51.      */
  52.     private ?string $resume null;
  53.     /**
  54.      * @ORM\Column(type="string", nullable=true)
  55.      */
  56.     private ?string $description null;
  57.     /**
  58.      * @ORM\Column(type="boolean", nullable=true)
  59.      */
  60.     private $published;
  61.     /**
  62.      * @ORM\Column(type="boolean", nullable=true)
  63.      */
  64.     private $enabled;
  65.     /**
  66.      * @ORM\Column(type="boolean", nullable=true)
  67.      */
  68.     private $onpromo;
  69.     /**
  70.      * @ORM\Column(type="float", nullable=true)
  71.      */
  72.     private $price null;
  73.     /**
  74.      * @ORM\Column(type="string", nullable=true)
  75.      */
  76.     private $currency null;
  77.     /**
  78.      * @ORM\Column(type="string", nullable=true)
  79.      */
  80.     private $hashebergement null;
  81.     /**
  82.      * @ORM\Column(type="string", nullable=true)
  83.      */
  84.     private $cancellation null;
  85.     /**
  86.      * @ORM\Column(type="array", nullable=true)
  87.      */
  88.     private $highlights;
  89.     /**
  90.      * @ORM\Column(type="array", nullable=true)
  91.      */
  92.     private $included;
  93.     /**
  94.      * @ORM\Column(type="array", nullable=true)
  95.      */
  96.     private $notincluded;
  97.     /**
  98.      * @ORM\Column(type="array", nullable=true)
  99.      */
  100.     private $steps;
  101.     /**
  102.      * @var Subcategory[]|Collection
  103.      *
  104.      * @ORM\ManyToMany(targetEntity="Subcategory", inversedBy="experiences", cascade={"persist"})
  105.      * @ORM\JoinTable(name="bookoach_experience_subcategory")
  106.      * @ORM\OrderBy({"name": "ASC"})
  107.      */
  108.     #[Assert\Count(max10maxMessage'experience.too_many_subcategories')]
  109.     private Collection $subcategories;
  110.     /**
  111.      * @ORM\ManyToOne(targetEntity="App\Entity\Destination", inversedBy="experiences")
  112.      */
  113.     private $destination;
  114.     /**
  115.      * @ORM\OneToMany(targetEntity="App\Entity\Program", mappedBy="experience",orphanRemoval=true))
  116.      * @ORM\OrderBy({"id": "DESC"})
  117.      */
  118.     private Collection $programs;
  119.     /**
  120.      * @ORM\OneToMany(targetEntity="App\Entity\Media", mappedBy="experience",orphanRemoval=true))
  121.      * @ORM\OrderBy({"id": "DESC"})
  122.      */
  123.     private Collection $medias;
  124.     /**
  125.      * @ORM\OneToMany(targetEntity="App\Entity\Hebergement", mappedBy="experience",orphanRemoval=true))
  126.      * @ORM\OrderBy({"id": "DESC"})
  127.      */
  128.     private Collection $hebergements;
  129.     /**
  130.      * @ORM\OneToOne(targetEntity="App\Entity\Promotion", mappedBy="experience", cascade={"persist", "remove"})
  131.      */
  132.     private $promotion;
  133.     /**
  134.      * @ORM\OneToOne(targetEntity="App\Entity\Availability", mappedBy="experience", cascade={"persist", "remove"})
  135.      */
  136.     private $availability;
  137.     public function __construct() {
  138.         $this->createdAt = new \DateTime('now');
  139.         $this->enabled 1;
  140.         $this->published 0;
  141.         $this->subcategories = new ArrayCollection();
  142.         $this->programs = new ArrayCollection();
  143.         $this->medias = new ArrayCollection();
  144.         $this->hebergements = new ArrayCollection();
  145.     }
  146.     public function getId(): ?int {
  147.         return $this->id;
  148.     }
  149.     public function getCreatedAt(): \DateTime {
  150.         return $this->createdAt;
  151.     }
  152.     public function getTitle(): ?string {
  153.         return $this->title;
  154.     }
  155.     public function getCoachingtype(): ?string {
  156.         return $this->coachingtype;
  157.     }
  158.     public function getResume(): ?string {
  159.         return $this->resume;
  160.     }
  161.     public function getDescription(): ?string {
  162.         return $this->description;
  163.     }
  164.     public function getPublished() {
  165.         return $this->published;
  166.     }
  167.     public function getEnabled() {
  168.         return $this->enabled;
  169.     }
  170.     public function getSubcategories(): Collection {
  171.         return $this->subcategories;
  172.     }
  173.     public function setId(?int $id): void {
  174.         $this->id $id;
  175.     }
  176.     public function setCreatedAt(\DateTime $createdAt): void {
  177.         $this->createdAt $createdAt;
  178.     }
  179.     public function setTitle(?string $title): void {
  180.         $this->title $title;
  181.     }
  182.     public function setCoachingtype(?string $coachingtype): void {
  183.         $this->coachingtype $coachingtype;
  184.     }
  185.     public function setResume(?string $resume): void {
  186.         $this->resume $resume;
  187.     }
  188.     public function setDescription(?string $description): void {
  189.         $this->description $description;
  190.     }
  191.     public function setPublished($published): void {
  192.         $this->published $published;
  193.     }
  194.     public function setEnabled($enabled): void {
  195.         $this->enabled $enabled;
  196.     }
  197.     public function setSubcategories(Collection $subcategories): void {
  198.         $this->subcategories $subcategories;
  199.     }
  200.     public function getPrograms(): Collection {
  201.         return $this->programs;
  202.     }
  203.     public function setPrograms(Collection $programs): void {
  204.         $this->programs $programs;
  205.     }
  206.     public function getHighlights() {
  207.         return $this->highlights;
  208.     }
  209.     public function setHighlights($highlights): void {
  210.         $this->highlights $highlights;
  211.     }
  212.     public function getDestination() {
  213.         return $this->destination;
  214.     }
  215.     public function setDestination($destination): void {
  216.         $this->destination $destination;
  217.     }
  218.     public function getIncluded() {
  219.         return $this->included;
  220.     }
  221.     public function getNotincluded() {
  222.         return $this->notincluded;
  223.     }
  224.     public function setIncluded($included): void {
  225.         $this->included $included;
  226.     }
  227.     public function setNotincluded($notincluded): void {
  228.         $this->notincluded $notincluded;
  229.     }
  230.     public function getMedias(): Collection {
  231.         return $this->medias;
  232.     }
  233.     public function getHebergements(): Collection {
  234.         return $this->hebergements;
  235.     }
  236.     public function setMedias(Collection $medias): void {
  237.         $this->medias $medias;
  238.     }
  239.     public function setHebergements(Collection $hebergements): void {
  240.         $this->hebergements $hebergements;
  241.     }
  242.     public function getImage(): ?string {
  243.         return $this->image;
  244.     }
  245.     public function setImage(?string $image): void {
  246.         $this->image $image;
  247.     }
  248.     public function getOnpromo() {
  249.         return $this->onpromo;
  250.     }
  251.     public function setOnpromo($onpromo): void {
  252.         $this->onpromo $onpromo;
  253.     }
  254.     public function getPromotion() {
  255.         return $this->promotion;
  256.     }
  257.     public function getAvailability() {
  258.         return $this->availability;
  259.     }
  260.     public function setPromotion(Promotion $promotion): void {
  261.         $this->promotion $promotion;
  262.         $promotion->setExperience($this);
  263.     }
  264.     public function setAvailability(Availability $availability): void {
  265.         $this->availability $availability;
  266.         $availability->setExperience($this);
  267.     }
  268.     public function getPrice() {
  269.         return $this->price;
  270.     }
  271.     public function setPrice($price): void {
  272.         $this->price $price;
  273.     }
  274.     public function getHashebergement() {
  275.         return $this->hashebergement;
  276.     }
  277.     public function getCancellation() {
  278.         return $this->cancellation;
  279.     }
  280.     public function setHashebergement($hashebergement): void {
  281.         $this->hashebergement $hashebergement;
  282.     }
  283.     public function setCancellation($cancellation): void {
  284.         $this->cancellation $cancellation;
  285.     }
  286.     public function getCurrency() {
  287.         return $this->currency;
  288.     }
  289.     public function setCurrency($currency): void {
  290.         $this->currency $currency;
  291.     }
  292.     public function getSteps() {
  293.         return $this->steps;
  294.     }
  295.     public function setSteps($step): void {
  296.         if ($this->steps == null) {
  297.             $this->steps[] = $step;
  298.         } if (!in_array($step$this->steps)) {
  299.             $this->steps[] = $step;
  300.         }
  301.     }
  302.     public function addProgram(Program $program): void {
  303.         $program->setExperience($this);
  304.         if (!$this->programs->contains($program)) {
  305.             $this->programs[] = $program;
  306.         }
  307.     }
  308.     public function removeProgram(Program $program): void {
  309.         $this->programs->removeElement($program);
  310.     }
  311.     public function addMedia(Media $media): void {
  312.         $media->setExperience($this);
  313.         if (!$this->medias->contains($media)) {
  314.             $this->medias->add($media);
  315.         }
  316.     }
  317.     public function removeMedia(Media $media): void {
  318.         $this->medias->removeElement($media);
  319.     }
  320.     public function addHebergement(Hebergement $hebergement): void {
  321.         $hebergement->setExperience($this);
  322.         if (!$this->hebergements->contains($hebergement)) {
  323.             $this->hebergements->add($hebergement);
  324.         }
  325.     }
  326.     public function removeHebergement(Hebergement $hebergement): void {
  327.         $this->hebergements->removeElement($hebergement);
  328.     }
  329.     public function addSubcategory(Subcategory $subcategory): void {
  330. //        foreach ($Subcategories as $subcategory) {
  331.         if (!$this->subcategories->contains($subcategory)) {
  332.             $this->subcategories [] = $subcategory;
  333.             $subcategory->addExperience($this);
  334.         }
  335. //        }
  336.     }
  337.     public function removeSubcategory(Subcategory $subcategory): void {
  338.         $this->subcategories->removeElement($subcategory);
  339.     }
  340. }