<?php
/**
 * API: جلب جميع طلبات الفحص من جدول inspection_requests_new
 * GET /api/supervisor/endpoints/get_inspection_requests.php
 */

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

// إعدادات الاتصال بقاعدة البيانات
$host = "localhost";
$dbname = "digitals_autotester_db";
$username = "digitals";
$password = "bassam.bassam";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // جلب جميع الأعمدة الموجودة في الجدول
    $columnsQuery = "SHOW COLUMNS FROM inspection_requests_new";
    $columnsStmt = $pdo->prepare($columnsQuery);
    $columnsStmt->execute();
    $existingColumns = $columnsStmt->fetchAll(PDO::FETCH_COLUMN);
    
    // الأعمدة الأساسية
    $selectColumns = ['id', 'request_number', 'status', 'created_at', 'updated_at'];
    
    // أعمدة إضافية قد تكون موجودة
    $optionalColumns = [
        'customer_name', 'customer_phone', 'customer_email',
        'vehicle_type', 'vehicle_model', 'vehicle_year',
        'plate_number', 'inspection_type', 'center_id',
        'appointment_date', 'appointment_time', 'notes'
    ];
    
    // إضافة الأعمدة الموجودة
    foreach ($optionalColumns as $col) {
        if (in_array($col, $existingColumns)) {
            $selectColumns[] = $col;
        }
    }
    
    // بناء الاستعلام
    $query = "SELECT " . implode(", ", $selectColumns) . " 
              FROM inspection_requests_new 
              ORDER BY 
                CASE WHEN status = 'pending' OR status IS NULL THEN 1 ELSE 2 END,
                created_at DESC";
    
    $stmt = $pdo->prepare($query);
    $stmt->execute();
    $requests = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo json_encode([
        'success' => true,
        'data' => $requests,
        'total' => count($requests),
        'available_columns' => $existingColumns,
        'timestamp' => date('Y-m-d H:i:s')
    ], JSON_UNESCAPED_UNICODE);
    
} catch(PDOException $e) {
    error_log("Database error: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'message' => 'Database error: ' . $e->getMessage()
    ], JSON_UNESCAPED_UNICODE);
}
?>