<?php
// تشغيل عرض الأخطاء
error_reporting(E_ALL);
ini_set('display_errors', 1);

// إضافة نوع المحتوى
header("Content-Type: text/html; charset=UTF-8");

// تضمين ملف اتصال قاعدة البيانات
require_once('last_db_config.php');

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    
    // التحقق من وجود جميع الحقول المطلوبة
    $required_fields = ['full_name', 'national_id', 'mobile_phone', 'governorate_id', 'admin_id'];
    $missing_fields = [];
    
    foreach ($required_fields as $field) {
        if (empty($_POST[$field])) {
            $missing_fields[] = $field;
        }
    }
    
    if (!empty($missing_fields)) {
        die("الحقول التالية مطلوبة: " . implode(', ', $missing_fields));
    }
    
    // تنظيف البيانات
    $full_name = trim($_POST['full_name']);
    $national_id = trim($_POST['national_id']);
    $mobile_phone = trim($_POST['mobile_phone']);
    $governorate_id = intval($_POST['governorate_id']);
    $admin_id = intval($_POST['admin_id']);
    
    // التحقق من صحة البيانات
    $errors = [];
    
    // تحقق من الاسم (يجب أن يكون رباعي)
    $name_parts = explode(' ', $full_name);
    if (count($name_parts) < 4) {
        $errors[] = "الاسم يجب أن يكون رباعيًا";
    }
    
    // تحقق من الرقم القومي
    if (!preg_match('/^\d{14}$/', $national_id)) {
        $errors[] = "الرقم القومي يجب أن يكون 14 رقمًا";
    }
    
    // تحقق من رقم الهاتف
    if (!preg_match('/^01[0-2,5]{1}[0-9]{8}$/', $mobile_phone)) {
        $errors[] = "رقم الهاتف غير صحيح. يجب أن يكون 11 رقمًا ويبدأ بـ 010 أو 011 أو 012 أو 015";
    }
    
    if (!empty($errors)) {
        die(implode('<br>', $errors));
    }
    
    // تحقق من أن الرقم القومي غير مسجل مسبقًا
    $check_sql = "SELECT ID FROM evaluator WHERE NationalID = ?";
    $check_stmt = $conn->prepare($check_sql);
    
    if ($check_stmt) {
        $check_stmt->bind_param("s", $national_id);
        $check_stmt->execute();
        $check_stmt->store_result();
        
        if ($check_stmt->num_rows > 0) {
            die("الرقم القومي مسجل مسبقًا");
        }
        $check_stmt->close();
    }
    
    // معالجة رفع ملف صورة الرقم القومي (اختياري)
    $photo_path = '';
    
    if (isset($_FILES['national_id_photo']) && $_FILES['national_id_photo']['error'] == UPLOAD_ERR_OK) {
        
        // إعدادات الملف
        $allowed_types = [
            'image/jpeg' => 'jpg',
            'image/jpg' => 'jpg', 
            'image/png' => 'png',
            'application/pdf' => 'pdf'
        ];
        
        $max_size = 2 * 1024 * 1024; // 2MB
        $file_type = $_FILES['national_id_photo']['type'];
        $file_size = $_FILES['national_id_photo']['size'];
        $file_name = $_FILES['national_id_photo']['name'];
        
        // التحقق من نوع الملف
        if (!array_key_exists($file_type, $allowed_types)) {
            die("نوع الملف غير مسموح به. المسموح: JPG, PNG, PDF");
        }
        
        // التحقق من حجم الملف
        if ($file_size > $max_size) {
            die("حجم الملف كبير جداً. الحد الأقصى 2MB");
        }
        
        // إنشاء مجلد التحميلات
        $upload_dir = 'uploads/national_id_photos/';
        if (!file_exists($upload_dir)) {
            if (!mkdir($upload_dir, 0755, true)) {
                die("لا يمكن إنشاء مجلد التحميلات");
            }
        }
        
        // توليد اسم فريد للملف
        $file_extension = $allowed_types[$file_type];
        $unique_name = $national_id . '_' . time() . '.' . $file_extension;
        $target_path = $upload_dir . $unique_name;
        
        // تحميل الملف
        if (move_uploaded_file($_FILES['national_id_photo']['tmp_name'], $target_path)) {
            $photo_path = $target_path;
        } else {
            die("فشل في رفع الملف");
        }
    }
    // إذا لم يتم رفع ملف، يبقى $photo_path = '' (اختياري)
    
    // إدراج البيانات في قاعدة البيانات
    $insert_sql = "INSERT INTO evaluator 
                  (Name, NationalID, MobilePhone, NationalIDPhoto, GovID, EdaraID) 
                  VALUES (?, ?, ?, ?, ?, ?)";
    
    $insert_stmt = $conn->prepare($insert_sql);
    
    if ($insert_stmt) {
        $insert_stmt->bind_param("ssssii", 
            $full_name, 
            $national_id, 
            $mobile_phone, 
            $photo_path, 
            $governorate_id, 
            $admin_id
        );
        
        if ($insert_stmt->execute()) {
            // بدء الجلسة وتخزين البيانات
            session_start();
            $_SESSION['evaluator_name'] = $full_name;
            $_SESSION['evaluator_id'] = $national_id;
            
            // إعادة التوجيه للصفحة التالية
            header("Location:dashboard.php");
            exit();
        } else {
            die("خطأ في تنفيذ الإدراج: " . $insert_stmt->error);
        }
        
        $insert_stmt->close();
    } else {
        die("خطأ في إعداد الاستعلام: " . $conn->error);
    }
    
    $conn->close();
    
} else {
    die("طلب غير صالح");
}
?>