<?php
/*
  parent_portal_common.php
  إصلاح متوافق مع PHP قديم جداً
  - بدون ??
  - بدون []
  - بدون mysqli_stmt_get_result()
  - مع فحص الجداول والأعمدة قبل استخدامها
*/

if (!function_exists('pp_connect')) {
function pp_connect() {
    if (file_exists(__DIR__ . "/includes/config.php")) {
        include(__DIR__ . "/includes/config.php");
    } elseif (file_exists(__DIR__ . "/db.php")) {
        include(__DIR__ . "/db.php");
    } else {
        die("<div style='font-family:Cairo,Arial;direction:rtl;padding:25px;color:#991b1b'>لم يتم العثور على ملف الاتصال بقاعدة البيانات.</div>");
    }

    if (!isset($conn) || !$conn) {
        die("<div style='font-family:Cairo,Arial;direction:rtl;padding:25px;color:#991b1b'>فشل الاتصال بقاعدة البيانات.</div>");
    }

    mysqli_set_charset($conn, "utf8mb4");
    return $conn;
}
}

if (!function_exists('h')) {
function h($v) {
    return htmlspecialchars($v, ENT_QUOTES, 'UTF-8');
}
}

if (!function_exists('grade_val')) {
function grade_val($v) {
    if ($v === null || $v === '') {
        return '-';
    }

    if (is_numeric($v)) {
        $n = floatval($v);
        if (floor($n) == $n) {
            return intval($n);
        }
        return rtrim(rtrim(number_format($n, 2, '.', ''), '0'), '.');
    }

    return $v;
}
}

if (!function_exists('table_exists')) {
function table_exists($conn, $table) {
    $table = mysqli_real_escape_string($conn, $table);
    $q = mysqli_query($conn, "SHOW TABLES LIKE '$table'");
    return ($q && mysqli_num_rows($q) > 0);
}
}

if (!function_exists('column_exists')) {
function column_exists($conn, $table, $column) {
    if (!table_exists($conn, $table)) {
        return false;
    }

    $table_safe = mysqli_real_escape_string($conn, $table);
    $column_safe = mysqli_real_escape_string($conn, $column);

    $q = mysqli_query($conn, "SHOW COLUMNS FROM `$table_safe` LIKE '$column_safe'");
    return ($q && mysqli_num_rows($q) > 0);
}
}

if (!function_exists('add_column_if_missing')) {
function add_column_if_missing($conn, $table, $column, $definition) {
    if (!column_exists($conn, $table, $column)) {
        $table_safe = mysqli_real_escape_string($conn, $table);
        $column_safe = mysqli_real_escape_string($conn, $column);
        mysqli_query($conn, "ALTER TABLE `$table_safe` ADD `$column_safe` " . $definition);
    }
}
}

if (!function_exists('parent_portal_install')) {
function parent_portal_install($conn) {
    if (!table_exists($conn, 'parent_accounts')) {
        mysqli_query($conn, "
            CREATE TABLE parent_accounts (
                id INT(11) NOT NULL AUTO_INCREMENT,
                student_id INT(11) NOT NULL,
                guardian_name VARCHAR(255) DEFAULT NULL,
                phone VARCHAR(30) DEFAULT NULL,
                username VARCHAR(100) NOT NULL,
                password_hash VARCHAR(255) NOT NULL,
                is_active TINYINT(1) NOT NULL DEFAULT 1,
                created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
                PRIMARY KEY (id),
                UNIQUE KEY username (username),
                KEY student_id (student_id)
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
    }

    if (!table_exists($conn, 'parent_notifications')) {
        mysqli_query($conn, "
            CREATE TABLE parent_notifications (
                id INT(11) NOT NULL AUTO_INCREMENT,
                title VARCHAR(255) NOT NULL,
                body TEXT NOT NULL,
                target_type VARCHAR(30) NOT NULL DEFAULT 'all',
                student_id INT(11) DEFAULT NULL,
                stage VARCHAR(100) DEFAULT NULL,
                class_name VARCHAR(50) DEFAULT NULL,
                is_active TINYINT(1) NOT NULL DEFAULT 1,
                created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
                PRIMARY KEY (id)
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
    }

    if (!table_exists($conn, 'parent_exam_schedules')) {
        mysqli_query($conn, "
            CREATE TABLE parent_exam_schedules (
                id INT(11) NOT NULL AUTO_INCREMENT,
                title VARCHAR(255) NOT NULL,
                subject VARCHAR(150) DEFAULT NULL,
                stage VARCHAR(100) NOT NULL,
                class_name VARCHAR(50) DEFAULT NULL,
                exam_date DATE NOT NULL,
                exam_time VARCHAR(50) DEFAULT NULL,
                notes TEXT DEFAULT NULL,
                created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
                PRIMARY KEY (id)
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        ");
    }

    add_column_if_missing($conn, 'parent_notifications', 'is_active', "TINYINT(1) NOT NULL DEFAULT 1");
    add_column_if_missing($conn, 'parent_exam_schedules', 'class_name', "VARCHAR(50) DEFAULT NULL");
}
}

if (!function_exists('stage_short')) {
function stage_short($stage) {
    $stage = trim($stage);

    if ($stage == 'الأول المتوسط') return 'أول متوسط';
    if ($stage == 'الثاني المتوسط') return 'ثاني متوسط';
    if ($stage == 'الثالث المتوسط') return 'ثالث متوسط';
    if ($stage == 'الرابع العلمي') return 'رابع علمي';
    if ($stage == 'الخامس العلمي') return 'خامس علمي';
    if ($stage == 'السادس العلمي') return 'سادس علمي';

    return $stage;
}
}

if (!function_exists('pp_fetch_student')) {
function pp_fetch_student($conn, $student_id) {
    if (!table_exists($conn, 'students')) {
        return false;
    }

    $student_id = intval($student_id);
    $q = mysqli_query($conn, "SELECT * FROM students WHERE id='$student_id' LIMIT 1");

    if ($q && mysqli_num_rows($q) > 0) {
        return mysqli_fetch_assoc($q);
    }

    return false;
}
}

if (!function_exists('pp_value')) {
function pp_value($row, $key) {
    if (is_array($row) && isset($row[$key])) {
        return $row[$key];
    }
    return '';
}
}

if (!function_exists('pp_safe_query')) {
function pp_safe_query($conn, $sql) {
    $q = mysqli_query($conn, $sql);
    if ($q) {
        return $q;
    }
    return false;
}
}
?>