src/Entity/Cours.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use App\Repository\CoursRepository;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. #[ORM\Entity]
  9. //#[ORM\Entity(repositoryClass: CoursRepository::class)]
  10. #[ORM\Table(name"cours"indexes: [
  11.     new ORM\Index(name"subCategoryId"columns: ["subCategoryId"]),
  12.     new ORM\Index(name"niveauId"columns: ["niveauId"]),
  13.     new ORM\Index(name"enseignantId"columns: ["enseignantId"])
  14. ])]
  15. class Cours
  16. {
  17.     #[ORM\Id]
  18.     #[ORM\GeneratedValue(strategy"IDENTITY")]
  19.     #[ORM\Column(name"id"type"integer")]
  20.     private ?int $id null;
  21.     #[Assert\NotBlank]
  22.     #[ORM\Column(name"nom"type"string"length80)]
  23.     private ?string $nom null;
  24.     #[Assert\NotBlank]
  25.     #[ORM\Column(name"image"type"string"length255nullabletrue)]
  26.     private ?string $image null;
  27.     #[Assert\NotBlank]
  28.     #[ORM\Column(name"description"type"text")]
  29.     private ?string $description null;
  30.     #[ORM\Column(name"tags"type"string"length60nullabletrue)]
  31.     private ?string $tags null;
  32.     #[ORM\Column(name"isValidated"type"boolean")]
  33.     private ?bool $isvalidated false;
  34.     #[Assert\NotBlank]
  35.     #[ORM\Column(name"slug"type"string"length255nullabletrue)]
  36.     private ?string $slug null;
  37.     #[ORM\Column(name"views"type"integer"nullabletrue)]
  38.     private ?int $views null;
  39.     #[Assert\NotNull]
  40.     #[ORM\ManyToOne(targetEntitySouscategorie::class)]
  41.     #[ORM\JoinColumn(name"subCategoryId"referencedColumnName"id")]
  42.     private ?Souscategorie $subcategoryid null;
  43.     #[Assert\NotNull]
  44.     #[ORM\ManyToOne(targetEntityLevel::class)]
  45.     #[ORM\JoinColumn(name"niveauId"referencedColumnName"id")]
  46.     private ?Level $niveauid null;
  47.     #[Assert\NotNull]
  48.     #[ORM\ManyToOne(targetEntityUser::class)]
  49.     #[ORM\JoinColumn(name"enseignantId"referencedColumnName"id")]
  50.     private ?User $enseignantid null;
  51.     #[ORM\OneToMany(targetEntity:Lessons::class, mappedBy:"coursid")]
  52.     private Collection $lessons;
  53.     #[ORM\OneToMany(targetEntity:Avis::class, mappedBy:"coursid")]
  54.     private Collection $avis;
  55.     #[ORM\OneToOne(targetEntity:Ressources::class, mappedBy:"coursid")]
  56.     private Ressources $ressource;
  57.     public function __construct() {
  58.         $this->lessons = new ArrayCollection();
  59.         $this->avis = new ArrayCollection();
  60.     }
  61.     
  62.     public function getLessons(): Collection
  63.     {
  64.         return $this->lessons;
  65.     }
  66.     public function getAvis(): Collection
  67.     {
  68.         return $this->avis;
  69.     }
  70.     public function getRessource(): ?Ressources
  71.     {
  72.         return $this->ressource;
  73.     }
  74.     public function getId(): ?int
  75.     {
  76.         return $this->id;
  77.     }
  78.     public function getNom(): ?string
  79.     {
  80.         return $this->nom;
  81.     }
  82.     public function setNom(string $nom): static
  83.     {
  84.         $this->nom $nom;
  85.         return $this;
  86.     }
  87.     public function getImage(): ?string
  88.     {
  89.         return $this->image;
  90.     }
  91.     public function setImage(?string $image): static
  92.     {
  93.         $this->image $image;
  94.         return $this;
  95.     }
  96.     public function getDescription(): ?string
  97.     {
  98.         return $this->description;
  99.     }
  100.     public function setDescription(string $description): static
  101.     {
  102.         $this->description $description;
  103.         return $this;
  104.     }
  105.     public function getTags(): ?string
  106.     {
  107.         return $this->tags;
  108.     }
  109.     public function setTags(?string $tags): static
  110.     {
  111.         $this->tags $tags;
  112.         return $this;
  113.     }
  114.     public function isIsvalidated(): ?bool
  115.     {
  116.         return $this->isvalidated;
  117.     }
  118.     public function setIsvalidated(bool $isvalidated): static
  119.     {
  120.         $this->isvalidated $isvalidated;
  121.         return $this;
  122.     }
  123.     public function getSlug(): ?string
  124.     {
  125.         return $this->slug;
  126.     }
  127.     public function setSlug(?string $slug): static
  128.     {
  129.         $this->slug $slug;
  130.         return $this;
  131.     }
  132.     public function getViews(): ?int
  133.     {
  134.         return $this->views;
  135.     }
  136.     public function setViews(?int $views): static
  137.     {
  138.         $this->views $views;
  139.         return $this;
  140.     }
  141.     public function getSubcategoryid(): ?Souscategorie
  142.     {
  143.         return $this->subcategoryid;
  144.     }
  145.     public function setSubcategoryid(?Souscategorie $subcategoryid): static
  146.     {
  147.         $this->subcategoryid $subcategoryid;
  148.         return $this;
  149.     }
  150.     public function getNiveauid(): ?Level
  151.     {
  152.         return $this->niveauid;
  153.     }
  154.     public function setNiveauid(?Level $niveauid): static
  155.     {
  156.         $this->niveauid $niveauid;
  157.         return $this;
  158.     }
  159.     public function getEnseignantid(): ?User
  160.     {
  161.         return $this->enseignantid;
  162.     }
  163.     public function setEnseignantid(?User $enseignantid): static
  164.     {
  165.         $this->enseignantid $enseignantid;
  166.         return $this;
  167.     }
  168.     public function getLessonsDuration(): int
  169.     {
  170.         $totalDuration 0;
  171.         foreach ($this->lessons as $lesson) {
  172.             $totalDuration += $lesson->getDuree();
  173.         }
  174.         return $totalDuration;
  175.     }
  176.     public function getAverageRating(): ?float
  177.     {
  178.         $totalRating 0;
  179.         $numberOfRatings 0;
  180.         foreach ($this->avis as $rating) {
  181.             $totalRating += $rating->getNote();
  182.             $numberOfRatings++;
  183.         }
  184.         if ($numberOfRatings 0) {
  185.             return round($totalRating $numberOfRatings1);
  186.         } else {
  187.             return null;
  188.         }
  189.     }
  190. }