fix: notif

This commit is contained in:
2025-12-13 15:56:47 +03:30
parent ccc5c9e16f
commit 6be6c367ca
+15 -14
View File
@@ -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}.");
} }