<?php
ob_start();
session_start();
require_once 'db_connect.php';
header('Content-Type: application/json; charset=utf-8');

error_reporting(0);
ini_set('display_errors', 0);

// حماية: السماح للمدير فقط
if (!isset($_SESSION['loggedin']) || $_SESSION['role'] !== 'admin') {
    ob_end_clean();
    echo json_encode(['status' => 'error', 'message' => 'صلاحيات الإدارة العليا فقط']);
    exit;
}

$school_name = $conn->real_escape_string($_SESSION['school_name'] ?? '');
$student_id = $conn->real_escape_string($_POST['student_id'] ?? '');
$subject = $conn->real_escape_string($_POST['subject'] ?? '');
$field = $conn->real_escape_string($_POST['field'] ?? ''); 
$value = isset($_POST['value']) && $_POST['value'] !== '' ? floatval($_POST['value']) : 'NULL';

if (empty($student_id) || empty($subject) || empty($field)) {
    ob_end_clean();
    echo json_encode(['status' => 'error', 'message' => 'بيانات مفقودة.']);
    exit;
}

// 🚀 الحقول المسموح للإدارة تعديلها (القرار، التحريري، درجات الدور الثاني)
$allowed_fields = ['admin_grace', 'final_exam', 'makeup_exam', 'final_after_makeup'];
if (!in_array($field, $allowed_fields)) {
    ob_end_clean();
    echo json_encode(['status' => 'error', 'message' => 'حقل غير مسموح.']);
    exit;
}

// 1. حفظ الدرجة المدخلة
$sql = "UPDATE control_grades 
        SET $field = $value 
        WHERE student_id = '$student_id' AND subject_name = '$subject' AND school_name = '$school_name'";

if ($conn->query($sql)) {
    // 2. 🚀 العملية الحسابية الذكية للدرجة النهائية 🚀
    // إذا كان هناك درجة امتحان تحريري مرصودة، نجمع (السعي+القرار) مع (الشفهي+التحريري) ونقسم على 2 ونجبر الكسر (ROUND)
    // إذا لم تكن هناك درجة تحريرية، نجعل النتيجة النهائية (NULL) لتبقى قيد التقييم
    $calc_sql = "UPDATE control_grades 
                 SET final_grade = CASE 
                    WHEN final_exam IS NOT NULL 
                    THEN ROUND( ( (IFNULL(annual_effort, 0) + IFNULL(admin_grace, 0)) + (IFNULL(final_oral, 0) + IFNULL(final_exam, 0)) ) / 2 )
                    ELSE NULL 
                 END
                 WHERE student_id = '$student_id' AND subject_name = '$subject' AND school_name = '$school_name'";
    $conn->query($calc_sql);

    ob_end_clean();
    echo json_encode(['status' => 'success', 'message' => 'تم الحفظ والتحديث بنجاح.']);
} else {
    ob_end_clean();
    echo json_encode(['status' => 'error', 'message' => 'خطأ في قاعدة البيانات.']);
}
?>