src/App/Entity/RecurrentJobStatusChangeLogEntry.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Utility\DateTimeUtility;
  4. use App\Utility\GuidUtility;
  5. use DateTime;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8. * @ORM\Entity
  9. *
  10. * @ORM\Table(
  11. * name="recurrent_job_status_change_log_entries"
  12. * )
  13. */
  14. class RecurrentJobStatusChangeLogEntry
  15. {
  16. public const REASON_QUOTA_LIMIT_WAS_EXCEEDED = 0;
  17. public const REASON_MAX_CLICKS_PER_TIME_INTERVAL_REACHED = 1;
  18. public const REASON_BILLWERK_CONTRACT_PAYMENT_ESCALATED = 2;
  19. public const REASON_MAX_NUMBER_OF_PROLONGATIONS_REACHED = 3;
  20. public const REASON_PLUS_JOB_OWNER_MEMBERSHIP_EXPIRED = 4;
  21. public const REASON_PLUS_JOB_EXPIRED_AND_AUTOMATIC_RENEWAL_IS_DEACTIVATED = 5;
  22. public const REASON_PLUS_JOB_BOOKING_ERROR = 6;
  23. public const REASON_ORGANIC_DEACTIVATION_ON_WEBSITE = 7;
  24. public const REASON_DEACTIVATED_BY_ADMIN = 8;
  25. public const REASON_ORGANIC_ACTIVATION_ON_WEBSITE = 9;
  26. public const REASON_ACTIVATED_BY_ADMIN = 10;
  27. public const REASON_ORGANIC_REACTIVATION_ON_WEBSITE = 11;
  28. public const REASON_RECURRENT_JOB_OWNER_PAYMENT_IS_BACK_IN_LINE = 12;
  29. public const REASON_ACTIVATION_DURING_CUSTOMER_JOB_IMPORT_OR_UPDATE = 13;
  30. public const REASON_RECURRENT_JOB_ACTIVATED_DUE_TO_BUGFIX_2088 = 14;
  31. public const REASON_QUOTA_BECAME_AVAILABLE_AGAIN = 15;
  32. public const REASON_QUOTA_WAS_DEACTIVATED = 16;
  33. public const REASON_ADMIN_MASS_EDITOR = 17;
  34. public const REASON_LIMIT_HAS_CAPACITY_AGAIN = 18;
  35. public const REASON_DEV_COMMAND = 19;
  36. public const REASON_PLUS_JOB_WAS_MANUALLY_ANNULLED_ON_BILLWERK = 20;
  37. public function __construct(
  38. RecurrentJob $recurrentJob,
  39. int $newStatus,
  40. ?int $reason
  41. ) {
  42. $this->recurrentJob = $recurrentJob;
  43. $this->newStatus = $newStatus;
  44. $this->reason = $reason;
  45. $this->occuredAt = DateTimeUtility::createDateTimeUtc();
  46. }
  47. /**
  48. * @var string
  49. *
  50. * @ORM\GeneratedValue(strategy="CUSTOM")
  51. *
  52. * @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
  53. *
  54. * @ORM\Column(name="id", type="guid")
  55. *
  56. * @ORM\Id
  57. */
  58. protected $id;
  59. public function setId(string $id): void
  60. {
  61. GuidUtility::validOrThrow($id);
  62. $this->id = $id;
  63. }
  64. public function getId()
  65. {
  66. return $this->id;
  67. }
  68. /**
  69. * @ORM\Column(name="new_status", type="smallint", nullable=false)
  70. */
  71. private int $newStatus;
  72. public function setNewStatus(int $newStatus)
  73. {
  74. $this->newStatus = $newStatus;
  75. }
  76. public function getNewStatus(): int
  77. {
  78. return $this->newStatus;
  79. }
  80. /**
  81. * @ORM\Column(name="occured_at", type="datetime", nullable=false)
  82. */
  83. private DateTime $occuredAt;
  84. public function setOccuredAt(DateTime $occuredAt): void
  85. {
  86. $this->occuredAt = $occuredAt;
  87. }
  88. public function getOccuredAt(): DateTime
  89. {
  90. return $this->occuredAt;
  91. }
  92. /**
  93. * @ORM\Column(name="reason", type="smallint", nullable=true)
  94. */
  95. private ?int $reason;
  96. public function getReason(): ?int
  97. {
  98. return $this->reason;
  99. }
  100. public function setReason(?int $reason): void
  101. {
  102. $this->reason = $reason;
  103. }
  104. /**
  105. * @ORM\ManyToOne(targetEntity="App\Entity\RecurrentJob", inversedBy="statusChangeLogEntries", cascade={"persist"})
  106. *
  107. * @ORM\JoinColumn(name="recurrent_jobs_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
  108. */
  109. private RecurrentJob $recurrentJob;
  110. public function getRecurrentJob(): RecurrentJob
  111. {
  112. return $this->recurrentJob;
  113. }
  114. }