feat: be faster on the last day

This commit is contained in:
Maël Gangloff
2025-01-14 22:00:45 +01:00
parent 858912fff8
commit 2441eb2925
2 changed files with 37 additions and 19 deletions

View File

@@ -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());
}
} }

View File

@@ -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);
} }