<?php
namespace App\Entity;
use App\Repository\PurchaseRequestHistoriesRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass=PurchaseRequestHistoriesRepository::class)
*/
class PurchaseRequestHistories
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @Groups({
* "purchase_request_history:core"
* })
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=PurchaseRequest::class, inversedBy="purchase_request_histories")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private $purchase_request;
/**
* @ORM\ManyToOne(targetEntity=PurchaseRequestStatus::class, inversedBy="purchase_request_histories")
* @Groups({
* "purchase_request_history:status"
* })
*/
private $status;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({
* "purchase_request_history:core"
* })
*/
private $reason;
/**
* @ORM\Column(type="datetime_immutable")
* @Groups({
* "purchase_request_history:core"
* })
*/
private $created_at;
/**
* @ORM\OneToMany(targetEntity=PurchaseRequestHistoryRead::class, mappedBy="purchase_request_history", cascade={"persist", "remove"})
* @Groups({
* "purchase_request_history:reads"
* })
*/
private $purchase_request_history_reads;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="purchaseRequestHistories")
* @ORM\JoinColumn(nullable=false)
* @Groups({
* "purchase_request_history:owner"
* })
*/
private $owner;
/**
* @ORM\Column(type="purchase_request_view_mode_type", nullable=true)
* @Groups({
* "purchase_request_history:core"
* })
*/
private $sender_mode;
public function __construct()
{
$this->purchase_request_history_reads = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getPurchaseRequest(): ?PurchaseRequest
{
return $this->purchase_request;
}
public function setPurchaseRequest(?PurchaseRequest $purchase_request): self
{
#dd($purchase_request);
$this->purchase_request = $purchase_request;
return $this;
}
public function getStatus(): ?PurchaseRequestStatus
{
return $this->status;
}
public function setStatus(?PurchaseRequestStatus $status): self
{
$this->status = $status;
return $this;
}
public function getReason(): ?string
{
return $this->reason;
}
public function setReason(?string $reason): self
{
$this->reason = $reason;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeImmutable $created_at): self
{
$this->created_at = $created_at;
return $this;
}
/**
* @return Collection<int, PurchaseRequestHistoryRead>
*/
public function getPurchaseRequestHistoryReads(): Collection
{
return $this->purchase_request_history_reads;
}
public function addPurchaseRequestHistoryRead(PurchaseRequestHistoryRead $purchaseRequestHistoryRead): self
{
if (!$this->purchase_request_history_reads->contains($purchaseRequestHistoryRead)) {
$this->purchase_request_history_reads[] = $purchaseRequestHistoryRead;
$purchaseRequestHistoryRead->setPurchaseRequestHistory($this);
}
return $this;
}
public function removePurchaseRequestHistoryRead(PurchaseRequestHistoryRead $purchaseRequestHistoryRead): self
{
if ($this->purchase_request_history_reads->removeElement($purchaseRequestHistoryRead)) {
// set the owning side to null (unless already changed)
if ($purchaseRequestHistoryRead->getPurchaseRequestHistory() === $this) {
$purchaseRequestHistoryRead->setPurchaseRequestHistory(null);
}
}
return $this;
}
public function getOwner(): ?User
{
return $this->owner;
}
public function setOwner(?User $owner): self
{
$this->owner = $owner;
return $this;
}
public function getSenderMode()
{
return $this->sender_mode;
}
public function setSenderMode($sender_mode): self
{
$this->sender_mode = $sender_mode;
return $this;
}
}