format('Y'); $month = (int)$date->format('n'); $day = (int)$date->format('j'); // Thai Date formatting $thaiMonths = [ 1 => 'มกราคม', 2 => 'กุมภาพันธ์', 3 => 'มีนาคม', 4 => 'เมษายน', 5 => 'พฤษภาคม', 6 => 'มิถุนายน', 7 => 'กรกฎาคม', 8 => 'สิงหาคม', 9 => 'กันยายน', 10 => 'ตุลาคม', 11 => 'พฤศจิกายน', 12 => 'ธันวาคม' ]; $thaiDays = [ 'Sunday' => 'อาทิตย์', 'Monday' => 'จันทร์', 'Tuesday' => 'อังคาร', 'Wednesday' => 'พุธ', 'Thursday' => 'พฤหัสบดี', 'Friday' => 'ศุกร์', 'Saturday' => 'เสาร์' ]; $thaiDateStr = "วัน" . $thaiDays[$date->format('l')] . "ที่ " . $day . " " . $thaiMonths[$month] . " " . ($year + 543); try { // Get schedules for the target date $stmt = $pdo->prepare(" SELECT s.shift_type, st.name, st.phone FROM schedules s JOIN staff st ON s.staff_id = st.id WHERE s.year = :year AND s.month = :month AND s.day = :day "); $stmt->execute([':year' => $year, ':month' => $month, ':day' => $day]); $schedules = $stmt->fetchAll(); if (empty($schedules)) { // No schedule for today, maybe send nothing or send a specific message $message = "\n📅 ประกาศตารางเวร\n$thaiDateStr\n\n✨ วันนี้ไม่มีผู้เข้าเวรพักผ่อนให้เต็มที่ครับ ✨"; } else { $morning = []; $afternoon = []; $both = []; $leave = []; foreach ($schedules as $row) { $nameInfo = $row['name']; if (!empty($row['phone'])) { $nameInfo .= " (📞 " . $row['phone'] . ")"; } if ($row['shift_type'] === 'ช') { $morning[] = $nameInfo; } elseif ($row['shift_type'] === 'บ') { $afternoon[] = $nameInfo; } elseif ($row['shift_type'] === 'ช/บ') { $both[] = $nameInfo; } elseif ($row['shift_type'] === 'ลา') { $leave[] = $nameInfo; } } // Build beautiful message using HTML tags for Telegram $message = "📢 แจ้งเตือนตารางเวรประจำวัน 📢\n"; $message .= "🗓️ $thaiDateStr\n"; $message .= str_repeat("➖", 12) . "\n\n"; if (!empty($morning) || !empty($both)) { $message .= "🌅 เวรเช้า (08:30 - 16:30 น.)\n"; foreach ($both as $name) { $message .= " 🔹 " . $name . "\n"; } foreach ($morning as $name) { $message .= " 🔹 " . $name . "\n"; } $message .= "\n"; } if (!empty($afternoon) || !empty($both)) { $message .= "🌇 เวรบ่าย (16:30 - 00:30 น.)\n"; foreach ($both as $name) { $message .= " 🔸 " . $name . "\n"; } foreach ($afternoon as $name) { $message .= " 🔸 " . $name . "\n"; } $message .= "\n"; } if (!empty($leave)) { $message .= "⛔ ลาพัก/ลากิจ\n"; foreach ($leave as $name) { $message .= " ❌ " . $name . "\n"; } $message .= "\n"; } $message .= "💡 ศูนย์คอมพิวเตอร์ ฝ่ายคอมพิวเตอร์และสารสนเทศ"; } // Only send to Telegram if token is set and not default if (TELEGRAM_BOT_TOKEN !== 'YOUR_TELEGRAM_BOT_TOKEN_HERE' && !empty(TELEGRAM_BOT_TOKEN)) { $url = "https://api.telegram.org/bot" . TELEGRAM_BOT_TOKEN . "/sendMessage"; $postData = [ 'chat_id' => TELEGRAM_CHAT_ID, 'text' => $message, 'parse_mode' => 'HTML' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); echo json_encode([ 'status' => 'success', 'message' => 'Notification sent successfully', 'response' => json_decode($result), 'text' => $message // For preview ]); } else { echo json_encode([ 'status' => 'success', 'message' => 'Preview mode (No Telegram Token)', 'text' => $message // For preview ]); } } catch (PDOException $e) { http_response_code(500); echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } ?>