prepare(" SELECT m.*, u.email, u.full_name FROM $table m JOIN users u ON m.assigned_to = u.id JOIN mailbox_statuses s ON m.status_id = s.id WHERE m.due_date = DATE_ADD(CURDATE(), INTERVAL 1 DAY) AND s.name != 'closed' "); $stmt->execute(); $due_tomorrow = $stmt->fetchAll(); foreach ($due_tomorrow as $task) { if (!empty($task['email'])) { $subject = "تذكير: موعد نهائي لمهمة غداً - " . $task['ref_no']; $html = "

تذكير بموعد نهائي

عزيزي " . htmlspecialchars($task['full_name']) . "،

هذا تذكير بأن المهمة التالية مستحقة غداً:

يرجى متابعة المهمة وإغلاقها في الوقت المحدد.

"; $res = MailService::sendMail($task['email'], $subject, $html); if ($res['success']) { echo "Sent 24h reminder to " . $task['email'] . " for task " . $task['ref_no'] . PHP_EOL; } } } // 2. Overdue tasks $stmt = db()->prepare(" SELECT m.*, u.email, u.full_name FROM $table m JOIN users u ON m.assigned_to = u.id JOIN mailbox_statuses s ON m.status_id = s.id WHERE m.due_date < CURDATE() AND s.name != 'closed' "); $stmt->execute(); $overdue = $stmt->fetchAll(); foreach ($overdue as $task) { if (!empty($task['email'])) { $subject = "تنبيه: مهمة متأخرة! - " . $task['ref_no']; $html = "

تنبيه: مهمة متأخرة

عزيزي " . htmlspecialchars($task['full_name']) . "،

هذه المهمة قد تجاوزت الموعد النهائي المحدد:

يرجى معالجة هذه المهمة في أقرب وقت ممكن.

"; $res = MailService::sendMail($task['email'], $subject, $html); if ($res['success']) { echo "Sent overdue reminder to " . $task['email'] . " for task " . $task['ref_no'] . PHP_EOL; } } } } echo "[" . date('Y-m-d H:i:s') . "] Reminder process finished." . PHP_EOL;