<?phpnamespace App\Entity;use App\Repository\ExtraRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: ExtraRepository::class)]class Extra extends Product{ #[ORM\ManyToMany(targetEntity: Country::class)] private Collection $availableCountries; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $description = null; #[ORM\Column(nullable: true)] private ?float $minPrice = null; #[ORM\Column] private ?bool $active = null; #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)] private ?\DateTimeInterface $expireDate = null; #[ORM\ManyToOne] private ?ExtraType $extraType = null; #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $program = null; #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $included = null; #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $excluded = null; #[ORM\Column(length: 255, nullable: true)] private ?string $pricingNotes = null; #[ORM\Column(length: 255, nullable: true)] private ?string $subTitle = null; #[ORM\Column(length: 255, nullable: true)] private ?string $url = null; public function __construct() { parent::__construct(); $this->availableCountries = new ArrayCollection(); } public function getName(): ?string { return $this->name; } public function setName(string $name): static { $this->name = $name; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(string $description): static { $this->description = $description; return $this; } public function getMinPrice(): ?float { return $this->minPrice; } public function setMinPrice(float $minPrice): static { $this->minPrice = $minPrice; return $this; } public function __toString(): string { return $this->name; } public function getClass(): string { return "Extra"; } public function getIcon(): string { return "fe-box"; } public function isActive(): ?bool { return $this->active; } public function setActive(bool $active): static { $this->active = $active; return $this; } public function getExpireDate(): ?\DateTimeInterface { return $this->expireDate; } public function setExpireDate(\DateTimeInterface $expireDate): static { $this->expireDate = $expireDate; return $this; } public function getExtraType(): ?ExtraType { return $this->extraType; } public function setExtraType(?ExtraType $extraType): static { $this->extraType = $extraType; return $this; } /** * @return Collection<int, Country> */ public function getAvailableCountries(): Collection { return $this->availableCountries; } public function addAvailableCountry(Country $availableCountry): static { if (!$this->availableCountries->contains($availableCountry)) { $this->availableCountries->add($availableCountry); } return $this; } public function removeAvailableCountry(Country $availableCountry): static { $this->availableCountries->removeElement($availableCountry); return $this; } public function getProgram(): ?string { return $this->program; } public function setProgram(?string $program): static { $this->program = $program; return $this; } public function getIncluded(): ?string { return $this->included; } public function setIncluded(?string $included): static { $this->included = $included; return $this; } public function getExcluded(): ?string { return $this->excluded; } public function setExcluded(?string $excluded): static { $this->excluded = $excluded; return $this; } public function getPricingNotes(): ?string { return $this->pricingNotes; } public function setPricingNotes(?string $pricingNotes): static { $this->pricingNotes = $pricingNotes; return $this; } public function getSubTitle(): ?string { return $this->subTitle; } public function setSubTitle(?string $subTitle): static { $this->subTitle = $subTitle; return $this; } public function getUrl(): ?string { return $this->url; } public function setUrl(?string $url): static { $this->url = $url; return $this; }}