Нет описания

StatisticsClickEntity.php 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace MailPoet\Entities;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
  5. use MailPoet\Doctrine\EntityTraits\CreatedAtTrait;
  6. use MailPoet\Doctrine\EntityTraits\SafeToOneAssociationLoadTrait;
  7. use MailPoet\Doctrine\EntityTraits\UpdatedAtTrait;
  8. use MailPoetVendor\Doctrine\Common\Collections\ArrayCollection;
  9. use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
  10. /**
  11. * @ORM\Entity()
  12. * @ORM\Table(name="statistics_clicks")
  13. */
  14. class StatisticsClickEntity {
  15. use AutoincrementedIdTrait;
  16. use CreatedAtTrait;
  17. use UpdatedAtTrait;
  18. use SafeToOneAssociationLoadTrait;
  19. /**
  20. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
  21. * @ORM\JoinColumn(name="newsletter_id", referencedColumnName="id")
  22. * @var NewsletterEntity|null
  23. */
  24. private $newsletter;
  25. /**
  26. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SendingQueueEntity")
  27. * @ORM\JoinColumn(name="queue_id", referencedColumnName="id")
  28. * @var SendingQueueEntity|null
  29. */
  30. private $queue;
  31. /**
  32. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity")
  33. * @ORM\JoinColumn(name="subscriber_id", referencedColumnName="id")
  34. * @var SubscriberEntity|null
  35. */
  36. private $subscriber;
  37. /**
  38. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterLinkEntity", inversedBy="clicks")
  39. * @var NewsletterLinkEntity|null
  40. */
  41. private $link;
  42. /**
  43. * @ORM\OneToMany(targetEntity="MailPoet\Entities\StatisticsWooCommercePurchaseEntity", mappedBy="click", fetch="EXTRA_LAZY")*
  44. * @var ArrayCollection<int, StatisticsWooCommercePurchaseEntity>
  45. */
  46. private $wooCommercePurchases;
  47. /**
  48. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\UserAgentEntity")
  49. * @var UserAgentEntity|null
  50. */
  51. private $userAgent;
  52. /**
  53. * @ORM\Column(type="smallint")
  54. * @var int
  55. */
  56. private $userAgentType = 0;
  57. /**
  58. * @ORM\Column(type="integer")
  59. * @var int
  60. */
  61. private $count;
  62. public function __construct(
  63. NewsletterEntity $newsletter,
  64. SendingQueueEntity $queue,
  65. SubscriberEntity $subscriber,
  66. NewsletterLinkEntity $link,
  67. int $count
  68. ) {
  69. $this->newsletter = $newsletter;
  70. $this->queue = $queue;
  71. $this->subscriber = $subscriber;
  72. $this->link = $link;
  73. $this->count = $count;
  74. $this->wooCommercePurchases = new ArrayCollection();
  75. }
  76. /**
  77. * @return NewsletterEntity|null
  78. */
  79. public function getNewsletter() {
  80. $this->safelyLoadToOneAssociation('newsletter');
  81. return $this->newsletter;
  82. }
  83. /**
  84. * @return SendingQueueEntity|null
  85. */
  86. public function getQueue() {
  87. $this->safelyLoadToOneAssociation('queue');
  88. return $this->queue;
  89. }
  90. /**
  91. * @return NewsletterLinkEntity|null
  92. */
  93. public function getLink() {
  94. $this->safelyLoadToOneAssociation('link');
  95. return $this->link;
  96. }
  97. /**
  98. * @param NewsletterEntity|null $newsletter
  99. */
  100. public function setNewsletter($newsletter) {
  101. $this->newsletter = $newsletter;
  102. }
  103. /**
  104. * @param SendingQueueEntity|null $queue
  105. */
  106. public function setQueue($queue) {
  107. $this->queue = $queue;
  108. }
  109. /**
  110. * @param SubscriberEntity|null $subscriber
  111. */
  112. public function setSubscriber($subscriber) {
  113. $this->subscriber = $subscriber;
  114. }
  115. /**
  116. * @return SubscriberEntity|null
  117. */
  118. public function getSubscriber(): ?SubscriberEntity {
  119. return $this->subscriber;
  120. }
  121. /**
  122. * @param NewsletterLinkEntity|null $link
  123. */
  124. public function setLink($link) {
  125. $this->link = $link;
  126. }
  127. /**
  128. * @param int $count
  129. */
  130. public function setCount(int $count) {
  131. $this->count = $count;
  132. }
  133. /**
  134. * @return ArrayCollection<int, StatisticsWooCommercePurchaseEntity>
  135. */
  136. public function getWooCommercePurchases() {
  137. return $this->wooCommercePurchases;
  138. }
  139. public function getCount(): int {
  140. return $this->count;
  141. }
  142. public function getUserAgent(): ?UserAgentEntity {
  143. return $this->userAgent;
  144. }
  145. public function setUserAgent(?UserAgentEntity $userAgent): void {
  146. $this->userAgent = $userAgent;
  147. }
  148. public function getUserAgentType(): int {
  149. return $this->userAgentType;
  150. }
  151. public function setUserAgentType(int $userAgentType): void {
  152. $this->userAgentType = $userAgentType;
  153. }
  154. }