src/Entity/Experience.php line 30

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.     /**
  39.      * @ORM\Column(type="string", nullable=true)
  40.      */
  41.     private ?string $title null;
  42.     /**
  43.      * @ORM\Column(type="string", nullable=true)
  44.      */
  45.     private ?string $coachingtype null;
  46.     /**
  47.      * @ORM\Column(type="string", nullable=true)
  48.      */
  49.     private ?string $resume null;
  50.     /**
  51.      * @ORM\Column(type="string", nullable=true)
  52.      */
  53.     private ?string $description null;
  54.     
  55.    
  56.     /**
  57.      * @ORM\Column(type="boolean")
  58.      */
  59.     private $published;
  60.     /**
  61.      * @ORM\Column(type="boolean")
  62.      */
  63.     private $enabled;
  64.       /**
  65.      * @var Subcategory[]|Collection
  66.      *
  67.      * @ORM\ManyToMany(targetEntity="Subcategory", inversedBy="experiences", cascade={"persist"})
  68.      * @ORM\JoinTable(name="bookoach_experience_subcategory")
  69.      * @ORM\OrderBy({"name": "ASC"})
  70.      */
  71.     #[Assert\Count(max10maxMessage'experience.too_many_subcategories')]
  72.     private Collection $subcategories;
  73.     /**
  74.      * @ORM\ManyToOne(targetEntity="App\Entity\Category", inversedBy="experiences")
  75.      */
  76.     private $country;
  77.     
  78.     /**
  79.      * @ORM\OneToMany(targetEntity="App\Entity\Program", mappedBy="experience",orphanRemoval=true))
  80.      * @ORM\OrderBy({"id": "DESC"})
  81.      */
  82.     private Collection $programs;
  83.     
  84.     /**
  85.      * @ORM\Column(type="array", nullable=true)
  86.      */
  87.     private $highlights;
  88.     
  89.     public function __construct() {
  90.         $this->createdAt = new \DateTime('now');
  91.         $this->enabled 1;
  92.         $this->published 0;
  93.         $this->subcategories = new ArrayCollection();
  94.         $this->programs = new ArrayCollection();
  95.     }
  96.           
  97.     public function addSubcategory(Subcategory $subcategory): void {
  98. //        foreach ($Subcategories as $subcategory) {
  99.         if (!$this->subcategories->contains($subcategory)) {
  100.             $this->subcategories [] = $subcategory;
  101.             $subcategory->addArticle($this);
  102.         }
  103. //        }
  104.     }
  105.     public function removeSubcategory(Subcategory $subcategory): void {
  106.         $this->subcategories->removeElement($subcategory);
  107.     }
  108.     public function getId(): ?int {
  109.         return $this->id;
  110.     }
  111.     public function getCreatedAt(): \DateTime {
  112.         return $this->createdAt;
  113.     }
  114.     public function getTitle(): ?string {
  115.         return $this->title;
  116.     }
  117.     public function getCoachingtype(): ?string {
  118.         return $this->coachingtype;
  119.     }
  120.     public function getResume(): ?string {
  121.         return $this->resume;
  122.     }
  123.     public function getDescription(): ?string {
  124.         return $this->description;
  125.     }
  126.     public function getPublished() {
  127.         return $this->published;
  128.     }
  129.     public function getEnabled() {
  130.         return $this->enabled;
  131.     }
  132.     public function getSubcategories(): Collection {
  133.         return $this->subcategories;
  134.     }
  135.     public function getCountry() {
  136.         return $this->country;
  137.     }
  138.     public function setId(?int $id): void {
  139.         $this->id $id;
  140.     }
  141.     public function setCreatedAt(\DateTime $createdAt): void {
  142.         $this->createdAt $createdAt;
  143.     }
  144.     public function setTitle(?string $title): void {
  145.         $this->title $title;
  146.     }
  147.     public function setCoachingtype(?string $coachingtype): void {
  148.         $this->coachingtype $coachingtype;
  149.     }
  150.     public function setResume(?string $resume): void {
  151.         $this->resume $resume;
  152.     }
  153.     public function setDescription(?string $description): void {
  154.         $this->description $description;
  155.     }
  156.     public function setPublished($published): void {
  157.         $this->published $published;
  158.     }
  159.     public function setEnabled($enabled): void {
  160.         $this->enabled $enabled;
  161.     }
  162.     public function setSubcategories(Collection $subcategories): void {
  163.         $this->subcategories $subcategories;
  164.     }
  165.     public function setCountry($country): void {
  166.         $this->country $country;
  167.     }
  168.     public function getPrograms(): Collection {
  169.         return $this->programs;
  170.     }
  171.     public function setPrograms(Collection $programs): void {
  172.         $this->programs $programs;
  173.     }
  174.     public function getHighlights() {
  175.         return $this->highlights;
  176.     }
  177.     public function setHighlights($highlights): void {
  178.         $this->highlights $highlights;
  179.     }
  180.     
  181. }