<?php
ob_start();
error_reporting(0);
ini_set('display_errors', 0);
header('Content-Type: application/json; charset=utf-8');

if (session_status() === PHP_SESSION_NONE) { session_start(); }
require_once 'db_connect.php';

$response = ['status' => 'error', 'message' => 'حدث خطأ مجهول.'];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $today = date('Y-m-d');
        $school_name = trim($_SESSION['school_name'] ?? '');
        $teacher_name = trim($_SESSION['teacher_name'] ?? '');
        
        $where_clause = "";
        $bind_value = "";
        if (!empty($school_name) && $school_name !== 'مستقل') {
            $where_clause = "school_name = ?";
            $bind_value = $school_name;
        } else {
            $where_clause = "teacher_name = ?";
            $bind_value = $teacher_name;
        }

        if(empty($bind_value)) {
            throw new Exception("اسم المدرسة غير محفوظ في الجلسة، يرجى تسجيل الدخول من جديد.");
        }

        $stmt_all = $conn->prepare("SELECT student_id, student_name, parent_phone FROM students WHERE $where_clause AND (is_suspended = 0 OR is_suspended IS NULL)");
        $stmt_all->bind_param("s", $bind_value);
        $stmt_all->execute();
        $res_all = $stmt_all->get_result();
        
        $all_students = [];
        while($row = $res_all->fetch_assoc()) {
            $all_students[$row['student_id']] = $row;
        }
        $stmt_all->close();

        $stmt_att = $conn->prepare("SELECT student_id FROM attendance WHERE attendance_date = ?");
        $stmt_att->bind_param("s", $today);
        $stmt_att->execute();
        $res_att = $stmt_att->get_result();
        
        $attended_students = [];
        while($row = $res_att->fetch_assoc()) {
            $attended_students[] = $row['student_id'];
        }
        $stmt_att->close();

        $whatsapp_links = [];
        $inserted_count = 0;

        $insert_stmt = $conn->prepare("INSERT INTO attendance (student_id, school_name, teacher_name, attendance_date, status) VALUES (?, ?, ?, ?, 'absent')");

        foreach ($all_students as $std_id => $data) {
            // إذا لم يتم تسجيل بصمة للطالب اليوم
            if (!in_array($std_id, $attended_students)) {
                
                $insert_stmt->bind_param("ssss", $std_id, $school_name, $teacher_name, $today);
                
                if ($insert_stmt->execute()) {
                    $inserted_count++;
                    
                    // تجهيز إشعارات الواتساب
                    $phone = $data['parent_phone'];
                    if (!empty($phone)) {
                        $clean_phone = preg_replace('/[^0-9]/', '', $phone);
                        if (strpos($clean_phone, '0') === 0) { $clean_phone = '964' . substr($clean_phone, 1); }

                        $message = "تحية طيبة من إدارة ({$bind_value})،\n\nنود إعلامكم بأن الطالب/ة: *{$data['student_name']}* غائب عن الدوام لهذا اليوم ({$today}).\n\nيرجى بيان سبب الغياب (بعذر / بدون عذر) للإدارة.\n\nلمتابعة التفاصيل، يرجى زيارة بوابة ولي الأمر في منصة روزماري.";
                        $encoded_msg = urlencode($message);
                        $wa_url = "https://wa.me/{$clean_phone}?text={$encoded_msg}";
                        
                        $btn_html = "<a href='{$wa_url}' target='_blank' style='display:flex; justify-content:space-between; align-items:center; background:#1e293b; border:1px solid #334155; padding:12px 15px; border-radius:10px; text-decoration:none; color:#f8fafc; font-weight:bold; transition:0.3s; margin-bottom:10px;' onmouseover=\"this.style.background='#064e3b'; this.style.borderColor='#22c55e';\">
                                        <span><i class='fas fa-user-graduate text-gray-400'></i> {$data['student_name']}</span>
                                        <span style='color:#25D366; background:rgba(37,211,102,0.1); padding:5px 10px; border-radius:5px;'><i class='fab fa-whatsapp fa-lg'></i> إرسال تبليغ</span>
                                     </a>";
                        $whatsapp_links[] = $btn_html;
                    }
                }
            }
        }
        $insert_stmt->close();

        if ($inserted_count > 0) {
            $response = [
                'status' => 'success', 
                'message' => "تم إغلاق السجل الصباحي بنجاح! تم رصد ($inserted_count) حالات غياب اليوم.",
                'whatsapp_links' => $whatsapp_links
            ];
        } else {
            $response = [
                'status' => 'success', 
                'message' => "اكتمل الفرز. لا توجد حالات غياب جديدة (إما أن الجميع حاضر، أو تم فرز الغائبين مسبقاً)."
            ];
        }

    } catch (Exception $e) {
        $response = ['status' => 'error', 'message' => $e->getMessage()];
    }
}

ob_end_clean();
echo json_encode($response, JSON_UNESCAPED_UNICODE);
exit;
?>