<?php
declare(strict_types=1);
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*
* @ORM\Table(name="ps_feature_value")
*
* @ORM\Entity(repositoryClass="App\Repository\System\FeatureValueRepository")
*/
class FeatureValue
{
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string", length=30)
*/
private $reference;
/**
* @var Feature
*
* @ORM\ManyToOne(targetEntity="Feature")
*
* @ORM\JoinColumn(name="id_feature", referencedColumnName="id")
*/
private $feature;
/**
* @var Collection<int, FeatureValueLang>|FeatureValueLang[]
*
* @ORM\OneToMany(targetEntity="FeatureValueLang", mappedBy="featureValue")
*/
private $featureValueLangs;
public function __construct()
{
$this->featureValueLangs = new ArrayCollection();
}
public function getId(): int
{
return $this->id;
}
public function getReference(): string
{
return $this->reference;
}
public function setReference(string $reference): FeatureValue
{
$this->reference = $reference;
return $this;
}
public function getFeature(): Feature
{
return $this->feature;
}
public function setFeature(Feature $feature): FeatureValue
{
$this->feature = $feature;
return $this;
}
/**
* @return Collection<int, FeatureValueLang>|FeatureValueLang[]
*/
public function getFeatureValueLangs()
{
return $this->featureValueLangs;
}
/**
* @param Collection<int, FeatureValueLang>|FeatureValueLang[] $featureValueLangs
*/
public function setFeatureValueLangs($featureValueLangs): FeatureValue
{
$this->featureValueLangs = $featureValueLangs;
return $this;
}
/**
* @return Collection<string, FeatureValueLang>|array<string, FeatureValueLang>
*/
public function getTranslationsIndexedByIsoCode(): array
{
$translations = [];
foreach ($this->featureValueLangs as $translation) {
$isoCode = strtolower($translation->getLanguage()->getIsoCode());
$translations[$isoCode] = $translation;
}
return $translations;
}
}