<?php declare(strict_types=1);
namespace App\Entity;
use App\Repository\AnalysisServicePriceModifierRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
#[ORM\Table]
#[ORM\Entity(repositoryClass: AnalysisServicePriceModifierRepository::class)]
class AnalysisServicePriceModifier
{
use TimestampableEntity;
public const string SURCHARGE_ABSOLUT = 'absolute';
public const string SURCHARGE_PERCENTAGE = 'percentage';
public const string TYPE_STACK = 'stack';
public const string TYPE_MODIFIER = 'modifier';
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private int $id;
#[ORM\ManyToOne(targetEntity: AnalysisServicePrice::class, inversedBy: 'modifier')]
private AnalysisServicePrice $price;
#[ORM\Column(type: 'string')]
private string $surchargeType = self::SURCHARGE_ABSOLUT;
#[ORM\Column(type: 'string')]
private string $type = self::TYPE_STACK;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $deliveryInDays = null;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $stack = null;
#[ORM\Column(type: 'float', nullable: true)]
private ?float $surcharge = null;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): AnalysisServicePriceModifier
{
$this->id = $id;
return $this;
}
public function getPrice(): AnalysisServicePrice
{
return $this->price;
}
public function setPrice(AnalysisServicePrice $price): AnalysisServicePriceModifier
{
$this->price = $price;
return $this;
}
public function getSurchargeType(): string
{
return $this->surchargeType;
}
public function setSurchargeType(string $surchargeType): AnalysisServicePriceModifier
{
$this->surchargeType = $surchargeType;
return $this;
}
public function getType(): string
{
return $this->type;
}
public function setType(string $type): AnalysisServicePriceModifier
{
$this->type = $type;
return $this;
}
public function getDeliveryInDays(): ?int
{
return $this->deliveryInDays;
}
public function setDeliveryInDays(?int $deliveryInDays): AnalysisServicePriceModifier
{
$this->deliveryInDays = $deliveryInDays;
return $this;
}
public function getStack(): ?int
{
return $this->stack;
}
public function setStack(?int $stack): AnalysisServicePriceModifier
{
$this->stack = $stack;
return $this;
}
public function getSurcharge(): ?float
{
return $this->surcharge;
}
public function setSurcharge(?float $surcharge): AnalysisServicePriceModifier
{
$this->surcharge = $surcharge;
return $this;
}
}