<?php
declare(strict_types=1);
namespace App\Shop\Doctrine\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\Table;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\NotEqualTo;
use Symfony\Component\Validator\Constraints\Regex;
#[Entity]
#[Table(name: '`shop_feature`')]
#[UniqueEntity('code')]
class Feature
{
#[Id]
#[Column(type: 'integer')]
#[GeneratedValue]
#[Groups(['product'])]
private ?int $id = null;
#[Column(unique: true)]
#[NotBlank]
#[NotEqualTo(value: 'id')]
#[NotEqualTo(value: 'name')]
#[NotEqualTo(value: 'description')]
#[NotEqualTo(value: 'thumbnail')]
#[NotEqualTo(value: 'images')]
#[NotEqualTo(value: 'taxonomy')]
#[NotEqualTo(value: 'brand')]
#[Regex(pattern: '/^[a-z-]+$/')]
#[Groups(['product'])]
private string $code;
#[Column]
#[NotBlank]
#[Groups(['product'])]
private string $name;
#[Column(type: 'feature_type')]
#[Groups(['product'])]
private FeatureType $featureType;
public function getId(): ?int
{
return $this->id;
}
public function getCode(): string
{
return $this->code;
}
public function setCode(string $code): void
{
$this->code = $code;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name): void
{
$this->name = $name;
}
public function getFeatureType(): FeatureType
{
return $this->featureType;
}
public function setFeatureType(FeatureType $featureType): void
{
$this->featureType = $featureType;
}
}