Initial commit: CloudOps infrastructure platform
This commit is contained in:
@@ -0,0 +1,934 @@
|
||||
<?php
|
||||
|
||||
namespace Mautic\LeadBundle\Entity;
|
||||
|
||||
use ApiPlatform\Metadata\ApiResource;
|
||||
use ApiPlatform\Metadata\Delete;
|
||||
use ApiPlatform\Metadata\Get;
|
||||
use ApiPlatform\Metadata\GetCollection;
|
||||
use ApiPlatform\Metadata\Patch;
|
||||
use ApiPlatform\Metadata\Post;
|
||||
use ApiPlatform\Metadata\Put;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver;
|
||||
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
|
||||
use Mautic\CoreBundle\Entity\CacheInvalidateInterface;
|
||||
use Mautic\CoreBundle\Entity\FormEntity;
|
||||
use Mautic\CoreBundle\Entity\UuidInterface;
|
||||
use Mautic\CoreBundle\Entity\UuidTrait;
|
||||
use Mautic\LeadBundle\Field\DTO\CustomFieldObject;
|
||||
use Mautic\LeadBundle\Form\Validator\Constraints\FieldAliasKeyword;
|
||||
use Mautic\LeadBundle\Validator\LeadFieldMinimumLength;
|
||||
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
use Symfony\Component\Serializer\Attribute\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||
use Symfony\Component\Validator\Mapping\ClassMetadata;
|
||||
|
||||
#[ApiResource(
|
||||
operations: [
|
||||
new GetCollection(security: "is_granted('lead:leads:viewown')"),
|
||||
new Post(security: "is_granted('lead:leads:create')"),
|
||||
new Get(security: "is_granted('lead:leads:viewown')"),
|
||||
new Put(security: "is_granted('lead:leads:editown')"),
|
||||
new Patch(security: "is_granted('lead:leads:editother')"),
|
||||
new Delete(security: "is_granted('lead:leads:deleteown')"),
|
||||
],
|
||||
normalizationContext: [
|
||||
'groups' => ['leadfield:read'],
|
||||
'swagger_definition_name' => 'Read',
|
||||
],
|
||||
denormalizationContext: [
|
||||
'groups' => ['leadfield:write'],
|
||||
'swagger_definition_name' => 'Write',
|
||||
]
|
||||
)]
|
||||
class LeadField extends FormEntity implements CacheInvalidateInterface, UuidInterface
|
||||
{
|
||||
use UuidTrait;
|
||||
|
||||
public const MAX_VARCHAR_LENGTH = 191;
|
||||
public const CACHE_NAMESPACE = 'LeadField';
|
||||
public const TYPES_SUPPORTING_LENGTH = [
|
||||
'text',
|
||||
'select',
|
||||
'phone',
|
||||
'url',
|
||||
'email',
|
||||
];
|
||||
public const ENTITY_NAME = 'lead_field';
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
#[Groups(['leadfield:read'])]
|
||||
private $id;
|
||||
|
||||
private bool $isCloned = false;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $label;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $alias;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $type = 'text';
|
||||
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $group = 'core';
|
||||
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $defaultValue;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isRequired = false;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isFixed = false;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isVisible = true;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isShortVisible = false;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isListable = true;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isPubliclyUpdatable = false;
|
||||
|
||||
/**
|
||||
* @var bool|null
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isUniqueIdentifer = false;
|
||||
|
||||
/**
|
||||
* Workaround for incorrectly spelled $isUniqueIdentifer.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $isUniqueIdentifier = false;
|
||||
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private ?int $charLengthLimit = 64;
|
||||
|
||||
/**
|
||||
* @var int|null
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $order = 1;
|
||||
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $object = 'lead';
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private $properties = [];
|
||||
|
||||
#[Groups(['leadfield:read', 'leadfield:write'])]
|
||||
private bool $isIndex = false;
|
||||
|
||||
/**
|
||||
* The column in lead_fields table was not created yet if this property is true.
|
||||
* Entity cannot be published and we cannot work with it until column is created.
|
||||
*/
|
||||
#[Groups(['leadfield:read'])]
|
||||
private bool $columnIsNotCreated = false;
|
||||
|
||||
/**
|
||||
* The column in lead_fields table was not removed yet if this property is true.
|
||||
*/
|
||||
#[Groups(['leadfield:read'])]
|
||||
private bool $columnIsNotRemoved = false;
|
||||
|
||||
/**
|
||||
* This property contains an original value for $isPublished.
|
||||
* $isPublished is always set on false if $columnIsNotCreated is true.
|
||||
*/
|
||||
#[Groups(['leadfield:read'])]
|
||||
private bool $originalIsPublishedValue = false;
|
||||
|
||||
/**
|
||||
* @var CustomFieldObject
|
||||
*/
|
||||
private $customFieldObject;
|
||||
|
||||
public function __clone()
|
||||
{
|
||||
$this->id = null;
|
||||
$this->isCloned = true;
|
||||
$this->order = 0;
|
||||
$this->isFixed = false;
|
||||
|
||||
parent::__clone();
|
||||
}
|
||||
|
||||
public static function loadMetadata(ORM\ClassMetadata $metadata): void
|
||||
{
|
||||
$builder = new ClassMetadataBuilder($metadata);
|
||||
$builder->addLifecycleEvent('identifierWorkaround', 'postLoad');
|
||||
|
||||
$builder->setTable('lead_fields')
|
||||
->setCustomRepositoryClass(LeadFieldRepository::class)
|
||||
->addIndex(['object', 'field_order', 'is_published'], 'idx_object_field_order_is_published');
|
||||
|
||||
$builder->addId();
|
||||
|
||||
$builder->addField('label', 'string');
|
||||
|
||||
$builder->addField('alias', 'string');
|
||||
|
||||
$builder->createField('type', 'string')
|
||||
->length(50)
|
||||
->build();
|
||||
|
||||
$builder->createField('group', 'string')
|
||||
->columnName('field_group')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('defaultValue', 'string')
|
||||
->columnName('default_value')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('isRequired', 'boolean')
|
||||
->columnName('is_required')
|
||||
->build();
|
||||
|
||||
$builder->createField('isFixed', 'boolean')
|
||||
->columnName('is_fixed')
|
||||
->build();
|
||||
|
||||
$builder->createField('isVisible', 'boolean')
|
||||
->columnName('is_visible')
|
||||
->build();
|
||||
|
||||
$builder->createField('isShortVisible', 'boolean')
|
||||
->columnName('is_short_visible')
|
||||
->nullable(false)
|
||||
->option('default', false)
|
||||
->build();
|
||||
|
||||
$builder->createField('isListable', 'boolean')
|
||||
->columnName('is_listable')
|
||||
->build();
|
||||
|
||||
$builder->createField('isPubliclyUpdatable', 'boolean')
|
||||
->columnName('is_publicly_updatable')
|
||||
->build();
|
||||
|
||||
$builder->addNullableField('isUniqueIdentifer', 'boolean', 'is_unique_identifer');
|
||||
|
||||
$builder->createField('isIndex', 'boolean')
|
||||
->columnName('is_index')
|
||||
->option('default', false)
|
||||
->nullable(false)
|
||||
->build();
|
||||
|
||||
$builder->createField('charLengthLimit', 'integer')
|
||||
->columnName('char_length_limit')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('order', 'integer')
|
||||
->columnName('field_order')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('object', 'string')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('properties', 'array')
|
||||
->nullable()
|
||||
->build();
|
||||
|
||||
$builder->createField('columnIsNotCreated', 'boolean')
|
||||
->columnName('column_is_not_created')
|
||||
->option('default', false)
|
||||
->build();
|
||||
|
||||
$builder->createField('columnIsNotRemoved', Types::BOOLEAN)
|
||||
->columnName('column_is_not_removed')
|
||||
->option('default', false)
|
||||
->build();
|
||||
|
||||
$builder->createField('originalIsPublishedValue', 'boolean')
|
||||
->columnName('original_is_published_value')
|
||||
->option('default', false)
|
||||
->build();
|
||||
|
||||
static::addUuidField($builder);
|
||||
}
|
||||
|
||||
public static function loadValidatorMetadata(ClassMetadata $metadata): void
|
||||
{
|
||||
$metadata->addPropertyConstraint('label', new Assert\NotBlank(
|
||||
['message' => 'mautic.lead.field.label.notblank']
|
||||
));
|
||||
|
||||
$metadata->addPropertyConstraint('label', new Assert\Length([
|
||||
'max' => 191,
|
||||
'maxMessage' => 'mautic.lead.field.label.maxlength',
|
||||
]));
|
||||
|
||||
$metadata->addConstraint(new UniqueEntity([
|
||||
'fields' => ['alias'],
|
||||
'message' => 'mautic.lead.field.alias.unique',
|
||||
]));
|
||||
|
||||
$metadata->addConstraint(new Assert\Callback(
|
||||
function (LeadField $field, ExecutionContextInterface $context): void {
|
||||
$violations = $context->getValidator()->validate($field, [new FieldAliasKeyword()]);
|
||||
|
||||
if ($violations->count() > 0) {
|
||||
$context->buildViolation($violations->get(0)->getMessage())
|
||||
->atPath('alias')
|
||||
->addViolation();
|
||||
}
|
||||
},
|
||||
));
|
||||
|
||||
$metadata->addConstraint(new LeadFieldMinimumLength());
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the metadata for API usage.
|
||||
*/
|
||||
public static function loadApiMetadata(ApiMetadataDriver $metadata): void
|
||||
{
|
||||
$metadata->setGroupPrefix('leadField')
|
||||
->addListProperties(
|
||||
[
|
||||
'id',
|
||||
'label',
|
||||
'alias',
|
||||
'type',
|
||||
'group',
|
||||
'order',
|
||||
'object',
|
||||
]
|
||||
)
|
||||
->addProperties(
|
||||
[
|
||||
'defaultValue',
|
||||
'isRequired',
|
||||
'isFixed',
|
||||
'isListable',
|
||||
'isVisible',
|
||||
'isVisible',
|
||||
'isShortVisible',
|
||||
'isUniqueIdentifier',
|
||||
'isPubliclyUpdatable',
|
||||
'properties',
|
||||
'isIndex',
|
||||
'charLengthLimit',
|
||||
]
|
||||
)
|
||||
->build();
|
||||
}
|
||||
|
||||
public function setId(?int $id = null): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getIsCloned(): bool
|
||||
{
|
||||
return $this->isCloned;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set label.
|
||||
*
|
||||
* @param string $label
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setLabel($label)
|
||||
{
|
||||
$this->isChanged('label', $label);
|
||||
$this->label = $label;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get label.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLabel()
|
||||
{
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy function to setLabel().
|
||||
*
|
||||
* @param string $label
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setName($label)
|
||||
{
|
||||
$this->isChanged('label', $label);
|
||||
|
||||
return $this->setLabel($label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy function for getLabel().
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->getLabel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set type.
|
||||
*
|
||||
* @param string $type
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
$this->isChanged('type', $type);
|
||||
$this->type = $type;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get type.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set defaultValue.
|
||||
*
|
||||
* @param string|array<string> $defaultValue
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setDefaultValue($defaultValue)
|
||||
{
|
||||
$defaultValue = is_array($defaultValue) ? implode('|', $defaultValue) : $defaultValue;
|
||||
$this->isChanged('defaultValue', $defaultValue);
|
||||
$this->defaultValue = $defaultValue;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get defaultValue.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDefaultValue()
|
||||
{
|
||||
return $this->defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isRequired.
|
||||
*
|
||||
* @param bool $isRequired
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsRequired($isRequired)
|
||||
{
|
||||
$this->isChanged('isRequired', $isRequired);
|
||||
$this->isRequired = $isRequired;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isRequired.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsRequired()
|
||||
{
|
||||
return $this->isRequired;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy to getIsRequired().
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isRequired()
|
||||
{
|
||||
return $this->getIsRequired();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isFixed.
|
||||
*
|
||||
* @param bool $isFixed
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsFixed($isFixed)
|
||||
{
|
||||
$this->isFixed = $isFixed;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isFixed.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsFixed()
|
||||
{
|
||||
return $this->isFixed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy to getIsFixed().
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isFixed()
|
||||
{
|
||||
return $this->getIsFixed();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed[] $properties
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setProperties($properties)
|
||||
{
|
||||
$this->isChanged('properties', $properties);
|
||||
$this->properties = $properties;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed[]
|
||||
*/
|
||||
public function getProperties()
|
||||
{
|
||||
return $this->properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set order.
|
||||
*
|
||||
* @param int $order
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setOrder($order)
|
||||
{
|
||||
$this->isChanged('order', $order);
|
||||
$this->order = $order;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get object.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getObject()
|
||||
{
|
||||
return $this->object;
|
||||
}
|
||||
|
||||
public function setCharLengthLimit(?int $charLengthLimit): LeadField
|
||||
{
|
||||
$this->isChanged('charLengthLimit', $charLengthLimit);
|
||||
$this->charLengthLimit = $charLengthLimit;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCharLengthLimit(): ?int
|
||||
{
|
||||
return $this->charLengthLimit;
|
||||
}
|
||||
|
||||
public function getCustomFieldObject(): string
|
||||
{
|
||||
if (!$this->customFieldObject) {
|
||||
$this->customFieldObject = new CustomFieldObject($this);
|
||||
}
|
||||
|
||||
return $this->customFieldObject->getObject();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object.
|
||||
*
|
||||
* @param string $object
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setObject($object)
|
||||
{
|
||||
$this->isChanged('object', $object);
|
||||
$this->object = $object;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get order.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getOrder()
|
||||
{
|
||||
return $this->order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isVisible.
|
||||
*
|
||||
* @param bool $isVisible
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsVisible($isVisible)
|
||||
{
|
||||
$this->isChanged('isVisible', $isVisible);
|
||||
$this->isVisible = $isVisible;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isVisible.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsVisible()
|
||||
{
|
||||
return $this->isVisible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy to getIsVisible().
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isVisible()
|
||||
{
|
||||
return $this->getIsVisible();
|
||||
}
|
||||
|
||||
public function setIsShortVisible(?bool $isShortVisible): self
|
||||
{
|
||||
$isShortVisible = $isShortVisible ?? false;
|
||||
$this->isChanged('isShortVisible', $isShortVisible);
|
||||
$this->isShortVisible = $isShortVisible;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isShortVisible.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsShortVisible()
|
||||
{
|
||||
return $this->isShortVisible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy to getIsShortVisible().
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isShortVisible()
|
||||
{
|
||||
return $this->getIsShortVisible();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the unique identifer state of the field.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsUniqueIdentifer()
|
||||
{
|
||||
return $this->isUniqueIdentifer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the unique identifer state of the field.
|
||||
*
|
||||
* @param mixed $isUniqueIdentifer
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsUniqueIdentifer($isUniqueIdentifer)
|
||||
{
|
||||
if ($isUniqueIdentifer) {
|
||||
$this->isIndex = true;
|
||||
}
|
||||
|
||||
$this->isUniqueIdentifer = $this->isUniqueIdentifier = $isUniqueIdentifer;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for incorrectly spelled setIsUniqueIdentifer.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsUniqueIdentifier()
|
||||
{
|
||||
return $this->getIsUniqueIdentifer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for incorrectly spelled setIsUniqueIdentifer.
|
||||
*
|
||||
* @param mixed $isUniqueIdentifier
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsUniqueIdentifier($isUniqueIdentifier)
|
||||
{
|
||||
return $this->setIsUniqueIdentifer($isUniqueIdentifier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set alias.
|
||||
*
|
||||
* @param string $alias
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setAlias($alias)
|
||||
{
|
||||
$this->isChanged('alias', $alias);
|
||||
$this->alias = $alias;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get alias.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAlias()
|
||||
{
|
||||
return $this->alias;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isListable.
|
||||
*
|
||||
* @param bool $isListable
|
||||
*
|
||||
* @return LeadField
|
||||
*/
|
||||
public function setIsListable($isListable)
|
||||
{
|
||||
$this->isChanged('isListable', $isListable);
|
||||
$this->isListable = $isListable;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isListable.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsListable()
|
||||
{
|
||||
return $this->isListable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy to getIsListable().
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isListable()
|
||||
{
|
||||
return $this->getIsListable();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getGroup()
|
||||
{
|
||||
return $this->group;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $group
|
||||
*/
|
||||
public function setGroup($group): void
|
||||
{
|
||||
$this->group = $group;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getIsPubliclyUpdatable()
|
||||
{
|
||||
return $this->isPubliclyUpdatable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $isPubliclyUpdatable
|
||||
*/
|
||||
public function setIsPubliclyUpdatable($isPubliclyUpdatable): void
|
||||
{
|
||||
$this->isPubliclyUpdatable = (bool) $isPubliclyUpdatable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Workaround for mispelled isUniqueIdentifer.
|
||||
*/
|
||||
public function identifierWorkaround(): void
|
||||
{
|
||||
$this->isUniqueIdentifier = $this->isUniqueIdentifer;
|
||||
}
|
||||
|
||||
public function isNew(): bool
|
||||
{
|
||||
return $this->getId() ? false : true;
|
||||
}
|
||||
|
||||
public function getColumnIsNotCreated(): bool
|
||||
{
|
||||
return $this->columnIsNotCreated;
|
||||
}
|
||||
|
||||
public function getColumnIsNotRemoved(): bool
|
||||
{
|
||||
return $this->columnIsNotRemoved;
|
||||
}
|
||||
|
||||
public function setColumnIsNotCreated(): void
|
||||
{
|
||||
$this->columnIsNotCreated = true;
|
||||
$this->originalIsPublishedValue = $this->getIsPublished();
|
||||
$this->setIsPublished(false);
|
||||
}
|
||||
|
||||
public function setColumnIsNotRemoved(): void
|
||||
{
|
||||
$this->columnIsNotRemoved = true;
|
||||
$this->setIsPublished(false);
|
||||
}
|
||||
|
||||
public function setColumnWasCreated(): void
|
||||
{
|
||||
$this->columnIsNotCreated = false;
|
||||
$this->setIsPublished($this->getOriginalIsPublishedValue());
|
||||
}
|
||||
|
||||
public function disablePublishChange(): bool
|
||||
{
|
||||
return 'email' === $this->getAlias() || $this->getColumnIsNotCreated() || $this->getColumnIsNotRemoved();
|
||||
}
|
||||
|
||||
public function getOriginalIsPublishedValue(): bool
|
||||
{
|
||||
return (bool) $this->originalIsPublishedValue;
|
||||
}
|
||||
|
||||
public function getCacheNamespacesToDelete(): array
|
||||
{
|
||||
return [self::CACHE_NAMESPACE];
|
||||
}
|
||||
|
||||
public function isIsIndex(): bool
|
||||
{
|
||||
return $this->isIndex;
|
||||
}
|
||||
|
||||
public function setIsIndex(?bool $indexable): void
|
||||
{
|
||||
$this->isIndex = $indexable ?? false;
|
||||
}
|
||||
|
||||
public function supportsLength(): bool
|
||||
{
|
||||
return in_array($this->type, self::TYPES_SUPPORTING_LENGTH);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user