<?php
namespace App\Entity\Crm\Embed;
use App\Enum\Serialization\ProductSerializationGroups;
use App\Enum\Validation\OpportunityValidationGroups;
use App\Enum\Validation\PipelineValidationGroups;
use App\Enum\Validation\ProductValidationGroups;
use App\Enum\Validation\QuoteTemplateValidationGroups;
use App\Enum\Validation\QuoteValidationGroups;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation as Serial;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Embeddable]
class TextContent
{
#[ORM\Column(type: Types::STRING, length: 255, nullable: true)]
#[Assert\NotBlank(groups: [
ProductValidationGroups::CREATE,
ProductValidationGroups::UPDATE,
ProductValidationGroups::ACTIVE,
QuoteTemplateValidationGroups::CREATE,
QuoteTemplateValidationGroups::UPDATE,
QuoteTemplateValidationGroups::ACTIVE,
QuoteValidationGroups::UPDATE,
QuoteValidationGroups::PUBLISHED,
OpportunityValidationGroups::UPDATE_INFORMATION,
PipelineValidationGroups::CREATE,
])]
#[Assert\Length(min: 2, max: 255)]
#[Serial\Groups([ProductSerializationGroups::DETAIL])]
private ?string $label = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
#[Assert\NotBlank(groups: [
ProductValidationGroups::ACTIVE,
OpportunityValidationGroups::UPDATE_TRAINING,
])]
#[Assert\Length(max: 20000)]
#[Serial\Groups([ProductSerializationGroups::DETAIL])]
private ?string $description = null;
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(?string $label): static
{
$this->label = $label;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): static
{
$this->description = $description;
return $this;
}
}