Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\PointBundle\Entity; | |
| 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\CommonEntity; | |
| use Mautic\LeadBundle\Entity\Lead; | |
| class GroupContactScore extends CommonEntity | |
| { | |
| public const TABLE_NAME = 'point_group_contact_score'; | |
| private Lead $contact; | |
| private Group $group; | |
| private int $score; | |
| public function __construct() | |
| { | |
| $this->contact = new Lead(); | |
| $this->group = new Group(); | |
| $this->score = 0; | |
| } | |
| /** | |
| * @param ORM\ClassMetadata<GroupContactScore> $metadata | |
| */ | |
| public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
| { | |
| $builder = new ClassMetadataBuilder($metadata); | |
| $builder->setTable(self::TABLE_NAME) | |
| ->setCustomRepositoryClass(GroupContactScoreRepository::class); | |
| $builder->addContact(false, 'CASCADE', true, 'groupScores'); | |
| $builder->createManyToOne('group', Group::class) | |
| ->isPrimaryKey() | |
| ->addJoinColumn('group_id', 'id', true, false, 'CASCADE') | |
| ->build(); | |
| $builder->createField('score', Types::INTEGER) | |
| ->build(); | |
| } | |
| public static function loadApiMetadata(ApiMetadataDriver $metadata): void | |
| { | |
| $metadata->setGroupPrefix('groupContactScore') | |
| ->addListProperties( | |
| [ | |
| 'score', | |
| 'group', | |
| ] | |
| ) | |
| ->addProperties( | |
| [ | |
| 'score', | |
| 'group', | |
| ] | |
| ) | |
| ->build(); | |
| } | |
| public function getContact(): Lead | |
| { | |
| return $this->contact; | |
| } | |
| public function setContact(Lead $contact): void | |
| { | |
| $this->contact = $contact; | |
| } | |
| public function getGroup(): Group | |
| { | |
| return $this->group; | |
| } | |
| public function setGroup(Group $group): void | |
| { | |
| $this->group = $group; | |
| } | |
| public function getScore(): int | |
| { | |
| return $this->score; | |
| } | |
| public function setScore(int $score): void | |
| { | |
| $this->score = $score; | |
| } | |
| } | |