Простой способ добавить функцию повтора в каналы уведомлений в приложении Laravel.
use Carbon\Carbon;
class SnoozeData
{
public Carbon $snooze_until;
public function __construct(
public int $duration,
public string $type,
) {
$this->getSnoozeUntilTime();
}
private function getSnoozeUntilTime(): void
{
$time = Carbon::now();
$this->snooze_until = match ($this->type) {
'minutes' => $time->addMinutes($this->duration),
'hours' => $time->addHours($this->duration),
'days' => $time->addDays($this->duration),
'weeks' => $time->addWeeks($this->duration),
default => $time,
};
}
}
$details = new SnoozeData(...Request::validate([ 'duration' => ['required', 'integer', 'between:0,1000'], 'type' => ['required', 'string'], ])); $notifyUser->update([ 'snooze_until' => $details->snooze_until, ]);
Оригинал: “https://dev.to/sesha/add-snooze-functionality-to-notification-channels-3ac3”