Spaces:
No application file
No application file
File size: 2,315 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
<?php
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;
}
}
|