src/Entity/Project.php line 12

  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. #[ORM\Entity(repositoryClassProjectRepository::class)]
  9. class Project
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\GeneratedValue]
  13.     #[ORM\Column(type'integer')]
  14.     private $id;
  15.     #[ORM\Column(type'string'length255)]
  16.     private $title;
  17.     #[ORM\Column(type'text'nullabletrue)]
  18.     private $content;
  19.     #[ORM\Column(type'date')]
  20.     private $date_debut;
  21.     #[ORM\Column(type'date'nullabletrue)]
  22.     private $date_fin;
  23.     #[ORM\Column(type'datetime')]
  24.     private $date_upload;
  25.     #[ORM\ManyToMany(targetEntityImage::class, inversedBy'projects')]
  26.     private $image;
  27.     #[ORM\OneToOne(targetEntityImage::class, cascade: ['persist''remove'])]
  28.     private $thumbnail_image;
  29.     #[ORM\Column(type'boolean')]
  30.     private $online;
  31.     #[ORM\ManyToMany(targetEntityTag::class, mappedBy'Project')]
  32.     private Collection $tags;
  33.     public function __construct()
  34.     {
  35.         $this->image = new ArrayCollection();
  36.         $this->tags = new ArrayCollection();
  37.     }
  38.     public function getId(): ?int
  39.     {
  40.         return $this->id;
  41.     }
  42.     public function getTitle(): ?string
  43.     {
  44.         return $this->title;
  45.     }
  46.     public function setTitle(string $title): self
  47.     {
  48.         $this->title $title;
  49.         return $this;
  50.     }
  51.     public function getContent(): ?string
  52.     {
  53.         return $this->content;
  54.     }
  55.     public function setContent(?string $content): self
  56.     {
  57.         $this->content $content;
  58.         return $this;
  59.     }
  60.     public function getDateDebut(): ?\DateTimeInterface
  61.     {
  62.         return $this->date_debut;
  63.     }
  64.     public function setDateDebut(\DateTimeInterface $date_debut): self
  65.     {
  66.         $this->date_debut $date_debut;
  67.         return $this;
  68.     }
  69.     public function getDateFin(): ?\DateTimeInterface
  70.     {
  71.         return $this->date_fin;
  72.     }
  73.     public function setDateFin(?\DateTimeInterface $date_fin): self
  74.     {
  75.         $this->date_fin $date_fin;
  76.         return $this;
  77.     }
  78.     public function getDateUpload(): ?\DateTimeInterface
  79.     {
  80.         return $this->date_upload;
  81.     }
  82.     public function setDateUpload(\DateTimeInterface $date_upload): self
  83.     {
  84.         $this->date_upload $date_upload;
  85.         return $this;
  86.     }
  87.     /**
  88.      * @return Collection|Image[]
  89.      */
  90.     public function getImage(): Collection
  91.     {
  92.         return $this->image;
  93.     }
  94.     public function addImage(Image $image): self
  95.     {
  96.         if (!$this->image->contains($image)) {
  97.             $this->image[] = $image;
  98.         }
  99.         return $this;
  100.     }
  101.     public function removeImage(Image $image): self
  102.     {
  103.         $this->image->removeElement($image);
  104.         return $this;
  105.     }
  106.     public function getThumbnailImage(): ?Image
  107.     {
  108.         return $this->thumbnail_image;
  109.     }
  110.     public function setThumbnailImage(?Image $thumbnail_image): self
  111.     {
  112.         $this->thumbnail_image $thumbnail_image;
  113.         return $this;
  114.     }
  115.     public function getOnline(): ?bool
  116.     {
  117.         return $this->online;
  118.     }
  119.     public function setOnline(bool $online): self
  120.     {
  121.         $this->online $online;
  122.         return $this;
  123.     }
  124.     public function isOnline(): ?bool
  125.     {
  126.         return $this->online;
  127.     }
  128.     /**
  129.      * @return Collection<int, Tag>
  130.      */
  131.     public function getTags(): Collection
  132.     {
  133.         return $this->tags;
  134.     }
  135.     public function addTag(Tag $tag): self
  136.     {
  137.         if (!$this->tags->contains($tag)) {
  138.             $this->tags->add($tag);
  139.             $tag->addProject($this);
  140.         }
  141.         return $this;
  142.     }
  143.     public function removeTag(Tag $tag): self
  144.     {
  145.         if ($this->tags->removeElement($tag)) {
  146.             $tag->removeProject($this);
  147.         }
  148.         return $this;
  149.     }
  150. }