src/App/Entity/ContentDistribution/IndeedStatsEntry.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ContentDistribution;
  3. use App\Utility\GuidUtility;
  4. use DateTime;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7. * @ORM\Entity
  8. *
  9. * @ORM\Table(
  10. * name="indeed_stats_entries",
  11. * indexes={
  12. *
  13. * @ORM\Index(name="day_job_reference_number", columns={"day", "job_reference_number"})
  14. * }
  15. * )
  16. */
  17. class IndeedStatsEntry
  18. {
  19. public function __construct(
  20. DateTime $retrievedAt,
  21. DateTime $day,
  22. string $campaignId,
  23. string $advertisement,
  24. string $job,
  25. string $jobReferenceNumber,
  26. string $platform,
  27. int $clicks,
  28. int $organicClicks,
  29. int $impressions,
  30. int $organicImpressions,
  31. int $applyStarts,
  32. int $organicApplyStarts,
  33. int $conversions,
  34. int $indeedApplyConversions,
  35. float $spend
  36. ) {
  37. $this->retrievedAt = $retrievedAt;
  38. $this->day = $day;
  39. $this->campaignId = $campaignId;
  40. $this->advertisement = $advertisement;
  41. $this->job = $job;
  42. $this->jobReferenceNumber = $jobReferenceNumber;
  43. $this->platform = $platform;
  44. $this->clicks = $clicks;
  45. $this->organicClicks = $organicClicks;
  46. $this->impressions = $impressions;
  47. $this->organicImpressions = $organicImpressions;
  48. $this->applyStarts = $applyStarts;
  49. $this->organicApplyStarts = $organicApplyStarts;
  50. $this->conversions = $conversions;
  51. $this->indeedApplyConversions = $indeedApplyConversions;
  52. $this->spend = $spend;
  53. }
  54. /**
  55. * @ORM\GeneratedValue(strategy="CUSTOM")
  56. *
  57. * @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
  58. *
  59. * @ORM\Column(name="id", type="guid")
  60. *
  61. * @ORM\Id
  62. */
  63. private ?string $id;
  64. public function setId(string $id)
  65. {
  66. GuidUtility::validOrThrow($id);
  67. $this->id = $id;
  68. }
  69. public function getId(): ?string
  70. {
  71. return $this->id;
  72. }
  73. /**
  74. * @ORM\Column(name="retrieved_at", type="datetime", nullable=false)
  75. */
  76. private DateTime $retrievedAt;
  77. public function getRetrievedAt(): DateTime
  78. {
  79. return $this->retrievedAt;
  80. }
  81. /**
  82. * @ORM\Column(name="day", type="date", nullable=false)
  83. */
  84. private DateTime $day;
  85. public function getDay(): DateTime
  86. {
  87. return $this->day;
  88. }
  89. /**
  90. * @ORM\Column(type="string", name="campaign_id", nullable=false, length=64)
  91. */
  92. private string $campaignId;
  93. public function getCampaignId(): string
  94. {
  95. return $this->campaignId;
  96. }
  97. /**
  98. * @ORM\Column(type="string", name="advertisement", nullable=false, length=256)
  99. */
  100. private string $advertisement;
  101. public function getAdvertisement(): string
  102. {
  103. return $this->advertisement;
  104. }
  105. /**
  106. * @ORM\Column(type="string", name="job", nullable=false, length=256)
  107. */
  108. private string $job;
  109. public function getJob(): string
  110. {
  111. return $this->job;
  112. }
  113. /**
  114. * @ORM\Column(type="string", name="job_reference_number", nullable=false, length=256)
  115. */
  116. private string $jobReferenceNumber;
  117. public function getJobReferenceNumber(): string
  118. {
  119. return $this->jobReferenceNumber;
  120. }
  121. /**
  122. * @ORM\Column(type="string", name="platform", nullable=false, length=256)
  123. */
  124. private string $platform;
  125. public function getPlatform(): string
  126. {
  127. return $this->platform;
  128. }
  129. /**
  130. * @ORM\Column(type="integer", name="clicks", nullable=false, options={"unsigned"=true})
  131. */
  132. private int $clicks;
  133. public function getClicks(): int
  134. {
  135. return $this->clicks;
  136. }
  137. /**
  138. * @ORM\Column(type="integer", name="organic_clicks", nullable=false, options={"unsigned"=true})
  139. */
  140. private int $organicClicks;
  141. public function getOrganicClicks(): int
  142. {
  143. return $this->organicClicks;
  144. }
  145. /**
  146. * @ORM\Column(type="integer", name="impressions", nullable=false, options={"unsigned"=true})
  147. */
  148. private int $impressions;
  149. public function getImpressions(): int
  150. {
  151. return $this->impressions;
  152. }
  153. /**
  154. * @ORM\Column(type="integer", name="organic_impressions", nullable=false, options={"unsigned"=true})
  155. */
  156. private int $organicImpressions;
  157. public function getOrganicImpressions(): int
  158. {
  159. return $this->organicImpressions;
  160. }
  161. /**
  162. * @ORM\Column(type="integer", name="apply_starts", nullable=false, options={"unsigned"=true})
  163. */
  164. private int $applyStarts;
  165. public function getApplyStarts(): int
  166. {
  167. return $this->applyStarts;
  168. }
  169. /**
  170. * @ORM\Column(type="integer", name="organic_apply_starts", nullable=false, options={"unsigned"=true})
  171. */
  172. private int $organicApplyStarts;
  173. public function getOrganicApplyStarts(): int
  174. {
  175. return $this->organicApplyStarts;
  176. }
  177. /**
  178. * @ORM\Column(type="integer", name="conversions", nullable=false, options={"unsigned"=true})
  179. */
  180. private int $conversions;
  181. public function getConversions(): int
  182. {
  183. return $this->conversions;
  184. }
  185. /**
  186. * @ORM\Column(type="integer", name="indeed_apply_conversions", nullable=false, options={"unsigned"=true})
  187. */
  188. private int $indeedApplyConversions;
  189. public function getIndeedApplyConversions(): int
  190. {
  191. return $this->indeedApplyConversions;
  192. }
  193. /**
  194. * @ORM\Column(type="float", name="spend", nullable=false, options={"unsigned"=true})
  195. */
  196. private float $spend;
  197. public function getSpend(): float
  198. {
  199. return $this->spend;
  200. }
  201. }