src/Entity/System/SubscriptionData.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity\System;
  3. use Doctrine\ORM\Mapping as ORM;
  4. /**
  5. * Subscription
  6. *
  7. * @ORM\Table(name="subscription_data")
  8. *
  9. * @ORM\Entity(repositoryClass="App\Repository\System\SubscriptionDataRepository")
  10. */
  11. class SubscriptionData
  12. {
  13. public const PACK_IDS_INDEXED_BY_SUBSCRIPTION_DATA_PRODUCT_ID = [
  14. Product::PACK_MARKETPLACES_MONTHLY_PRODUCT_ID => Pack::PACK_MARKETPLACES,
  15. Product::PACK_MARKETPLACES_BIANNUAL_PRODUCT_ID => Pack::PACK_MARKETPLACES,
  16. Product::PACK_MARKETPLACES_ANNUAL_PRODUCT_ID => Pack::PACK_MARKETPLACES,
  17. Product::PACK_ECOMMERCE_MONTHLY_PRODUCT_ID => Pack::PACK_ECOMMERCE,
  18. Product::PACK_ECOMMERCE_BIANNUAL_PRODUCT_ID => Pack::PACK_ECOMMERCE,
  19. Product::PACK_ECOMMERCE_ANNUAL_PRODUCT_ID => Pack::PACK_ECOMMERCE,
  20. Product::PACK_B2B_PRODUCT_ID => Pack::PACK_B2B,
  21. Product::NEW_PACK_ENTERPRISE_MONTHLY_PRODUCT_ID => Pack::PACK_ENTERPRISE,
  22. Product::NEW_PACK_ENTERPRISE_BIANNUAL_PRODUCT_ID => Pack::PACK_ENTERPRISE,
  23. Product::NEW_PACK_ENTERPRISE_ANNUAL_PRODUCT_ID => Pack::PACK_ENTERPRISE,
  24. Product::NEW_PACK_PRO_MONTHLY_PRODUCT_ID => Pack::PACK_PRO,
  25. Product::NEW_PACK_PRO_BIANNUAL_PRODUCT_ID => Pack::PACK_PRO,
  26. Product::NEW_PACK_PRO_ANNUAL_PRODUCT_ID => Pack::PACK_PRO,
  27. Product::NEW_PACK_DROPSHIP_MONTHLY_PRODUCT_ID => Pack::PACK_DROPSHIP,
  28. Product::NEW_PACK_DROPSHIP_BIANNUAL_PRODUCT_ID => Pack::PACK_DROPSHIP,
  29. Product::NEW_PACK_DROPSHIP_ANNUAL_PRODUCT_ID => Pack::PACK_DROPSHIP,
  30. Product::PACK_PREMIUM_MONTHLY_PRODUCT_ID => Pack::PACK_PREMIUM,
  31. Product::PACK_PREMIUM_BIANNUAL_PRODUCT_ID => Pack::PACK_PREMIUM,
  32. Product::PACK_PREMIUM_ANNUAL_PRODUCT_ID => Pack::PACK_PREMIUM,
  33. Product::PACK_BUSINESS_ANNUAL_PRODUCT_ID => Pack::PACK_BUSINESS,
  34. Product::PACK_BUSINESS_BIANNUAL_PRODUCT_ID => Pack::PACK_BUSINESS,
  35. Product::PACK_BUSINESS_MONTHLY_PRODUCT_ID => Pack::PACK_BUSINESS,
  36. ];
  37. public const PERIODICITY_MONTHLY = '1M';
  38. public const PERIODICITY_BIANNUAL = '6M';
  39. public const PERIODICITY_ANNUAL = '12M';
  40. /**
  41. * @var int
  42. *
  43. * @ORM\Id
  44. *
  45. * @ORM\GeneratedValue(strategy="AUTO")
  46. *
  47. * @ORM\Column(type="integer", name="id")
  48. */
  49. private $id;
  50. /**
  51. * @var Product
  52. *
  53. * @ORM\ManyToOne(targetEntity="App\Entity\System\Product")
  54. *
  55. * @ORM\JoinColumn(referencedColumnName="id_product", name="product_id")
  56. */
  57. private $product;
  58. /**
  59. * @var SubscriptionType
  60. *
  61. * @ORM\ManyToOne(targetEntity="App\Entity\System\SubscriptionType")
  62. */
  63. private $subscriptionType;
  64. /**
  65. * @var SubscriptionCustomer[]
  66. *
  67. * @ORM\OneToMany(targetEntity="App\Entity\System\SubscriptionCustomer", mappedBy="subscriptionData")
  68. */
  69. private $subscriptionCustomers;
  70. /**
  71. * @var \DateTime
  72. *
  73. * @ORM\Column(name="date_add", type="datetime")
  74. */
  75. private $dateAdd;
  76. /**
  77. * @var string|null
  78. *
  79. * @ORM\Column(name="periodicity", type="string", length=5, nullable=true)
  80. */
  81. private $periodicity;
  82. public function __construct()
  83. {
  84. $this->dateAdd = new \DateTime();
  85. }
  86. /**
  87. * @return int
  88. */
  89. public function getId(): int
  90. {
  91. return $this->id;
  92. }
  93. public function getProduct(): Product
  94. {
  95. return $this->product;
  96. }
  97. /**
  98. * @return SubscriptionType
  99. */
  100. public function getSubscriptionType(): SubscriptionType
  101. {
  102. return $this->subscriptionType;
  103. }
  104. /**
  105. * @return SubscriptionCustomer[]
  106. */
  107. public function getSubscriptionCustomers(): array
  108. {
  109. return $this->subscriptionCustomers;
  110. }
  111. /**
  112. * @param Product $product
  113. *
  114. * @return SubscriptionData
  115. */
  116. public function setProduct(Product $product): self
  117. {
  118. $this->product = $product;
  119. return $this;
  120. }
  121. /**
  122. * @param SubscriptionType $subscriptionType
  123. *
  124. * @return SubscriptionData
  125. */
  126. public function setSubscriptionType(SubscriptionType $subscriptionType): self
  127. {
  128. $this->subscriptionType = $subscriptionType;
  129. return $this;
  130. }
  131. /**
  132. * @return string|null
  133. */
  134. public function getPeriodicity(): ?string
  135. {
  136. return $this->periodicity;
  137. }
  138. /**
  139. * @param string|null $periodicity
  140. *
  141. * @return SubscriptionData
  142. */
  143. public function setPeriodicity(?string $periodicity): self
  144. {
  145. $this->periodicity = $periodicity;
  146. return $this;
  147. }
  148. }