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