src/Entity/Evenement.php line 21
<?phpnamespace App\Entity;use App\Repository\EvenementRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\DBAL\Types\Types;use DateTime;use Doctrine\ORM\Mapping as ORM;use Doctrine\ORM\Mapping\InverseJoinColumn;use Doctrine\ORM\Mapping\JoinColumn;use Doctrine\ORM\Mapping\JoinTable;use Sulu\Bundle\CategoryBundle\Entity\CategoryInterface;use Sulu\Bundle\ContactBundle\Entity\ContactInterface;use Sulu\Bundle\MediaBundle\Entity\MediaInterface;use Sulu\Component\Persistence\Model\AuditableInterface;use Sulu\Component\Persistence\Model\AuditableTrait;use Symfony\Component\Validator\Constraints as Assert;#[ORM\Entity(repositoryClass: EvenementRepository::class)]class Evenement implements AuditableInterface{/*** Constructor.*/public function __construct(){$this->categories = new ArrayCollection();//$this->statistics = new StatsEvenement();}final public const RESOURCE_KEY = 'evenement';//j'ai l'impression que si je rajoute ce sujet sans le sauvegarder dans la bdd ça ne marche pas bien/*private ?StatsEvenement $statistics;public function getStatistics(): ?StatsEvenement{return $this->statistics;}public function setStatistics(StatsEvenement $statistics): self{$this->statistics = $statistics;return $this;}*/use AuditableTrait;#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\Column(length: 1024)]#[Assert\NotBlank]private ?string $title = null;#[ORM\Column(type: Types::TEXT)]private ?string $description = null;#[ORM\Column(type: Types::DATE_MUTABLE)]private ?\DateTimeInterface $startDate = null;#[ORM\Column(type: Types::DATE_MUTABLE)]private ?\DateTimeInterface $endDate = null;#[ORM\Column]private ?float $minAge = null;#[ORM\Column]private ?float $maxAge = null;#[ORM\Column(length: 1024)]private ?string $organisators_display = null;#[ORM\Column(length: 50)]private ?string $organisators_id = null;#[ORM\Column]private ?bool $isPartner = null;#[ORM\Column]private ?int $nbPlace = null;#[ORM\Column(type: Types::TEXT)]private ?string $location = null;#[ORM\ManyToOne(targetEntity: "Sulu\Bundle\MediaBundle\Entity\MediaInterface")]#[JoinColumn(name: "mediaId", referencedColumnName: "id", onDelete: "SET NULL", nullable: true)]private ?MediaInterface $illustration = null;#[ORM\Column]private ?bool $isExternalInscription = null;#[ORM\Column]private ?bool $isOpen = null;#[ORM\Column]private ?bool $isFull = null;#[ORM\Column]private ?bool $isVisible = null;#[ORM\Column]private ?float $price = null;#[ORM\Column(length: 255, nullable: true)]private ?string $priceCurrency = null;#[ORM\Column(length: 255)]private ?string $contactEmail = null;#[ORM\Column(length: 1024, nullable: true)]private ?string $externalUrl = null;#[ORM\Column]private ?bool $hasCentralPayement = null;#[ORM\Column(length: 1024, nullable: true)]private ?string $paymentInfo = null;#[ORM\Column]private ?bool $hasPayementBefore = null;#[ORM\Column]private ?bool $hasPayementInEuro = null;#[ORM\Column]private ?bool $hasPayementInCHF = null;#[ORM\Column]private ?bool $hasPayementInCash = null;#[ORM\Column(type: Types::TEXT)]private ?string $infoInscription = null;#[ORM\Column("camper_age_management")]private bool $camper_age_management = false;#[ORM\Column("automatic_campeur_document_management")]private bool $automatic_campeur_document_management = false;/*** Return yes if the loggued user is authorized for managing the given event.** @return bool*/public function amIOrganisator(int $id_user): ?bool{//est-ce le bon endroit pour implémenter cette fonction ? je pense que oui//reste à savoir d'où je vais appeler cette fonction pour afficher ou nom le camp en question//depuis le evenementController.php ?///il faut récupérer les autorisations de l'utilisateur, vérifier si l'evenement sur lequel on est est bien autorisé pour l'utilisateur concerné//récupération des autorisations de l'utilisateur (ça ne marche pas)$liste_autorisations = $this->organisators_id;//dump $liste_autorisations;//ensuite on sépare le champ avec les ;$liste_autorisations_explose = explode(";",$liste_autorisations);//On regarde si l'id fourni est bien dans la liste récupérée$id_autorise = in_array($id_user, $liste_autorisations_explose);if ($id_autorise) {//"L'ID $id_user est autorisé.";return true;}else {//echo "L'ID $id_user n'est pas autorisé.";return false;}//return true;}/*** @var DoctrineCollection<int, CategoryInterface>*/#[ORM\ManyToMany(targetEntity: "Sulu\Bundle\CategoryBundle\Entity\CategoryInterface")]#[JoinTable(name: "app_evenement_categories",joinColumns: [new JoinColumn(name: "evenement_id", referencedColumnName: "id")],inverseJoinColumns: [new InverseJoinColumn(name: "category_id", referencedColumnName: "id")])]private $categories;/*** Add categories.** @return self*/public function addCategory(CategoryInterface $categories){$this->categories[] = $categories;return $this;}/*** Remove categories.*/public function removeCategories(){$this->categories->clear();}/*** Get categories.** @return DoctrineCollection<int, CategoryInterface>*/public function getCategories(){return $this->categories;}public function getId(): ?int{return $this->id;}public function getTitle(): ?string{return $this->title;}public function setTitle(string $title): self{$this->title = $title;return $this;}public function getDescription(): ?string{return $this->description;}public function setDescription(string $description): self{$this->description = $description;return $this;}public function getStartDate(): ?\DateTimeInterface{return $this->startDate;}public function setStartDate(\DateTimeInterface $startDate): self{$this->startDate = $startDate;return $this;}public function getEndDate(): ?\DateTimeInterface{return $this->endDate;}public function setEndDate(\DateTimeInterface $endDate): self{$this->endDate = $endDate;return $this;}public function getMinAge(): ?float{return $this->minAge;}public function setMinAge(float $minAge): self{$this->minAge = $minAge;return $this;}public function getMaxAge(): ?float{return $this->maxAge;}public function setMaxAge(float $maxAge): self{$this->maxAge = $maxAge;return $this;}public function getOrganisatorsDisplay(): ?string{return $this->organisators_display;}public function setOrganisatorsDisplay(string $organisators_display): self{$this->organisators_display = $organisators_display;return $this;}public function getOrganisatorsId(): ?string{return $this->organisators_id;}public function setOrganisatorsId(string $organisators_id): self{$this->organisators_id = $organisators_id;return $this;}public function isPartner(): ?bool{return $this->isPartner;}public function setIsPartner(bool $isPartner): self{$this->isPartner = $isPartner;return $this;}public function getPriceCurrency(): ?string{return $this->priceCurrency;}public function setPriceCurrency(?string $priceCurrency): self{$this->priceCurrency = $priceCurrency;return $this;}public function getNbPlace(): ?int{return $this->nbPlace;}public function setNbPlace(int $nbPlace): self{$this->nbPlace = $nbPlace;return $this;}public function getLocation(): ?string{return $this->location;}public function setLocation(string $location): self{$this->location = $location;return $this;}public function getIllustration(): ?MediaInterface{return $this->illustration;}public function setIllustration(?MediaInterface $illustration): self{$this->illustration = $illustration;return $this;}public function isExternalInscription(): ?bool{return $this->isExternalInscription;}public function setIsExternalInscription(bool $isExternalInscription): self{$this->isExternalInscription = $isExternalInscription;return $this;}public function isOpen(): ?bool{return $this->isOpen;}public function setIsOpen(bool $isOpen): self{$this->isOpen = $isOpen;return $this;}public function isFull(): ?bool{return $this->isFull;}public function setFull(bool $isFull): self{$this->isFull = $isFull;return $this;}public function isVisible(): ?bool{return $this->isVisible;}public function setVisible(bool $isVisible): self{$this->isVisible = $isVisible;return $this;}public function getPrice(): ?float{return $this->price;}public function setPrice(float $price): self{$this->price = $price;return $this;}public function getContactEmail(): ?string{return $this->contactEmail;}public function setContactEmail(string $contactEmail): self{$this->contactEmail = $contactEmail;return $this;}public function getExternalUrl(): ?string{return $this->externalUrl;}public function setExternalUrl(?string $externalUrl): self{$this->externalUrl = $externalUrl;return $this;}public function getHasCentralPayement(): ?bool{return $this->hasCentralPayement;}public function setHasCentralPayement(bool $hasCentralPayement): self{$this->hasCentralPayement = $hasCentralPayement;return $this;}public function getPaymentInfo(): ?string{return $this->paymentInfo;}public function setPaymentInfo(?string $paymentInfo): self{$this->paymentInfo = $paymentInfo;return $this;}public function getHasPayementBefore(): ?bool {return $this->hasPayementBefore;}public function setHasPayementBefore(?bool $hasPayementBefore): self {$this->hasPayementBefore = $hasPayementBefore;return $this;}/*** @return*/public function getHasPayementInEuro(): ?bool {return $this->hasPayementInEuro;}/*** @param $hasPayementInEuro* @return self*/public function setHasPayementInEuro(?bool $hasPayementInEuro): self {$this->hasPayementInEuro = $hasPayementInEuro;return $this;}/*** @return*/public function getHasPayementInCHF(): ?bool {return $this->hasPayementInCHF;}/*** @param $hasPayementInCHF* @return self*/public function setHasPayementInCHF(?bool $hasPayementInCHF): self {$this->hasPayementInCHF = $hasPayementInCHF;return $this;}/*** @return*/public function getHasPayementInCash(): ?bool {return $this->hasPayementInCash;}/*** @param $hasPayementInCash* @return self*/public function setHasPayementInCash(?bool $hasPayementInCash): self {$this->hasPayementInCash = $hasPayementInCash;return $this;}/*** @return*/public function getInfoInscription(): ?string {return $this->infoInscription;}/*** @param $infoInscription* @return self*/public function setInfoInscription(?string $infoInscription): self {$this->infoInscription = $infoInscription;return $this;}//j'ai changé : de string j'ai passé à boolpublic function getCamperAgeManagement(): ?bool {return $this->camper_age_management;}/*** @param $camper_age_management* @return self*/public function setCamperAgeManagement(?bool $camper_age_management): self {$this->camper_age_management = $camper_age_management;return $this;}public function getAutomaticCampeurDocumentManagement(): ?bool {return $this->automatic_campeur_document_management;}/*** @param $automatic_campeur_document_management* @return self*/public function setAutomaticCampeurDocumentManagement(?bool $automatic_campeur_document_management): self {$this->automatic_campeur_document_management = $automatic_campeur_document_management;return $this;}public function getDaysBeforeCamp(): int{$today = new DateTime();$interval = $this->getStartDate()->diff($today);return $interval->days;}}