<?php
namespace App\Entity;
use App\Repository\BugReportRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=BugReportRepository::class)
*/
class BugReport
{
const STATUS_NEW = [
'value' => 0,
'text' => 'Naujas',
'color' => '#f8d7da'
];
const STATUS_IN_PROGRESS = [
'value' => 1,
'text' => 'Vykdomas',
'color' => '#d4edda'
];
const STATUS_WAITING_PR = [
'value' => 4,
'text' => 'Laukiama PR',
'color' => '#c8956a'
];
const STATUS_DONE = [
'value' => 2,
'text' => 'Išspręstas',
'color' => '#0cb535'
];
const STATUS_CANCELLED = [
'value' => 3,
'text' => 'Atšauktas',
'color' => '#ffa600'
];
const STATUS_LOW = [
'value' => 'low',
'text' => 'Low',
'color' => '#85d7a2'
];
const STATUS_MEDIUM = [
'value' => 'medium',
'text' => 'Medium',
'color' => '#fea06a'
];
const STATUS_HIGH = [
'value' => 'high',
'text' => 'High',
'color' => '#ff878a'
];
const STATUSES = [
self::STATUS_NEW,
self::STATUS_IN_PROGRESS,
self::STATUS_WAITING_PR,
self::STATUS_DONE,
self::STATUS_CANCELLED,
];
const PRIORITIES = [
self::STATUS_LOW,
self::STATUS_MEDIUM,
self::STATUS_HIGH,
];
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=10)
*/
private $priority;
/**
* @ORM\Column(type="text")
*/
private $message;
/**
* @ORM\Column(type="string", length=30)
*/
private $difficultiesFor;
/**
* @ORM\Column(type="integer")
* */
private $status;
/**
* @ORM\Column(type="string", length=5000)
* */
private $stepsToReproduce;
/**
* @ORM\Column(type="string", length=5000)
* */
private $currentUrl;
/**
* @ORM\Column(type="datetime", length=30)
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", length=30)
*/
private $updatedAt;
/**
* @ORM\ManyToOne(targetEntity=Admin::class, inversedBy="bugReports")
*/
private ?Admin $admin;
/**
* @ORM\ManyToOne(targetEntity=Admin::class)
*/
private ?Admin $assignee = null;
/**
* @ORM\Column(type="integer", nullable=true)
* */
private $timeInMinutes;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $adminComment = null;
public function __construct()
{
$this->createdAt = new \DateTime();
$this->updatedAt = new \DateTime();
$this->status = 0;
$this->timeInMinutes = 0;
}
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @param mixed $id
*/
public function setId($id): void
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getPriority()
{
return $this->priority;
}
/**
* @param mixed $priority
*/
public function setPriority($priority): void
{
$this->priority = $priority;
}
/**
* @return mixed
*/
public function getMessage()
{
return $this->message;
}
/**
* @param mixed $message
*/
public function setMessage($message): void
{
$this->message = $message;
}
/**
* @return mixed
*/
public function getDifficultiesFor()
{
return $this->difficultiesFor;
}
/**
* @param mixed $difficultiesFor
*/
public function setDifficultiesFor($difficultiesFor): void
{
$this->difficultiesFor = $difficultiesFor;
}
/**
* @return mixed
*/
public function getStepsToReproduce()
{
return $this->stepsToReproduce;
}
/**
* @param mixed $stepsToReproduce
*/
public function setStepsToReproduce($stepsToReproduce): void
{
$this->stepsToReproduce = $stepsToReproduce;
}
public function getCreatedAt(): \DateTime
{
return $this->createdAt;
}
public function setCreatedAt(\DateTime $createdAt): void
{
$this->createdAt = $createdAt;
}
public function getUpdatedAt(): \DateTime
{
return $this->updatedAt;
}
public function setUpdatedAt(\DateTime $updatedAt): void
{
$this->updatedAt = $updatedAt;
}
public function getAdmin(): ?Admin
{
return $this->admin;
}
public function setAdmin(?Admin $admin): self
{
$this->admin = $admin;
return $this;
}
public function getAssignee(): ?Admin
{
return $this->assignee;
}
public function setAssignee(?Admin $assignee): self
{
$this->assignee = $assignee;
return $this;
}
public function getStatus(): ?int
{
return $this->status;
}
public function setStatus($status): self
{
$this->status = $status;
return $this;
}
public function getCurrentUrl(): ?string
{
return $this->currentUrl;
}
public function setCurrentUrl(string $currentUrl): self
{
$this->currentUrl = $currentUrl;
return $this;
}
/**
* @return null|int
*/
public function getTimeInMinutes(): ?int
{
return $this->timeInMinutes;
}
/**
* @param int $timeInMinutes
*/
public function setTimeInMinutes(int $timeInMinutes): void
{
$this->timeInMinutes = $timeInMinutes;
}
public function getAdminComment(): ?string
{
return $this->adminComment;
}
public function setAdminComment(?string $adminComment): self
{
$this->adminComment = $adminComment;
return $this;
}
}