<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Pages
*
* @ORM\Table(name="Structures")
* @ORM\Entity(repositoryClass="App\Repository\StructuresRepository")
*/
class Structures
{
public function __construct(){
$this->date = new \DateTime;
$this->projects = new ArrayCollection();
}
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="position", type="integer", nullable=true)
*/
private $position;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255,nullable=true)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="abbreviation", type="string", length=255,nullable=true)
*/
private $abbreviation;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Picture", cascade={"persist","remove"}, orphanRemoval=true)
* @ORM\JoinColumn(nullable=true)
*/
private $logo;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $director;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Picture", cascade={"persist","remove"}, orphanRemoval=true)
* @ORM\JoinColumn(nullable=true)
*/
private $directorPicture;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $address;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $phone;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $email;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $website;
/**
* @var string
*
* @ORM\Column(type="string", length=255,nullable=true)
*/
private $map;
/**
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
*/
private $description;
/**
* @var string
*
* @ORM\Column(name="content", type="text",nullable=true)
*/
private $content;
/**
* @var \DateTime|null
*
* @ORM\Column(name="date", type="datetime", nullable=true)
*/
private $date;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Users")
* @ORM\JoinColumn(name="createdBy",nullable=true)
*/
private $createdBy;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Users")
* @ORM\JoinColumn(name="updatedBy",nullable=true)
*/
private $updatedBy;
/**
* @var bool
*
* @ORM\Column(name="isEnabled", type="boolean",nullable=true)
*/
private $isEnabled;
/**
* @ORM\ManyToOne(targetEntity=StructuresCategories::class, inversedBy="structures", fetch="EAGER")
* @ORM\JoinColumn(nullable=true)
*/
private $category;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $slug;
/**
* @ORM\ManyToOne(targetEntity=Sectors::class, inversedBy="structures")
*/
private $sector;
/**
* @ORM\OneToMany(targetEntity=Projects::class, mappedBy="structure")
*/
private $projects;
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(?int $position): self
{
$this->position = $position;
return $this;
}
public function getAbbreviation(): ?string
{
return $this->abbreviation;
}
public function setAbbreviation(?string $abbreviation): self
{
$this->abbreviation = $abbreviation;
return $this;
}
public function getDirector(): ?string
{
return $this->director;
}
public function setDirector(?string $director): self
{
$this->director = $director;
return $this;
}
public function getDirectorPicture(): ?Picture
{
return $this->directorPicture;
}
public function setDirectorPicture(?Picture $directorPicture): self
{
if($directorPicture->getTarget()){
$this->directorPicture = $directorPicture;
$this->directorPicture->setDir('upload/images/structures');
$this->directorPicture->setThumbnailDir('upload/thumbnails/structures');
}
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getAddress(): ?string
{
return $this->address;
}
public function setAddress(?string $address): self
{
$this->address = $address;
return $this;
}
public function getPhone(): ?string
{
return $this->phone;
}
public function setPhone(?string $phone): self
{
$this->phone = $phone;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
public function getWebsite(): ?string
{
return $this->website;
}
public function setWebsite(?string $website): self
{
$this->website = $website;
return $this;
}
public function getMap(): ?string
{
return $this->map;
}
public function setMap(?string $map): self
{
$this->map = $map;
return $this;
}
public function getLastUpdate(): ?\DateTimeInterface
{
return $this->lastUpdate;
}
public function setLastUpdate(\DateTimeInterface $lastUpdate): self
{
$this->lastUpdate = $lastUpdate;
return $this;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(?\DateTimeInterface $date): self
{
$this->date = $date;
return $this;
}
public function getCreatedBy(): ?Users
{
return $this->createdBy;
}
public function setCreatedBy(?Users $createdBy): self
{
$this->createdBy = $createdBy;
return $this;
}
public function getUpdatedBy(): ?Users
{
return $this->updatedBy;
}
public function setUpdatedBy(?Users $updatedBy): self
{
$this->updatedBy = $updatedBy;
return $this;
}
public function getIsEnabled(): ?bool
{
return $this->isEnabled;
}
public function setIsEnabled(?bool $isEnabled): self
{
$this->isEnabled = $isEnabled;
return $this;
}
public function getLogo(): ?Picture
{
return $this->logo;
}
public function setLogo(?Picture $logo): self
{
if($logo->getTarget()){
$this->logo = $logo;
$this->logo->setDir('upload/images/structures');
$this->logo->setThumbnailDir('upload/thumbnails/structures');
}
return $this;
}
public function getCategory(): ?StructuresCategories
{
return $this->category;
}
public function setCategory(?StructuresCategories $category): self
{
$this->category = $category;
return $this;
}
public function getContent(): ?string
{
return $this->content;
}
public function setContent(?string $content): self
{
$this->content = $content;
return $this;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(?string $slug): self
{
$this->slug = $slug;
return $this;
}
public function getSector(): ?Sectors
{
return $this->sector;
}
public function setSector(?Sectors $sector): self
{
$this->sector = $sector;
return $this;
}
/**
* @return Collection|Projects[]
*/
public function getProjects(): Collection
{
return $this->projects;
}
public function addProject(Projects $project): self
{
if (!$this->projects->contains($project)) {
$this->projects[] = $project;
$project->setStructure($this);
}
return $this;
}
public function removeProject(Projects $project): self
{
if ($this->projects->removeElement($project)) {
// set the owning side to null (unless already changed)
if ($project->getStructure() === $this) {
$project->setStructure(null);
}
}
return $this;
}
}