![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/LeadBundle/Entity/ |
<?php namespace Mautic\LeadBundle\Entity; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; /** * Store here contact events. */ class LeadEventLog { /** * @var string */ public const INDEX_SEARCH = 'IDX_SEARCH'; /** * @var string */ protected $id; /** * @var Lead|null */ protected $lead; /** * @var int|null */ protected $userId; /** * @var string|null */ protected $userName; /** * @var string|null */ protected $bundle; /** * @var string|null */ protected $object; /** * @var int|null */ protected $objectId; /** * @var string|null */ protected $action; /** * @var \DateTimeInterface */ protected $dateAdded; /** * @var array|null */ private $properties = []; public function __construct() { $this->setDateAdded(new \DateTime()); } public static function loadMetadata(ORM\ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('lead_event_log') ->setCustomRepositoryClass(LeadEventLogRepository::class) ->addIndex(['lead_id'], 'lead_id_index') ->addIndex(['object', 'object_id'], 'lead_object_index') ->addIndex(['bundle', 'object', 'action', 'object_id'], 'lead_timeline_index') ->addIndex(['bundle', 'object', 'action', 'object_id', 'date_added'], self::INDEX_SEARCH) ->addIndex(['action'], 'lead_timeline_action_index') ->addIndex(['date_added'], 'lead_date_added_index') ->addBigIntIdField() ->addNullableField('userId', Types::INTEGER, 'user_id') ->addNullableField('userName', Types::STRING, 'user_name') ->addNullableField('bundle', Types::STRING) ->addNullableField('object', Types::STRING) ->addNullableField('action', Types::STRING) ->addNullableField('objectId', Types::INTEGER, 'object_id') ->addNamedField('dateAdded', Types::DATETIME_MUTABLE, 'date_added') ->addNullableField('properties', Types::JSON); $builder->createManyToOne('lead', Lead::class) ->addJoinColumn('lead_id', 'id', true, false, 'CASCADE') ->inversedBy('eventLog') ->build(); } /** * Prepares the metadata for API usage. */ public static function loadApiMetadata(ApiMetadataDriver $metadata): void { $metadata->setGroupPrefix('import') ->addListProperties( [ 'id', 'leadId', 'userId', 'userName', 'bundle', 'object', 'action', 'objectId', 'dateAdded', 'properties', ] ) ->build(); } /** * Get id. */ public function getId(): int { return (int) $this->id; } /** * Set lead. * * @return LeadEventLog */ public function setLead(Lead $lead) { $this->lead = $lead; return $this; } /** * Get lead. * * @return Lead|null */ public function getLead() { return $this->lead; } /** * Set userId. * * @param int $userId * * @return LeadEventLog */ public function setUserId($userId) { $this->userId = $userId; return $this; } /** * Get userId. * * @return int */ public function getUserId() { return $this->userId; } /** * Set object. * * @param string $object * * @return LeadEventLog */ public function setObject($object) { $this->object = $object; return $this; } /** * Get object. * * @return string */ public function getObject() { return $this->object; } /** * Set objectId. * * @param int $objectId * * @return LeadEventLog */ public function setObjectId($objectId) { $this->objectId = $objectId; return $this; } /** * Get objectId. * * @return int */ public function getObjectId() { return $this->objectId; } /** * Set action. * * @param string $action * * @return LeadEventLog */ public function setAction($action) { $this->action = $action; return $this; } /** * Get action. * * @return string */ public function getAction() { return $this->action; } /** * Set properties. * * @return LeadEventLog */ public function setProperties(array $properties) { $this->properties = $properties; return $this; } /** * Set one property into the properties array. * * @param string $key * @param string $value * * @return LeadEventLog */ public function addProperty($key, $value) { $this->properties[$key] = $value; return $this; } /** * Get properties. * * @return array */ public function getProperties() { return $this->properties; } /** * Set dateAdded. * * @param \DateTime $dateAdded * * @return LeadEventLog */ public function setDateAdded($dateAdded) { $this->dateAdded = $dateAdded; return $this; } /** * Get dateAdded. * * @return \DateTimeInterface */ public function getDateAdded() { return $this->dateAdded; } /** * Set bundle. * * @param string $bundle * * @return LeadEventLog */ public function setBundle($bundle) { $this->bundle = $bundle; return $this; } /** * Get bundle. * * @return string */ public function getBundle() { return $this->bundle; } /** * Set userName. * * @param string $userName * * @return LeadEventLog */ public function setUserName($userName) { $this->userName = $userName; return $this; } /** * Get userName. * * @return string */ public function getUserName() { return $this->userName; } }