<?php
namespace App\Entity;
use App\Repository\WardBedRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
#[ORM\Entity(repositoryClass: WardBedRepository::class), ORM\Table(name: 'ward_beds')]
class WardBed
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
private $id;
#[ORM\OneToOne(targetEntity: Cases::class, inversedBy: 'wardBed', cascade: ['persist', 'remove'])]
#[ORM\JoinColumn(name: 'case_id', nullable: false)]
private $case;
#[ORM\ManyToOne(targetEntity: Ward::class), ORM\JoinColumn(nullable: false)]
private $ward;
#[ORM\OneToOne(targetEntity: DeliveryDetail::class, mappedBy: 'wardBed', cascade: ['persist', 'remove'])]
private $deliveryDetail;
#[ORM\Column(type: 'boolean')]
private bool $isSurgeryAdvised = false;
#[ORM\Column(type: 'boolean')]
private bool $isComplications = false;
#[ORM\Column(type: 'string', nullable: false, columnDefinition: "enum('Admitted', 'Discharged', 'Referred', 'Death of Patient')")]
private string $status = 'Admitted';
#[ORM\Column(type: 'string', length: 100, nullable: true)]
private $dischargeReason;
#[ORM\Column(type: 'boolean')]
private bool $isForPM = false;
#[ORM\Column(type: 'text', nullable: true)]
private $dischargeNote;
#[Gedmo\Timestampable(on: 'create'), ORM\Column(type: 'datetime')]
private $createdAt;
#[Gedmo\Timestampable(on: 'update'), ORM\Column(type: 'datetime')]
private $updatedAt;
public function getId(): ?int
{
return $this->id;
}
public function getCase(): ?Cases
{
return $this->case;
}
public function setCase(Cases $case): self
{
$this->case = $case;
return $this;
}
public function getWard(): ?Ward
{
return $this->ward;
}
public function setWard(?Ward $ward): self
{
$this->ward = $ward;
return $this;
}
public function getIsSurgeryAdvised(): ?bool
{
return $this->isSurgeryAdvised;
}
public function setIsSurgeryAdvised(bool $isSurgeryAdvised): self
{
$this->isSurgeryAdvised = $isSurgeryAdvised;
return $this;
}
public function getIsComplications(): ?bool
{
return $this->isComplications;
}
public function setIsComplications(bool $isComplications): self
{
$this->isComplications = $isComplications;
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(string $status): self
{
$this->status = $status;
return $this;
}
public function getDeliveryDetail(): ?DeliveryDetail
{
return $this->deliveryDetail;
}
public function setDeliveryDetail(DeliveryDetail $deliveryDetail): self
{
if ($deliveryDetail->getWardBed() !== $this) {
$deliveryDetail->setWardBed($this);
}
$this->deliveryDetail = $deliveryDetail;
return $this;
}
public function hasDelivery(): bool
{
return $this->getDeliveryDetail() ? true : false;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function getDischargeReason(): ?string
{
return $this->dischargeReason;
}
public function setDischargeReason(?string $dischargeReason): self
{
$this->dischargeReason = $dischargeReason;
return $this;
}
public function getIsForPM(): ?bool
{
return $this->isForPM;
}
public function setIsForPM(?bool $isForPM): self
{
$this->isForPM = $isForPM;
return $this;
}
public function getDischargeNote(): ?string
{
return $this->dischargeNote;
}
public function setDischargeNote(?string $dischargeNote): self
{
$this->dischargeNote = $dischargeNote;
return $this;
}
}