Add tags entities

[MAILPOET-4440]
This commit is contained in:
Jan Lysý
2022-06-16 16:17:15 +02:00
committed by Veljko V
parent 2a74f92e10
commit 40912185fe
3 changed files with 120 additions and 0 deletions

View File

@@ -168,9 +168,16 @@ class SubscriberEntity {
*/ */
private $subscriberCustomFields; private $subscriberCustomFields;
/**
* @ORM\OneToMany(targetEntity="MailPoet\Entities\SubscriberTagEntity", mappedBy="subscriber", orphanRemoval=true)
* @var Collection<int, SubscriberTagEntity>
*/
private $subscriberTags;
public function __construct() { public function __construct() {
$this->subscriberSegments = new ArrayCollection(); $this->subscriberSegments = new ArrayCollection();
$this->subscriberCustomFields = new ArrayCollection(); $this->subscriberCustomFields = new ArrayCollection();
$this->subscriberTags = new ArrayCollection();
} }
/** /**
@@ -446,6 +453,13 @@ class SubscriberEntity {
return $this->subscriberCustomFields; return $this->subscriberCustomFields;
} }
/**
* @return Collection<int, SubscriberTagEntity>
*/
public function getSubscriberTags() {
return $this->subscriberTags;
}
/** /**
* @return float|null * @return float|null
*/ */

View File

@@ -0,0 +1,50 @@
<?php declare(strict_types = 1);
namespace MailPoet\Entities;
use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
use MailPoet\Doctrine\EntityTraits\CreatedAtTrait;
use MailPoet\Doctrine\EntityTraits\SafeToOneAssociationLoadTrait;
use MailPoet\Doctrine\EntityTraits\UpdatedAtTrait;
use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="subscriber_tag")
*/
class SubscriberTagEntity {
use AutoincrementedIdTrait;
use CreatedAtTrait;
use UpdatedAtTrait;
use SafeToOneAssociationLoadTrait;
/**
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\TagEntity")
* @var TagEntity|null
*/
private $tag;
/**
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity", inversedBy="subscriberTags")
* @var SubscriberEntity|null
*/
private $subscriber;
public function __construct(
TagEntity $tag,
SubscriberEntity $subscriber
) {
$this->tag = $tag;
$this->subscriber = $subscriber;
}
public function getTag(): ?TagEntity {
$this->safelyLoadToOneAssociation('tag');
return $this->tag;
}
public function getSubscriber(): ?SubscriberEntity {
$this->safelyLoadToOneAssociation('subscriber');
return $this->subscriber;
}
}

View File

@@ -0,0 +1,56 @@
<?php declare(strict_types = 1);
namespace MailPoet\Entities;
use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
use MailPoet\Doctrine\EntityTraits\CreatedAtTrait;
use MailPoet\Doctrine\EntityTraits\UpdatedAtTrait;
use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
use MailPoetVendor\Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity()
* @ORM\Table(name="tags")
*/
class TagEntity {
use AutoincrementedIdTrait;
use CreatedAtTrait;
use UpdatedAtTrait;
/**
* @ORM\Column(type="string")
* @Assert\NotBlank()
* @var string
*/
private $name;
/**
* @ORM\Column(type="string")
* @var string
*/
private $description;
public function __construct(
string $name,
string $description = ''
) {
$this->name = $name;
$this->description = $description;
}
public function getName(): string {
return $this->name;
}
public function setName(string $name): void {
$this->name = $name;
}
public function getDescription(): string {
return $this->description;
}
public function setDescription(string $description): void {
$this->description = $description;
}
}