В моем приложении с Laravel на сервере пользователи могут отправлять сообщения друг другу.
Я хочу отправить push-уведомление пользователям приложения о новом сообщении в почтовом ящике, но мне нужно отправлять сообщения только в том случае, если пользователь еще не прочитал это сообщение.
Так что я так вижу
- Для каждого отправленного сообщения мне нужно запланировать уведомление Laravel через 1 минуту
- если пользователь уже получил это сообщение, мне нужно отменить это уведомление
Как отклонить запланированное уведомление в Laravel? Насколько хорошо и актуален сейчас такой подход?
Класс расширяет уведомление
public function via($notifiable)
{
if($this->dontSend($notifiable)) {
return [];
}
return ['mail'];
}
public function dontSend($notifiable)
{
return $this->appointment->status === 'cancelled';
}
Может есть более удобный способ справиться с этим? Например, отправлять push каждый раз, но как-то убрать его отображение из приложения, если оно уже запущено?