scheduled_check_in_time; if ($scheduledTime === '00:00') { $this->info('Jam masuk kerja belum diatur. Lewatkan.'); return self::SUCCESS; } $now = Carbon::now(); $scheduledCheckIn = Carbon::createFromFormat('Y-m-d H:i', $now->format('Y-m-d').' '.$scheduledTime); $employees = Employee::query() ->where('status', EmployeeStatus::ACTIVE) ->whereNotNull('user_id') ->get(); $sentCount = 0; foreach ($employees as $employee) { $alreadyCheckedIn = Attendance::query() ->where('employee_id', $employee->id) ->whereDate('attendance_date', $now->toDateString()) ->exists(); if ($alreadyCheckedIn) { continue; } $pushNotificationService->sendToUser( '⏰ Pengingat Presensi', "Jangan lupa melakukan presensi masuk sebelum pukul {$scheduledTime}.", $employee->user_id, '/admin/hr/attendances', ); $sentCount++; } $this->info("Pengingat presensi dikirim ke {$sentCount} pegawai."); return self::SUCCESS; } }