<?phpnamespace App\Entity;use App\Repository\MarkupRuleRepository;use Doctrine\ORM\Mapping as ORM;use Gedmo\Timestampable\Traits\TimestampableEntity;#[ORM\InheritanceType('JOINED')]#[ORM\DiscriminatorColumn(name: "dtype", type: "string")]#[ORM\DiscriminatorMap( [ 'basic' => MarkupBasic::class, 'price' => MarkupPrice::class, 'seat' => MarkupSeat::class, 'fareClass' => MarkupFareClass::class, 'airline' => MarkupAirline::class, ])]#[ORM\Entity(repositoryClass: MarkupRuleRepository::class)]class MarkupRule{ use TimestampableEntity; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private ?int $id = null; #[ORM\Column] private ?float $value; #[ORM\Column] private ?int $type; #[ORM\ManyToOne(inversedBy: 'rules')] private ?MarkupStrategy $markupStrategy = null; #[ORM\Column(type: 'integer', nullable: true, options: ['default' => 0])] private ?int $priority = 0; public function __construct() { $this->value = 0; $this->type = 0; } public function getPriority(): ?int { return $this->priority; } public function setPriority(?int $priority): static { $this->priority = $priority; return $this; } public function getId(): ?int { return $this->id; } public function getValue(): ?float { return $this->value; } public function setValue(?float $value): self { $this->value = $value; return $this; } public function getType(): ?int { return $this->type; } public function setType(?int $type): self { $this->type = $type; return $this; } public function getMarkupStrategy(): ?MarkupStrategy { return $this->markupStrategy; } public function setMarkupStrategy(?MarkupStrategy $markupStrategy): static { $this->markupStrategy = $markupStrategy; return $this; } public function __toString(): string { return $this->name ?? ' '; } public function getClass() : string { return "MarkupRule"; }}