<?php declare(strict_types=1);namespace App\Entity;use App\Repository\OrderRequestRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Gedmo\Timestampable\Traits\TimestampableEntity;#[ORM\Table]#[ORM\Index(columns: ['service_id'], name: 'service_id')]#[ORM\Entity(repositoryClass: OrderRequestRepository::class)]class OrderRequestLineItem{ use TimestampableEntity; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private int $id; #[ORM\ManyToOne(targetEntity: OrderRequestLineItem::class, inversedBy: 'abilities')] private ?OrderRequestLineItem $parent; #[ORM\OneToMany(mappedBy: 'parent', targetEntity: OrderRequestLineItem::class, cascade: ['all'])] private iterable $abilities; #[ORM\Column(type: 'string')] private string $serviceId; #[ORM\Column(type: 'string')] private string $serviceName; #[ORM\Column(type: 'integer')] private int $quantity; #[ORM\Column(type: 'float')] private float $price; #[ORM\Column(type: 'string', nullable: true)] private ?string $surchargeType; #[ORM\Column(type: 'float', nullable: true)] private ?float $surchargeValue; #[ORM\Column(type: 'integer', nullable: true)] private ?int $surchargeDays; #[ORM\ManyToOne(targetEntity: OrderRequest::class, inversedBy: 'lineItems')] private OrderRequest $order; public function __construct() { $this->abilities = new ArrayCollection(); } public function getId(): int { return $this->id; } public function setId(int $id): OrderRequestLineItem { $this->id = $id; return $this; } public function getParent(): ?OrderRequestLineItem { return $this->parent; } public function setParent(?OrderRequestLineItem $parent): OrderRequestLineItem { $this->parent = $parent; return $this; } public function getServiceId(): string { return $this->serviceId; } public function setServiceId(string $serviceId): OrderRequestLineItem { $this->serviceId = $serviceId; return $this; } public function getServiceName(): string { return $this->serviceName; } public function setServiceName(string $serviceName): OrderRequestLineItem { $this->serviceName = $serviceName; return $this; } public function getQuantity(): int { return $this->quantity; } public function setQuantity(int $quantity): OrderRequestLineItem { $this->quantity = $quantity; return $this; } public function getPrice(): float { return $this->price; } public function setPrice(float $price): OrderRequestLineItem { $this->price = $price; return $this; } public function getOrder(): OrderRequest { return $this->order; } public function setOrder(OrderRequest $order): OrderRequestLineItem { $this->order = $order; return $this; } public function getAbilities(): Collection { return $this->abilities; } public function getSurchargeType(): ?string { return $this->surchargeType; } public function setSurchargeType(?string $surchargeType): OrderRequestLineItem { $this->surchargeType = $surchargeType; return $this; } public function getSurchargeValue(): ?float { return $this->surchargeValue; } public function setSurchargeValue(?float $surchargeValue): OrderRequestLineItem { $this->surchargeValue = $surchargeValue; return $this; } public function getSurchargeDays(): ?int { return $this->surchargeDays; } public function setSurchargeDays(?int $surchargeDays): OrderRequestLineItem { $this->surchargeDays = $surchargeDays; return $this; }}