<?php
namespace App\Entity;
use DateTimeImmutable;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\SupportRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Support
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $subject;
/**
* @ORM\Column(type="string", length=255)
*/
private $classification;
/**
* @ORM\Column(type="text")
*/
private $description;
/**
* @ORM\Column(type="string", length=255)
*/
private $customerName;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank(message="Please provide email")
* @Assert\Email(
* message = "Please enter valid email."
* )
*/
private $customerEmail;
/**
* @ORM\Column(type="datetime_immutable")
*/
private $created;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Workspace", inversedBy="supports")
* @ORM\JoinColumn(nullable=false)
*/
private $workspace;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="supports")
* @ORM\JoinColumn(nullable=false)
**/
private $user;
public function __construct()
{
}
public function getId(): ?int
{
return $this->id;
}
/**
* @return string|null
*/
public function getSubject(): ?string
{
return $this->subject;
}
/**
* @param string $subject
*
* @return $this
*/
public function setSubject(string $subject): self
{
$this->subject = $subject;
return $this;
}
/**
* @return string|null
*/
public function getClassification(): ?string
{
return $this->classification;
}
/**
* @param string $classification
*
* @return $this
*/
public function setClassification(string $classification): self
{
$this->classification = $classification;
return $this;
}
/**
* @return string|null
*/
public function getDescription(): ?string
{
return $this->description;
}
/**
* @param string $description
*
* @return $this
*/
public function setDescription(string $description): self
{
$this->description = $description;
return $this;
}
/**
* @return string|null
*/
public function getCustomerEmail(): ?string
{
return $this->customerEmail;
}
/**
* @param string $customerEmail
*
* @return $this
*/
public function setCustomerEmail(string $customerEmail): self
{
$this->customerEmail = $customerEmail;
return $this;
}
/**
* @return string|null
*/
public function getCustomerName(): ?string
{
return $this->customerName;
}
/**
* @param string $customerName
*
* @return $this
*/
public function setCustomerName(string $customerName): self
{
$this->customerName = $customerName;
return $this;
}
/**
* @return DateTimeImmutable|null
*/
public function getCreated(): ?DateTimeImmutable
{
return $this->created;
}
/**
* @param DateTimeImmutable $created
*
* @return $this
*/
public function setCreated(DateTimeImmutable $created): self
{
$this->created = $created;
return $this;
}
/**
* Set user
*
* @param User|null $user
* @return Support
*/
public function setUser(?User $user = null): self
{
$this->user = $user;
return $this;
}
/**
* @return User|null
*/
public function getUser(): ?User
{
return $this->user;
}
/**
* @return Workspace|null
*/
public function getWorkspace(): ?Workspace
{
return $this->workspace;
}
/**
* @param Workspace|null $workspace
*/
public function setWorkspace(?Workspace $workspace): void
{
$this->workspace = $workspace;
}
/**
* @ORM\PrePersist
*/
public function setCreatedValue()
{
$this->created = new DateTimeImmutable();
}
}