getType(); } public function getStatusLabel(): string { return 'entity.Ticket.statuChoices.'.$this->getStatus(); } /** * @Gedmo\Blameable(on="create") * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface") * @ORM\JoinColumn(nullable=true) */ protected $createdBy; /** * @Gedmo\Blameable(on="update") * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface") * @ORM\JoinColumn(nullable=true) */ protected $updatedBy; /** * @ORM\Column(type="string", length=32) */ protected $type; /** * @ORM\Column(type="string", length=32) */ protected $status = self::TICKET_STATUS_OPEN; /** * @ORM\Column(type="string", length=255) */ protected $subject; /** * @ORM\Column(type="array", nullable=true) */ protected $tags = []; /** * @ORM\Column(type="string", length=64, nullable=true) */ protected $visitorFirstname; /** * @ORM\Column(type="string", length=64, nullable=true) */ protected $visitorLastname; /** * @ORM\Column(type="string", length=128, nullable=true) */ protected $visitorEmail; /** * @ORM\Column(type="string", length=255, nullable=true) */ protected $visitorToken; /** * @ORM\OneToMany(targetEntity="Lc\SovBundle\Model\Ticket\TicketMessageInterface", mappedBy="ticket", orphanRemoval=true, cascade={"persist", "remove"}) * @ORM\OrderBy({"id" = "ASC"}) */ protected $ticketMessages; /** * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\UserInterface", inversedBy="tickets") */ protected $user; public function __construct() { $this->ticketMessages = new ArrayCollection(); } public function getUsername() { if ($this->getUser()) { return $this->getUser()->getName(); } else { return strtoupper($this->getVisitorLastname()).' '.$this->getVisitorFirstname(); } } public function getUserInfosTicket() { $user = $this->getUser(); if ($user) { return '#'.$user->getId().' '.$user->getName().' '.$user->getEmail(); } else { return strtoupper($this->getVisitorLastname()).' '.$this->getVisitorFirstname().' '.$this->getVisitorEmail( ); } } public function getEmail() { if ($this->getUser()) { return $this->getUser()->getEmail(); } else { return $this->getVisitorEmail(); } } public function getVisitorInfos() { return strtoupper($this->getVisitorLastname()).' '.$this->getVisitorFirstname().' ('.$this->getVisitorEmail( ).')'; } public function getLastMessage() { return $this->getTicketMessages()->last(); } public function getType(): ?string { return $this->type; } public function setType(string $type): self { $this->type = $type; return $this; } public function getStatus(): ?string { return $this->status; } public function setStatus(string $status): self { $this->status = $status; return $this; } public function getSubject(): ?string { return $this->subject; } public function setSubject(string $subject): self { $this->subject = $subject; return $this; } public function getTags(): ?array { return $this->tags; } public function setTags(?array $tags): self { $this->tags = $tags; return $this; } public function getVisitorFirstname(): ?string { return $this->visitorFirstname; } public function setVisitorFirstname(?string $visitorFirstname): self { $this->visitorFirstname = $visitorFirstname; return $this; } public function getVisitorLastname(): ?string { return $this->visitorLastname; } public function setVisitorLastname(?string $visitorLastname): self { $this->visitorLastname = $visitorLastname; return $this; } public function getVisitorEmail(): ?string { return $this->visitorEmail; } public function setVisitorEmail(?string $visitorEmail): self { $this->visitorEmail = $visitorEmail; return $this; } public function getVisitorToken(): ?string { return $this->visitorToken; } public function setVisitorToken(?string $visitorToken): self { $this->visitorToken = $visitorToken; return $this; } /** * @return Collection|TicketMessageInterface[] */ public function getTicketMessages(): Collection { return $this->ticketMessages; } public function addTicketMessage(TicketMessageInterface $ticketMessage): self { if (!$this->ticketMessages->contains($ticketMessage)) { $this->ticketMessages[] = $ticketMessage; $ticketMessage->setTicket($this); } return $this; } public function removeTicketMessage(TicketMessageInterface $ticketMessage): self { if ($this->ticketMessages->contains($ticketMessage)) { $this->ticketMessages->removeElement($ticketMessage); // set the owning side to null (unless already changed) if ($ticketMessage->getTicket() === $this) { $ticketMessage->setTicket(null); } } return $this; } public function getUser(): ?UserInterface { return $this->user; } public function setUser(?UserInterface $user): self { $this->user = $user; return $this; } }