diff --git a/src/Service/FCMSender.php b/src/Service/FCMSender.php index 87526f87..c3d962f1 100644 --- a/src/Service/FCMSender.php +++ b/src/Service/FCMSender.php @@ -12,6 +12,8 @@ use App\Entity\JobOrder; use App\Entity\Subscription; use Exception; use RuntimeException; +use DateTime; +use DateInterval; class FCMSender { @@ -246,11 +248,23 @@ class FCMSender return false; } + // get device timestamp cutoff + $oldest_timestamp = (new DateTime())->sub(new DateInterval('P1M')); + // send to every customer session foreach ($sessions as $sess) { $device_id = $sess->getDevicePushID(); - if (!empty($device_id) && !isset($device_ids[$device_id])) { + // ignore duplicates and empty device IDs + if (empty($device_id) || isset($device_ids[$device_id])) { + continue; + } + + // get latest device timestamp + $latest_timestamp = $sess->getDateLatestActivity(); + + // make sure we only send to devices that have been active on or after the cutoff + if ($latest_timestamp >= $oldest_timestamp) { // send to this device $device_ids[$device_id] = true; }