Нет описания

StatisticsWooCommercePurchaseEntity.php 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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\ORM\Mapping as ORM;
  9. /**
  10. * @ORM\Entity()
  11. * @ORM\Table(name="statistics_woocommerce_purchases")
  12. */
  13. class StatisticsWooCommercePurchaseEntity {
  14. use AutoincrementedIdTrait;
  15. use CreatedAtTrait;
  16. use UpdatedAtTrait;
  17. use SafeToOneAssociationLoadTrait;
  18. /**
  19. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
  20. * @ORM\JoinColumn(name="newsletter_id", referencedColumnName="id")
  21. * @var NewsletterEntity|null
  22. */
  23. private $newsletter;
  24. /**
  25. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SendingQueueEntity")
  26. * @ORM\JoinColumn(name="queue_id", referencedColumnName="id")
  27. * @var SendingQueueEntity|null
  28. */
  29. private $queue;
  30. /**
  31. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity")
  32. * @ORM\JoinColumn(name="subscriber_id", referencedColumnName="id")
  33. * @var SubscriberEntity|null
  34. */
  35. private $subscriber;
  36. /**
  37. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\StatisticsClickEntity", inversedBy="wooCommercePurchases")
  38. * @ORM\JoinColumn(name="click_id", referencedColumnName="id")
  39. * @var StatisticsClickEntity|null
  40. */
  41. private $click;
  42. /**
  43. * @ORM\Column(type="integer")
  44. * @var int
  45. */
  46. private $orderId;
  47. /**
  48. * @ORM\Column(type="string")
  49. * @var string
  50. */
  51. private $orderCurrency;
  52. /**
  53. * @ORM\Column(type="float")
  54. * @var float
  55. */
  56. private $orderPriceTotal;
  57. public function __construct(
  58. NewsletterEntity $newsletter,
  59. SendingQueueEntity $queue,
  60. StatisticsClickEntity $click,
  61. int $orderId,
  62. string $orderCurrency,
  63. float $orderPriceTotal
  64. ) {
  65. $this->newsletter = $newsletter;
  66. $this->queue = $queue;
  67. $this->click = $click;
  68. $this->orderId = $orderId;
  69. $this->orderCurrency = $orderCurrency;
  70. $this->orderPriceTotal = $orderPriceTotal;
  71. }
  72. /**
  73. * @return NewsletterEntity|null
  74. */
  75. public function getNewsletter() {
  76. $this->safelyLoadToOneAssociation('newsletter');
  77. return $this->newsletter;
  78. }
  79. /**
  80. * @return SendingQueueEntity|null
  81. */
  82. public function getQueue() {
  83. $this->safelyLoadToOneAssociation('queue');
  84. return $this->queue;
  85. }
  86. /**
  87. * @return SubscriberEntity|null
  88. */
  89. public function getSubscriber() {
  90. $this->safelyLoadToOneAssociation('subscriber');
  91. return $this->subscriber;
  92. }
  93. /**
  94. * @return StatisticsClickEntity|null
  95. */
  96. public function getClick() {
  97. $this->safelyLoadToOneAssociation('click');
  98. return $this->click;
  99. }
  100. /**
  101. * @return int
  102. */
  103. public function getOrderId(): int {
  104. return $this->orderId;
  105. }
  106. /**
  107. * @param SubscriberEntity|null $subscriber
  108. */
  109. public function setSubscriber($subscriber) {
  110. $this->subscriber = $subscriber;
  111. }
  112. /**
  113. * @return string
  114. */
  115. public function getOrderCurrency(): string {
  116. return $this->orderCurrency;
  117. }
  118. /**
  119. * @return float
  120. */
  121. public function getOrderPriceTotal(): float {
  122. return $this->orderPriceTotal;
  123. }
  124. }