fix: notif
This commit is contained in:
@@ -26,19 +26,18 @@ class SendDueReminders extends Command
|
||||
public function handle(): int
|
||||
{
|
||||
$now = now();
|
||||
$yesterday = now()->subDay();
|
||||
|
||||
$reminders = Reminder::with(['user', 'packageName'])->where(function ($query) use ($now) {
|
||||
$reminders = Reminder::with(['user', 'packageName'])
|
||||
->where('time', '<=', $now->toTimeString())
|
||||
->where(function ($query) use ($now) {
|
||||
// Non-repeatable reminders: send once
|
||||
$query->where('repeatable', false)
|
||||
->where('time', '<=', $now)
|
||||
->whereNull('last_repeat');
|
||||
})
|
||||
->orWhere(function ($query) use ($now, $yesterday) {
|
||||
$query->where('repeatable', true)
|
||||
->where('time', '<=', $now)
|
||||
->where(function ($sub) use ($now, $yesterday) {
|
||||
->whereNull('last_repeat')
|
||||
// OR repeatable reminders that haven't been sent today
|
||||
->orWhere('repeatable', true)
|
||||
->where(function ($sub) use ($now) {
|
||||
$sub->whereNull('last_repeat')
|
||||
->orWhere('last_repeat', '<=', $yesterday);
|
||||
->orWhereDate('last_repeat', '<', $now->toDateString());
|
||||
});
|
||||
})
|
||||
->get();
|
||||
@@ -79,7 +78,9 @@ public function handle(): int
|
||||
);
|
||||
}
|
||||
|
||||
$reminder->last_repeat = now();
|
||||
$scheduledTime = Carbon::parse($reminder->time);
|
||||
$scheduledTime->setDate($now->year, $now->month, $now->day);
|
||||
$reminder->last_repeat = $scheduledTime;
|
||||
$reminder->save();
|
||||
$this->info("Queued push notification for reminder {$reminder->id}.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user