<?php
declare(strict_types=1);
namespace Crea\MediaBundle\Entity;
use Crea\MediaBundle\Entity\Enum\MediaFamilyCodeEnum;
use Crea\MediaBundle\Repository\MediaFamilyRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Stringable;
/**
* @ORM\Entity(repositoryClass=MediaFamilyRepository::class)
*
* @ORM\Table(name="media_family")
*/
class MediaFamily implements Stringable, FileConstraintInterface, CodeIdentifiedInterface
{
/**
* @ORM\Id
*
* @ORM\GeneratedValue
*
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\Column(type="string", length=255)
*/
private ?string $label = null;
/**
* @ORM\Column(type="string", enumType=MediaFamilyCodeEnum::class, nullable=true, unique=true)
*/
private ?MediaFamilyCodeEnum $code = null;
/**
* Unit : Octet.
*
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $maxSize = null;
/**
* Unit : pixel.
*
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $maxDimention = null;
/**
* @var Collection<int, MediaType>
*
* @ORM\OneToMany(targetEntity=MediaType::class, mappedBy="mediaFamily")
*/
private Collection $mediaTypes;
public function __construct()
{
$this->mediaTypes = new ArrayCollection();
}
public function __toString(): string
{
return $this->label ?: 'MediaFamily - ('.$this->id.')';
}
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): MediaFamily
{
$this->id = $id;
return $this;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(?string $label): MediaFamily
{
$this->label = $label;
return $this;
}
public function getCode(): ?MediaFamilyCodeEnum
{
return $this->code;
}
public function setCode(?MediaFamilyCodeEnum $code): MediaFamily
{
$this->code = $code;
return $this;
}
public function getMaxSize(): ?int
{
return $this->maxSize;
}
public function setMaxSize(?int $maxSize): MediaFamily
{
$this->maxSize = $maxSize;
return $this;
}
public function getMaxDimention(): ?int
{
return $this->maxDimention;
}
public function setMaxDimention(?int $maxDimention): MediaFamily
{
$this->maxDimention = $maxDimention;
return $this;
}
/**
* @return Collection<int, MediaType>
*/
public function getMediaTypes(): Collection
{
return $this->mediaTypes;
}
public function addMediaType(MediaType $mediaType): self
{
if (!$this->mediaTypes->contains($mediaType)) {
$this->mediaTypes[] = $mediaType;
$mediaType->setMediaFamily($this);
}
return $this;
}
public function removeMediaType(MediaType $mediaType): self
{
if ($this->mediaTypes->removeElement($mediaType)) {
if ($mediaType->getMediaFamily() === $this) {
$mediaType->setMediaFamily(null);
}
}
return $this;
}
}