<?php
namespace App\Entity\Gos;
use App\Repository\CustomerServiceMessageCategoryRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=CustomerServiceMessageCategoryRepository::class)
* @ORM\HasLifecycleCallbacks
*/
class CustomerServiceMessageCategory
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="CustomerServiceMessage", mappedBy="category")
*/
private $messages;
/**
* @ORM\Column(type="boolean")
*/
private $isMaster;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $color;
/**
* @ORM\ManyToOne(targetEntity="CustomerServiceMessageCategory", inversedBy="subcategories")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
private $parentCategory;
/**
* @ORM\OneToMany(targetEntity="CustomerServiceMessageCategory", mappedBy="parentCategory")
*/
private $subcategories;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $keywords;
/**
* @ORM\Column(type="string")
*/
private $officeEmail;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/** @ORM\PrePersist() */
public function prePersist()
{
$this->createdAt = new \DateTime();
}
/** @ORM\PreUpdate() */
public function preUpdate()
{
$this->updatedAt = new \DateTime();
}
public function __construct()
{
$this->messages = new ArrayCollection();
$this->subcategories = new ArrayCollection();
}
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 getMessages()
{
return $this->messages;
}
public function setMessages($messages): self
{
$this->messages = $messages;
return $this;
}
public function addMessage(CustomerServiceMessage $message): self
{
$this->messages[] = $message;
return $this;
}
public function removeMessage(CustomerServiceMessage $message)
{
$this->messages->removeElement($message);
}
public function getIsMaster(): ?bool
{
return $this->isMaster;
}
public function setIsMaster(?bool $isMaster): self
{
$this->isMaster = $isMaster;
return $this;
}
public function getColor(): ?string
{
return $this->color;
}
public function setColor(?string $color): self
{
$this->color = $color;
return $this;
}
public function getParentCategory(): ?CustomerServiceMessageCategory
{
return $this->parentCategory;
}
public function setParentCategory(?CustomerServiceMessageCategory $parentCategory): self
{
$this->parentCategory = $parentCategory;
return $this;
}
public function getSubcategories()
{
return $this->subcategories;
}
public function setSubcategories($subcategories): self
{
$this->subcategories = $subcategories;
return $this;
}
public function addSubcategories(CustomerServiceMessageCategory $category): self
{
$this->subcategories[] = $category;
return $this;
}
public function removeSubcategories(CustomerServiceMessageCategory $category)
{
$this->subcategories->removeElement($category);
}
public function getKeywords(): ?string
{
return $this->keywords;
}
public function setKeywords(?string $keywords): self
{
$this->keywords = $keywords;
}
public function getOfficeEmail(): ?string
{
return $this->officeEmail;
}
public function setOfficeEmail(?string $officeEmail): self
{
$this->officeEmail = $officeEmail;
return $this;
}
public function __toString()
{
return $this->name;
}
}