<?php
// check_system.php - diagnostic quick check
header('Content-Type: text/plain; charset=utf-8');

$checks = [];
$base = __DIR__;

// 1) ملفات مهمة
$files = [
    'config/db.php',
    'src/auth.php',
    'src/functions.php',
    'public/login.php', // إذا رفعت الملفات داخل public/ ضع المسار الصحيح
    'index.php',
];
foreach($files as $f){
    $exists = file_exists($base . '/' . $f) ? 'OK' : 'MISSING';
    $checks["file:$f"] = $exists;
}

// 2) اتصال قاعدة البيانات
require_once $base . '/config/db.php';
try{
    $pdo->query('SELECT 1');
    $checks['db_connection'] = 'OK';
} catch (Exception $e){
    $checks['db_connection'] = 'ERROR: '.$e->getMessage();
}

// 3) جداول مهمة موجودة؟
$tables = ['users','products','customers','sales','sale_items','cash_transactions','stock_audit','backups_log'];
foreach($tables as $t){
    try{
        $stmt = $pdo->prepare("SHOW TABLES LIKE ?");
        $stmt->execute([$t]);
        $row = $stmt->fetch();
        $checks["table:$t"] = $row ? 'OK' : 'MISSING';
    } catch (Exception $e){
        $checks["table:$t"] = 'ERROR: '.$e->getMessage();
    }
}

// 4) صلاحيات المجلد backups
$backupDir = $base . '/backups';
if(is_dir($backupDir)){
    $w = is_writable($backupDir) ? 'WRITABLE' : 'NOT WRITABLE';
    $checks['backups_dir'] = $w;
} else {
    $checks['backups_dir'] = 'MISSING';
}

// 5) ملف .htaccess حماية للـ backups (إن وجد)
$ht = $base . '/backups/.htaccess';
$checks['backups_htaccess'] = file_exists($ht) ? 'OK' : 'MISSING';

// 6) جلب آخر 5 سجلات أخطاء للـ PHP (إن كان المسار الافتراضي متاح)
$logs = [];
$possible = [
    '/var/log/apache2/error.log',
    '/var/log/httpd/error_log',
    ini_get('error_log'),
    __DIR__.'/error_log.txt'
];
foreach($possible as $p){
    if($p && file_exists($p) && is_readable($p)){
        $lines = array_slice(array_filter(array_map('rtrim', file($p))), -30);
        $logs[$p] = implode("\n", $lines);
    }
}
$checks['php_error_samples'] = $logs ?: 'no-access-or-empty';

// Output
echo "SYSTEM QUICK CHECK\n==================\n\n";
foreach($checks as $k=>$v){
    echo str_pad($k,35) . " : " . (is_string($v)? $v : json_encode($v)) . "\n";
}
echo "\n\nIf any \"MISSING\" or \"ERROR\" appear, paste the output here and I will fix it for you.\n";
?>
