Spaces:
No application file
No application file
| namespace MauticPlugin\MauticFocusBundle\Entity; | |
| use Doctrine\ORM\Mapping as ORM; | |
| use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
| use Mautic\LeadBundle\Entity\Lead; | |
| class Stat | |
| { | |
| // Used for querying stats | |
| public const TYPE_FORM = 'submission'; | |
| public const TYPE_CLICK = 'click'; | |
| public const TYPE_NOTIFICATION = 'view'; | |
| /** | |
| * @var int | |
| */ | |
| private $id; | |
| /** | |
| * @var Focus | |
| */ | |
| private $focus; | |
| /** | |
| * @var string | |
| */ | |
| private $type; | |
| /** | |
| * @var int|null | |
| */ | |
| private $typeId; | |
| /** | |
| * @var \DateTimeInterface | |
| */ | |
| private $dateAdded; | |
| /** | |
| * @var ?Lead | |
| */ | |
| private $lead; | |
| public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
| { | |
| $builder = new ClassMetadataBuilder($metadata); | |
| $builder->setTable('focus_stats') | |
| ->setCustomRepositoryClass(StatRepository::class) | |
| ->addIndex(['type'], 'focus_type') | |
| ->addIndex(['type', 'type_id'], 'focus_type_id') | |
| ->addIndex(['date_added'], 'focus_date_added'); | |
| $builder->addId(); | |
| $builder->createManyToOne('focus', 'Focus') | |
| ->addJoinColumn('focus_id', 'id', false, false, 'CASCADE') | |
| ->build(); | |
| $builder->addField('type', 'string'); | |
| $builder->addNamedField('typeId', 'integer', 'type_id', true); | |
| $builder->addNamedField('dateAdded', 'datetime', 'date_added'); | |
| $builder->addLead(true, 'SET NULL'); | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getId() | |
| { | |
| return $this->id; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getFocus() | |
| { | |
| return $this->focus; | |
| } | |
| /** | |
| * @param mixed $focus | |
| * | |
| * @return Stat | |
| */ | |
| public function setFocus($focus) | |
| { | |
| $this->focus = $focus; | |
| return $this; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getType() | |
| { | |
| return $this->type; | |
| } | |
| /** | |
| * @param mixed $type | |
| * | |
| * @return Stat | |
| */ | |
| public function setType($type) | |
| { | |
| $this->type = $type; | |
| return $this; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getTypeId() | |
| { | |
| return $this->typeId; | |
| } | |
| /** | |
| * @param mixed $typeId | |
| * | |
| * @return Stat | |
| */ | |
| public function setTypeId($typeId) | |
| { | |
| $this->typeId = $typeId; | |
| return $this; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getDateAdded() | |
| { | |
| return $this->dateAdded; | |
| } | |
| /** | |
| * @param mixed $dateAdded | |
| * | |
| * @return Stat | |
| */ | |
| public function setDateAdded($dateAdded) | |
| { | |
| $this->dateAdded = $dateAdded; | |
| return $this; | |
| } | |
| /** | |
| * @return ?Lead | |
| */ | |
| public function getLead() | |
| { | |
| return $this->lead; | |
| } | |
| /** | |
| * @return Stat | |
| */ | |
| public function setLead(Lead $lead) | |
| { | |
| $this->lead = $lead; | |
| return $this; | |
| } | |
| } | |