<?php

namespace AppBundle\Entity\Core;

use AppBundle\Entity\AccessAndFunction\Access;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Dunglas\ApiBundle\Annotation\Iri;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Entity\Traits\TimestampableEntity;
use AppBundle\Entity\Traits\CreatorUpdaterEntity;
use AppBundle\Entity\Person\Person;
use AppBundle\Entity\Place\Room;
use AppBundle\Entity\Place\Place;

/**
 * Affiche une modale d'information à la connexion de l'utilisateur
 *
 * @Iri("http://schema.org/Tips")
 */
#[ORM\Entity(repositoryClass: 'AppBundle\Entity\Core\Repository\TipsRepository')]
class Tips extends AbstractInformation
{
    /**
     * @var string
     */
    #[ORM\Column(type: 'text', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['tips'])]
    private $content;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Core\PriorityLevelEnum', 'toArray'])]
    #[Groups(['tips'])]
    private $priorityLevelEnum;
    /**
     * @var array
     */
    #[ORM\Column(type: 'json_array', nullable: true)]
    #[Groups(['tips'])]
    private $tipsAccessFilters;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string')]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Core\TipsLegalStatusEnum', 'toArray'])]
    #[Groups(['tips'])]
    private $legalStatus;
    public function __construct()
    {
        parent::__construct();
    }
    /**
     * Set content
     *
     * @param string $content
     *
     * @return Tips
     */
    public function setContent($content)
    {
        $this->content = $content;

        return $this;
    }
    /**
     * Get content
     *
     * @return string
     */
    public function getContent()
    {
        return $this->content;
    }
    /**
     * Set priorityLevelEnum
     *
     * @param string $priorityLevelEnum
     *
     * @return Tips
     */
    public function setPriorityLevelEnum($priorityLevelEnum)
    {
        $this->priorityLevelEnum = $priorityLevelEnum;

        return $this;
    }
    /**
     * Get priorityLevelEnum
     *
     * @return string
     */
    public function getPriorityLevelEnum()
    {
        return $this->priorityLevelEnum;
    }
    /**
     * Set tipsAccessFilters
     *
     * @param array $tipsAccessFilters
     *
     * @return Tips
     */
    public function setTipsAccessFilters($tipsAccessFilters)
    {
        $this->tipsAccessFilters = $tipsAccessFilters;

        return $this;
    }
    /**
     * Get tipsAccessFilters
     *
     * @return array
     */
    public function getTipsAccessFilters()
    {
        return $this->tipsAccessFilters;
    }
    /**
     * Set legalStatus
     *
     * @param string $legalStatus
     *
     * @return Tips
     */
    public function setLegalStatus($legalStatus)
    {
        $this->legalStatus = $legalStatus;

        return $this;
    }
    /**
     * Get legalStatus
     *
     * @return string
     */
    public function getLegalStatus()
    {
        return $this->legalStatus;
    }
}
