src/Entity/Wiki.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Gedmo\Mapping\Annotation as Gedmo;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. /**
  7.  * @ORM\Entity(repositoryClass="App\Repository\WikiRepository")
  8.  *
  9.  * @ORM\Table(
  10.  *     name="wiki",
  11.  *     indexes={
  12.  *
  13.  *         @ORM\Index(columns={"created_at"}),
  14.  *         @ORM\Index(columns={"published"})
  15.  *     }
  16.  * )
  17.  *
  18.  * @ORM\InheritanceType("SINGLE_TABLE")
  19.  *
  20.  * @ORM\DiscriminatorColumn(name="type", type="string")
  21.  *
  22.  * @ORM\DiscriminatorMap({
  23.  *      "maker" = "MakerWiki",
  24.  *      "model" = "ModelWiki",
  25.  *      "category" = "CategoryWiki",
  26.  *      "france" = "FranceWiki",
  27.  *      "portugal" = "PortugalWiki",
  28.  *      "recruitment" = "RecruitmentWiki",
  29.  * })
  30.  */
  31. abstract class Wiki
  32. {
  33.     public const TYPE_B2C 'B2C';
  34.     public const TYPE_B2B 'B2B';
  35.     /**
  36.      * @ORM\Id
  37.      *
  38.      * @ORM\Column(type="bigint")
  39.      *
  40.      * @ORM\GeneratedValue(strategy="AUTO")
  41.      */
  42.     protected $id;
  43.     /**
  44.      * @ORM\ManyToOne(targetEntity="App\Entity\Wiki")
  45.      *
  46.      * @ORM\JoinColumn(name="parent", referencedColumnName="id")
  47.      */
  48.     protected $parent;
  49.     /**
  50.      * @ORM\Column(type="string")
  51.      */
  52.     protected $subject;
  53.     /**
  54.      * @ORM\Column(type="text")
  55.      */
  56.     protected $content;
  57.     /**
  58.      * @ORM\OneToMany(targetEntity="App\Entity\WikiImage", mappedBy="wiki", cascade={"persist", "remove"})
  59.      */
  60.     protected $images;
  61.     /**
  62.      * @ORM\Column(type="string")
  63.      */
  64.     protected $reference;
  65.     /**
  66.      * @ORM\Column(type="boolean")
  67.      */
  68.     protected $published;
  69.     /**
  70.      * @Gedmo\Timestampable(on="create")
  71.      *
  72.      * @ORM\Column(type="datetime", name="created_at")
  73.      */
  74.     protected $createdAt;
  75.     /**
  76.      * @Gedmo\Timestampable(on="update")
  77.      *
  78.      * @ORM\Column(type="datetime", name="updated_at")
  79.      */
  80.     protected $updatedAt;
  81.     /**
  82.      * @ORM\Column(type="string", length=255, unique=false)
  83.      *
  84.      * @Gedmo\Slug(unique=true, fields={"reference"})
  85.      */
  86.     protected $slug;
  87.     /**
  88.      * @ORM\Column(type="integer")
  89.      */
  90.     protected $nbViews 0;
  91.     /**
  92.      * @ORM\Column(type="integer")
  93.      */
  94.     protected $nbViewsPro 0;
  95.     /**
  96.      * @var string
  97.      *
  98.      * @ORM\Column(type="string", length=255, nullable=true)
  99.      */
  100.     protected $userType;
  101.     public function __construct()
  102.     {
  103.         $this->published false;
  104.     }
  105.     public function getId()
  106.     {
  107.         return $this->id;
  108.     }
  109.     public function getSubject()
  110.     {
  111.         return $this->subject;
  112.     }
  113.     public function setSubject($subject): void
  114.     {
  115.         $this->subject $subject;
  116.     }
  117.     public function getParent()
  118.     {
  119.         return $this->parent;
  120.     }
  121.     public function setParent($parent): void
  122.     {
  123.         $this->parent $parent;
  124.     }
  125.     public function getImages()
  126.     {
  127.         return $this->images;
  128.     }
  129.     public function setImages($images): void
  130.     {
  131.         $this->images $images;
  132.     }
  133.     public function addImage(WikiImage $image): void
  134.     {
  135.         $this->images[] = $image;
  136.         $image->setWiki($this);
  137.     }
  138.     public function getMainImage()
  139.     {
  140.         foreach ($this->images as $image) {
  141.             if ($image->isMain()) {
  142.                 return $image;
  143.             }
  144.         }
  145.         return false;
  146.     }
  147.     public function getExtraImages()
  148.     {
  149.         $images = [];
  150.         foreach ($this->images as $image) {
  151.             if (!$image->isMain()) {
  152.                 $images[] = $image;
  153.             }
  154.         }
  155.         return $images;
  156.     }
  157.     public function getReference()
  158.     {
  159.         return $this->reference;
  160.     }
  161.     public function setReference($reference): void
  162.     {
  163.         $this->reference $reference;
  164.     }
  165.     public function getContent()
  166.     {
  167.         return $this->content;
  168.     }
  169.     public function setContent($content): void
  170.     {
  171.         $this->content $content;
  172.     }
  173.     public function isPublished()
  174.     {
  175.         return $this->published;
  176.     }
  177.     public function setPublished($published): void
  178.     {
  179.         $this->published $published;
  180.     }
  181.     public function getCreatedAt()
  182.     {
  183.         return $this->createdAt;
  184.     }
  185.     public function setCreatedAt(\DateTime $createdAt): void
  186.     {
  187.         $this->createdAt $createdAt;
  188.     }
  189.     public function getUpdatedAt()
  190.     {
  191.         return $this->updatedAt;
  192.     }
  193.     public function setUpdatedAt(\DateTime $updatedAt): void
  194.     {
  195.         $this->updatedAt $updatedAt;
  196.     }
  197.     public function getSlug()
  198.     {
  199.         return $this->slug;
  200.     }
  201.     public function setSlug($slug): void
  202.     {
  203.         $this->slug $slug;
  204.     }
  205.     public function getNbViews()
  206.     {
  207.         return $this->nbViews;
  208.     }
  209.     public function setNbViews($nbViews): void
  210.     {
  211.         $this->nbViews $nbViews;
  212.     }
  213.     public function addOneToNbViews(): void
  214.     {
  215.         ++$this->nbViews;
  216.     }
  217.     public function getNbViewsPro()
  218.     {
  219.         return $this->nbViewsPro;
  220.     }
  221.     public function setNbViewsPro($nbViewsPro): void
  222.     {
  223.         $this->nbViewsPro $nbViewsPro;
  224.     }
  225.     public function addOneToNbViewsPro(): void
  226.     {
  227.         ++$this->nbViewsPro;
  228.     }
  229.     public function getUserType()
  230.     {
  231.         return $this->userType;
  232.     }
  233.     public function setUserType($userType): void
  234.     {
  235.         $this->userType $userType;
  236.     }
  237. }