<?php
header("Content-Type: application/json; charset=UTF-8");
require_once 'auth_helper.php';

// [إصلاح 1] إخفاء أخطاء PHP، وعدم إرجاع رسائل الاستثناءات للعميل (كانت تكشف تفاصيل قاعدة البيانات)
ini_set('display_errors', '0');
mysqli_report(MYSQLI_REPORT_STRICT);

$classid   = trim($_POST['classid'] ?? '');
$studentid = trim($_POST['studentid'] ?? '');
$token     = getRequestToken();
$pages     = json_decode($_POST['pages'] ?? '', true);

if ($classid === '' || $studentid === '' || !is_array($pages) || count($pages) === 0) {
    echo json_encode(["status" => "error", "message" => "missing parameters"]);
    exit;
}

// [إصلاح 2] حد أقصى لعدد الصفحات (منع طلب ضخم يستهلك السيرفر)
if (count($pages) > 700) {
    echo json_encode(["status" => "error", "message" => "too many pages"]);
    exit;
}

try {
    $db = mysqli_connect('localhost', 'sooraapps_warqauser', 'YTR#,;_h4WU!Ey~R', 'sooraapps_warqa');
    mysqli_set_charset($db, 'utf8mb4');

    // الطالب نفسه (حذف ملاحظاته هو جزء من ميزات التطبيق) أو المعلم صاحب الصف
    $authorized = false;
    if (verifyStudentToken($db, $studentid, $token) && verifyStudentInClass($db, $studentid, $classid)) {
        $authorized = true;
    }
    if (!$authorized && $token !== '') {
        $stmt = $db->prepare("SELECT u.id FROM users u INNER JOIN classes c ON c.teacherid = u.id WHERE c.id = ? AND u.token = ? AND u.role = 'teacher' LIMIT 1");
        $cid = (int)$classid;
        $stmt->bind_param("is", $cid, $token);
        $stmt->execute();
        $res = $stmt->get_result();
        if ($res && $res->num_rows > 0) $authorized = true;
        $stmt->close();
    }
    if (!$authorized) denyAccess();

    // [إصلاح 3] إبقاء الأرقام المنطقية فقط (1..700)
    $pages = array_values(array_unique(array_filter(array_map('intval', $pages), function ($p) {
        return $p >= 1 && $p <= 700;
    })));
    if (empty($pages)) {
        echo json_encode(["status" => "error", "message" => "no valid pages"]);
        exit;
    }

    $placeholders = implode(',', array_fill(0, count($pages), '?'));
    $types = 'ss' . str_repeat('i', count($pages));
    $sql = "DELETE FROM notes WHERE classid = ? AND studentid = ? AND page IN ($placeholders)";
    $st = $db->prepare($sql);
    $params = array_merge([$classid, $studentid], $pages);
    $st->bind_param($types, ...$params);
    $st->execute();

    echo json_encode(["status" => "success", "deleted" => $st->affected_rows]);
    $st->close();
    $db->close();
} catch (Throwable $e) {
    // التفاصيل في السجل فقط
    error_log('deletepart: ' . $e->getMessage());
    echo json_encode(["status" => "error", "message" => "serverError"]);
}
?>