Нет описания

StatisticsNewsletterEntity.php 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace MailPoet\Entities;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
  5. use MailPoet\Doctrine\EntityTraits\SafeToOneAssociationLoadTrait;
  6. use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
  7. /**
  8. * @ORM\Entity()
  9. * @ORM\Table(name="statistics_newsletters")
  10. */
  11. class StatisticsNewsletterEntity {
  12. use AutoincrementedIdTrait;
  13. use SafeToOneAssociationLoadTrait;
  14. /**
  15. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
  16. * @ORM\JoinColumn(name="newsletter_id", referencedColumnName="id")
  17. * @var NewsletterEntity|null
  18. */
  19. private $newsletter;
  20. /**
  21. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SendingQueueEntity")
  22. * @ORM\JoinColumn(name="queue_id", referencedColumnName="id")
  23. * @var SendingQueueEntity|null
  24. */
  25. private $queue;
  26. /**
  27. * @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity")
  28. * @ORM\JoinColumn(name="subscriber_id", referencedColumnName="id")
  29. * @var SubscriberEntity|null
  30. */
  31. private $subscriber;
  32. /**
  33. * @ORM\Column(type="datetimetz", nullable=true)
  34. * @var \DateTimeInterface|null
  35. */
  36. private $sentAt;
  37. public function __construct(
  38. NewsletterEntity $newsletter,
  39. SendingQueueEntity $queue,
  40. SubscriberEntity $subscriber
  41. ) {
  42. $this->newsletter = $newsletter;
  43. $this->queue = $queue;
  44. $this->subscriber = $subscriber;
  45. }
  46. /**
  47. * @return NewsletterEntity|null
  48. */
  49. public function getNewsletter() {
  50. $this->safelyLoadToOneAssociation('newsletter');
  51. return $this->newsletter;
  52. }
  53. /**
  54. * @return SendingQueueEntity|null
  55. */
  56. public function getQueue() {
  57. $this->safelyLoadToOneAssociation('queue');
  58. return $this->queue;
  59. }
  60. /**
  61. * @return SubscriberEntity|null
  62. */
  63. public function getSubscriber() {
  64. $this->safelyLoadToOneAssociation('subscriber');
  65. return $this->subscriber;
  66. }
  67. /**
  68. * @return \DateTimeInterface|null
  69. */
  70. public function getSentAt() {
  71. return $this->sentAt;
  72. }
  73. /**
  74. * @param \DateTimeInterface $sentAt
  75. */
  76. public function setSentAt(\DateTimeInterface $sentAt) {
  77. $this->sentAt = $sentAt;
  78. }
  79. }