mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-29 16:15:04 +00:00
feat: be faster on the last day
This commit is contained in:
@@ -381,22 +381,35 @@ class Domain
|
|||||||
*/
|
*/
|
||||||
public function isToBeUpdated(bool $fromUser = true): bool
|
public function isToBeUpdated(bool $fromUser = true): bool
|
||||||
{
|
{
|
||||||
return $this->getUpdatedAt()->diff(new \DateTimeImmutable())->days >= 7
|
$updatedAtDiff = $this->getUpdatedAt()->diff(new \DateTimeImmutable());
|
||||||
|| $this->getDeleted()
|
|
||||||
? $fromUser
|
if ($updatedAtDiff->days >= 7) {
|
||||||
: (
|
return true;
|
||||||
($fromUser || ($this->getUpdatedAt()
|
}
|
||||||
->diff(new \DateTimeImmutable())->h * 60 + $this->getUpdatedAt()
|
|
||||||
->diff(new \DateTimeImmutable())->i) >= 12
|
if ($this->getDeleted()) {
|
||||||
)
|
return $fromUser;
|
||||||
&& $this->isToBeWatchClosely()
|
}
|
||||||
)
|
|
||||||
|| (
|
$expiresIn = $this->getExpiresInDays();
|
||||||
false == $this->getDeleted() && (
|
|
||||||
count(array_intersect($this->getStatus(), ['auto renew period', 'client hold', 'server hold'])) > 0
|
if (0 === $expiresIn) {
|
||||||
&& $this->getUpdatedAt()->diff(new \DateTimeImmutable())->days >= 1
|
return true;
|
||||||
)
|
}
|
||||||
);
|
|
||||||
|
$minutesDiff = $updatedAtDiff->h * 60 + $updatedAtDiff->i;
|
||||||
|
if (($minutesDiff >= 12 || $fromUser) && $this->isToBeWatchClosely()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
count(array_intersect($this->getStatus(), ['auto renew period', 'client hold', 'server hold'])) > 0
|
||||||
|
&& $updatedAtDiff->days >= 1
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -471,7 +484,7 @@ class Domain
|
|||||||
$daysToExpiration = null;
|
$daysToExpiration = null;
|
||||||
|
|
||||||
if ($lastStatus) {
|
if ($lastStatus) {
|
||||||
if (in_array('pending delete', $lastStatus->getAddStatus()) && !in_array('redemption period', $this->getStatus())) {
|
if (in_array('pending delete', $lastStatus->getAddStatus()) && !$this->isRedemptionPeriod()) {
|
||||||
$daysToExpiration = self::daysBetween($now, $lastStatus->getCreatedAt()->add(new \DateInterval('P5D')));
|
$daysToExpiration = self::daysBetween($now, $lastStatus->getCreatedAt()->add(new \DateInterval('P5D')));
|
||||||
}
|
}
|
||||||
if (in_array('redemption period', $lastStatus->getAddStatus())) {
|
if (in_array('redemption period', $lastStatus->getAddStatus())) {
|
||||||
@@ -483,7 +496,7 @@ class Domain
|
|||||||
$deletedAt = null;
|
$deletedAt = null;
|
||||||
foreach ($this->getEvents()->getIterator() as $event) {
|
foreach ($this->getEvents()->getIterator() as $event) {
|
||||||
$expiredAt = !$event->getDeleted() && 'expiration' === $event->getAction() ? $event->getDate() : $expiredAt;
|
$expiredAt = !$event->getDeleted() && 'expiration' === $event->getAction() ? $event->getDate() : $expiredAt;
|
||||||
$deletedAt = !$event->getDeleted() && 'deletion' === $event->getAction() && in_array('redemption period', $this->getStatus()) ? $event->getDate() : $deletedAt;
|
$deletedAt = !$event->getDeleted() && 'deletion' === $event->getAction() && $this->isRedemptionPeriod() ? $event->getDate() : $deletedAt;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($deletedAt) {
|
if ($deletedAt) {
|
||||||
@@ -499,4 +512,9 @@ class Domain
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isRedemptionPeriod(): bool
|
||||||
|
{
|
||||||
|
return in_array('redemption period', $this->getStatus());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ final readonly class SendNotifWatchListTriggerSchedule implements ScheduleProvid
|
|||||||
{
|
{
|
||||||
return (new Schedule())
|
return (new Schedule())
|
||||||
->add(
|
->add(
|
||||||
RecurringMessage::every('15 minutes', new ProcessWatchListsTrigger()),
|
RecurringMessage::every('5 minutes', new ProcessWatchListsTrigger()),
|
||||||
)
|
)
|
||||||
->stateful($this->cache);
|
->stateful($this->cache);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user