src/Entity/Course.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\traits\HasSlug;
  4. use App\Entity\traits\Timestapable;
  5. use App\Repository\CourseRepository;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\DBAL\Types\Types;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Symfony\Component\Serializer\Annotation\Groups;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. #[ORM\Entity(repositoryClassCourseRepository::class)]
  13. class Course
  14. {
  15.     use Timestapable;
  16.     use HasSlug;
  17.     #[ORM\Id]
  18.     #[ORM\GeneratedValue]
  19.     #[ORM\Column]
  20.     #[Groups(["list_courses""show_course","user_info"])]
  21.     private ?int $id null;
  22.     #[Groups(["list_courses""show_course"])]
  23.     #[ORM\ManyToOne(inversedBy'courses')]
  24.     private ?User $user null;
  25.     #[ORM\Column(length255)]
  26.     #[Groups(["list_courses""user_info"'show_course''list_courses'])]
  27.     private ?string $slogan null;
  28.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  29.     #[Groups(["list_courses""user_info""show_course"])]
  30.     #[Assert\NotBlank(message'Ce champ est requis')]
  31.     private ?string $description null;
  32.     #[Groups(["show_course""list_courses""user_info"])]
  33.     #[ORM\Column(length255)]
  34.     #[Assert\NotBlank(message'Ce champ est requis')]
  35.     private ?string $name null;
  36.     #[ORM\Column(length255)]
  37.     #[Groups(["list_courses""show_course""user_info"])]
  38.     private ?string $language null;
  39.     #[ORM\Column(length255nullabletrue)]
  40.     #[Groups(["list_courses""user_info""show_course"])]
  41.     private ?string $video_url null;
  42.     
  43.     #[Groups(["show_course""list_courses""user_info"])]
  44.     #[ORM\Column(length255nullabletrue)]
  45.     #[Assert\NotBlank(message'Ce champ est requis')]
  46.     private ?string $imageUrl null;
  47.     
  48.     #[Groups(["show_course""list_courses""user_info"])]
  49.     private ?string $imageMiniature null;
  50.     #[ORM\Column(nullabletrue)]
  51.     private ?bool $has_multiple_step null;
  52.     #[ORM\OneToMany(mappedBy'course'targetEntityCourseStep::class)]
  53.     private Collection $courseSteps;
  54.     
  55.     #[ORM\ManyToOne(inversedBy'courses')]
  56.     #[Groups(["show_course""list_courses""user_info"])]
  57.     #[Assert\NotBlank(message'Ce champ est requis')]
  58.     private ?CourseType $courseType null;
  59.     #[Groups(["show_course""user_info"])]
  60.     #[ORM\Column(length255)]
  61.     #[Assert\NotBlank(message'Ce champ est requis')]
  62.     private ?string $price null;
  63.     #[ORM\Column(length255nullabletrue)]
  64.     private ?string $dateStr null;
  65.     #[ORM\Column(typeTypes::DATE_MUTABLEnullabletrue)]
  66.     #[Groups(["show_course""user_info"])]
  67.     private ?\DateTimeInterface $date null;
  68.     #[Groups(["show_course""user_info"])]
  69.     #[ORM\Column(length255)]
  70.     #[Assert\NotBlank(message'Ce champ est requis')]
  71.     private ?string $place null;
  72.     #[ORM\Column(length255)]
  73.     #[Groups(["show_course""user_info"])]
  74.     private ?string $instructor null;
  75.     #[Groups(["show_course""list_courses"])]
  76.     #[ORM\ManyToOne(inversedBy'cookingCourses')]
  77.     private ?User $publisher null;
  78.     #[Groups(["show_course"])]
  79.     #[ORM\ManyToMany(targetEntityUser::class)]
  80.     private Collection $participants;
  81.     #[ORM\Column(length255)]
  82.     #[Groups(["list_courses""show_course""user_info"])]
  83.     private ?string $slug null;
  84.     #[ORM\OneToOne(cascade: ['persist''remove'])]
  85.     #[Groups(["show_course"])]
  86.     private ?Order $commande null;
  87.     #[ORM\OneToMany(mappedBy'course'targetEntityLesson::class)]
  88.     #[Groups(["show_course"])]
  89.     private Collection $lessons;
  90.     #[ORM\OneToMany(mappedBy'course'targetEntityCourseParticipants::class)]
  91.       #[Groups(["show_course"])]
  92.     private Collection $courseParticipants;
  93.     #[ORM\Column(nullabletrue)]
  94.     private ?bool $isActive null;
  95.     
  96.     public function __construct()
  97.     {
  98.         $this->courseSteps = new ArrayCollection();
  99.         $this->participants = new ArrayCollection();
  100.         $this->lessons = new ArrayCollection();
  101.         $this->courseParticipants = new ArrayCollection();
  102.     }
  103.     public function getId(): ?int
  104.     {
  105.         return $this->id;
  106.     }
  107.     public function getUser($need false): ?User
  108.     {
  109.         if ($need == true) {
  110.             return $this->user;
  111.         }
  112.         return null;
  113.     }
  114.     public function setUser(?User $user): self
  115.     {
  116.         $this->user $user;
  117.         return $this;
  118.     }
  119.     public function getSlogan(): ?string
  120.     {
  121.         return $this->slogan;
  122.     }
  123.     public function setSlogan(string $slogan): self
  124.     {
  125.         $this->slogan $slogan;
  126.         return $this;
  127.     }
  128.     public function getDescription(): ?string
  129.     {
  130.         return $this->description;
  131.     }
  132.     public function setDescription(?string $description): self
  133.     {
  134.         $this->description $description;
  135.         return $this;
  136.     }
  137.     public function getName(): ?string
  138.     {
  139.         return $this->name;
  140.     }
  141.     public function setName(string $name): self
  142.     {
  143.         $this->name $name;
  144.         return $this;
  145.     }
  146.     public function getLanguage(): ?string
  147.     {
  148.         return $this->language;
  149.     }
  150.     public function setLanguage(string $language): self
  151.     {
  152.         $this->language $language;
  153.         return $this;
  154.     }
  155.     public function getVideoUrl(): ?string
  156.     {
  157.         return $this->video_url;
  158.     }
  159.     public function setVideoUrl(?string $video_url): self
  160.     {
  161.         $this->video_url $video_url;
  162.         return $this;
  163.     }
  164.     public function isHasMultipleStep(): ?bool
  165.     {
  166.         return $this->has_multiple_step;
  167.     }
  168.     public function setHasMultipleStep(?bool $has_multiple_step): self
  169.     {
  170.         $this->has_multiple_step $has_multiple_step;
  171.         return $this;
  172.     }
  173.     /**
  174.      * @return Collection<int, CourseStep>
  175.      */
  176.     public function getCourseSteps(): Collection
  177.     {
  178.         return $this->courseSteps;
  179.     }
  180.     public function addCourseStep(CourseStep $courseStep): self
  181.     {
  182.         if (!$this->courseSteps->contains($courseStep)) {
  183.             $this->courseSteps->add($courseStep);
  184.             $courseStep->setCourse($this);
  185.         }
  186.         return $this;
  187.     }
  188.     public function removeCourseStep(CourseStep $courseStep): self
  189.     {
  190.         if ($this->courseSteps->removeElement($courseStep)) {
  191.             // set the owning side to null (unless already changed)
  192.             if ($courseStep->getCourse() === $this) {
  193.                 $courseStep->setCourse(null);
  194.             }
  195.         }
  196.         return $this;
  197.     }
  198.     public function getCourseType(): ?CourseType
  199.     {
  200.         return $this->courseType;
  201.     }
  202.     public function setCourseType(?CourseType $courseType): self
  203.     {
  204.         $this->courseType $courseType;
  205.         return $this;
  206.     }
  207.     /**
  208.      * Get the value of imageUrl
  209.      */
  210.     public function getImageUrl()
  211.     {
  212.         return $this->imageUrl;
  213.     }
  214.     /**
  215.      * Set the value of imageUrl
  216.      *
  217.      * @return  self
  218.      */
  219.     public function setImageUrl($imageUrl)
  220.     {
  221.         $this->imageUrl $imageUrl;
  222.         return $this;
  223.     }
  224.     public function getPrice(): ?string
  225.     {
  226.         return $this->price;
  227.     }
  228.     public function setPrice(string $price): self
  229.     {
  230.         $this->price $price;
  231.         return $this;
  232.     }
  233.     public function getDateStr(): ?string
  234.     {
  235.         return $this->dateStr;
  236.     }
  237.     public function setDateStr(?string $dateStr): self
  238.     {
  239.         $this->dateStr $dateStr;
  240.         return $this;
  241.     }
  242.     public function getDate(): ?\DateTimeInterface
  243.     {
  244.         return $this->date;
  245.     }
  246.     public function setDate(?\DateTimeInterface $date): self
  247.     {
  248.         $this->date $date;
  249.         return $this;
  250.     }
  251.     public function getPlace(): ?string
  252.     {
  253.         return $this->place;
  254.     }
  255.     public function setPlace(string $place): self
  256.     {
  257.         $this->place $place;
  258.         return $this;
  259.     }
  260.     public function getInstructor(): ?string
  261.     {
  262.         return $this->instructor;
  263.     }
  264.     public function setInstructor(string $instructor): self
  265.     {
  266.         $this->instructor $instructor;
  267.         return $this;
  268.     }
  269.     public function getPublisher(): ?user
  270.     {
  271.         return $this->publisher;
  272.     }
  273.     public function setPublisher(?user $publisher): self
  274.     {
  275.         $this->publisher $publisher;
  276.         return $this;
  277.     }
  278.     /**
  279.      * @return Collection<int, User>
  280.      */
  281.     public function getParticipants(): Collection
  282.     {
  283.         return $this->participants;
  284.     }
  285.     public function addParticipant(User $participant): self
  286.     {
  287.         if (!$this->participants->contains($participant)) {
  288.             $this->participants->add($participant);
  289.         }
  290.         return $this;
  291.     }
  292.     public function removeParticipant(User $participant): self
  293.     {
  294.         $this->participants->removeElement($participant);
  295.         return $this;
  296.     }
  297.     public function getSlug(): ?string
  298.     {
  299.         return $this->slug;
  300.     }
  301.     public function setSlug(string $slug): self
  302.     {
  303.         $this->slug $slug;
  304.         return $this;
  305.     }
  306.     public function getCommande(): ?Order
  307.     {
  308.         return $this->commande;
  309.     }
  310.     public function setCommande(?Order $commande): self
  311.     {
  312.         $this->commande $commande;
  313.         return $this;
  314.     }
  315.     /**
  316.      * @return Collection<int, Lesson>
  317.      */
  318.     public function getLessons(): Collection
  319.     {
  320.         return $this->lessons;
  321.     }
  322.     public function addLesson(Lesson $lesson): self
  323.     {
  324.         if (!$this->lessons->contains($lesson)) {
  325.             $this->lessons->add($lesson);
  326.             $lesson->setCourse($this);
  327.         }
  328.         return $this;
  329.     }
  330.     public function removeLesson(Lesson $lesson): self
  331.     {
  332.         if ($this->lessons->removeElement($lesson)) {
  333.             // set the owning side to null (unless already changed)
  334.             if ($lesson->getCourse() === $this) {
  335.                 $lesson->setCourse(null);
  336.             }
  337.         }
  338.         return $this;
  339.     }
  340.     /**
  341.      * @return Collection<int, CourseParticipants>
  342.      */
  343.     public function getCourseParticipants(): Collection
  344.     {
  345.         return $this->courseParticipants;
  346.     }
  347.     public function addCourseParticipant(CourseParticipants $courseParticipant): self
  348.     {
  349.         if (!$this->courseParticipants->contains($courseParticipant)) {
  350.             $this->courseParticipants->add($courseParticipant);
  351.             $courseParticipant->setCourse($this);
  352.         }
  353.         return $this;
  354.     }
  355.     public function removeCourseParticipant(CourseParticipants $courseParticipant): self
  356.     {
  357.         if ($this->courseParticipants->removeElement($courseParticipant)) {
  358.             // set the owning side to null (unless already changed)
  359.             if ($courseParticipant->getCourse() === $this) {
  360.                 $courseParticipant->setCourse(null);
  361.             }
  362.         }
  363.         return $this;
  364.     }
  365.     public function isIsActive(): ?bool
  366.     {
  367.         return $this->isActive;
  368.     }
  369.     public function setIsActive(?bool $isActive): self
  370.     {
  371.         $this->isActive $isActive;
  372.         return $this;
  373.     }
  374.     public function getImageMiniature()
  375.     {
  376.         return $this->imageMiniature;
  377.     }
  378.     public function setImageMiniature($imageMiniature)
  379.     {
  380.         $this->imageMiniature $imageMiniature;
  381.         return $this;
  382.     }
  383. }