<?php
namespace App\Entity;
use App\Repository\TreatmentRepository;
use App\Traits\CreatedUpdatedTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
/**
* @ORM\Table(name="v_treatment")
* @ORM\Entity(repositoryClass=TreatmentRepository::class)
*/
class Treatment
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="tracking_code", type="string", length=255, nullable=true)
*/
private $trackingCode;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Patient")
*/
private $patient;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Package", cascade={"persist"}, inversedBy="treatment")
* @ORM\JoinColumn(name="package_id", referencedColumnName="id", onDelete="SET NULL", nullable=true)
*/
private $package;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\ContentBlock")
* @Serializer\Type("Relation")
*/
private $content;
/**
* @ORM\OneToMany(targetEntity="App\Entity\TreatmentActivity", mappedBy="treatment")
* @ORM\OrderBy({"day": "ASC"})
*/
private $activities;
/**
* @var \DateTime
*
* @ORM\Column(name="start_date", type="date", nullable=false)
*/
private $startDate;
/**
* @ORM\Column(name="deleted_at", type="datetime", nullable=true)
*/
private $deletedAt;
use CreatedUpdatedTrait;
public function __construct(){
$this->activities = new ArrayCollection();
$this->setTrackingCode('iom-tp-'.date('Ymdhis').'-'.rand(1000,9999));
}
public function __toString(){
return $this->trackingCode;
}
public function getId(): ?int
{
return $this->id;
}
/**
* @return string
*/
public function getTrackingCode(): ?string
{
return $this->trackingCode;
}
/**
* @param string $trackingCode
*/
public function setTrackingCode(?string $trackingCode): void
{
$this->trackingCode = $trackingCode;
}
/**
* @return mixed
*/
public function getPatient()
{
return $this->patient;
}
/**
* @param mixed $patient
*/
public function setPatient($patient): void
{
$this->patient = $patient;
}
/**
* @return mixed
*/
public function getPackage()
{
return $this->package;
}
/**
* @param mixed $package
*/
public function setPackage($package): void
{
$this->package = $package;
}
/**
* @return mixed
*/
public function getContent()
{
return $this->content;
}
/**
* @param mixed $content
*/
public function setContent($content): void
{
$this->content = $content;
}
public function getActivities()
{
return $this->activities;
}
public function setActivities($activities){
$this->activities = $activities;
}
/**
* @return \DateTime
*/
public function getStartDate(): ?\DateTime
{
return $this->startDate;
}
/**
* @param \DateTime $startDate
*/
public function setStartDate(?\DateTime $startDate): void
{
$this->startDate = $startDate;
}
/**
* @return mixed
*/
public function getDeletedAt()
{
return $this->deletedAt;
}
/**
* @param mixed $deletedAt
*/
public function setDeletedAt($deletedAt): void
{
$this->deletedAt = $deletedAt;
}
}