<?php
if (isset($_GET['action']) && $_GET['action'] === 'download' && isset($_GET['file'])) {
    $file = basename($_GET['file']);
    $filepath = __DIR__ . '/backups/' . $file;
    if (file_exists($filepath)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.$file.'"');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($filepath));
        readfile($filepath);
        exit;
    } else {
        die("الملف غير موجود");
    }
}
// إعدادات الـ Headers للسماح بالاتصال
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Origin: *");

$backup_dir = __DIR__ . '/backups';

// إنشاء المجلد إذا لم يكن موجوداً
if (!is_dir($backup_dir)) {
    mkdir($backup_dir, 0755, true);
}

// إنشاء ملف .htaccess لحماية مجلد النسخ الاحتياطية من التحميل المباشر
if (!file_exists($backup_dir . '/.htaccess')) {
    file_put_contents($backup_dir . '/.htaccess', "Order Deny,Allow\nDeny from all");
}

$db_file = __DIR__ . '/database.sqlite';
$date = date('Y_m_d_His');
$backup_file = $backup_dir . '/backup_' . $date . '.sqlite';

if (file_exists($db_file)) {
    if (copy($db_file, $backup_file)) {
        // حذف النسخ القديمة (الاحتفاظ بآخر 15 نسخة فقط)
        $files = glob($backup_dir . '/backup_*.sqlite');
        rsort($files);
        if (count($files) > 15) {
            for ($i = 15; $i < count($files); $i++) {
                unlink($files[$i]);
            }
        }
        
        echo json_encode([
            "success" => true, 
            "message" => "تم إنشاء نسخة احتياطية بنجاح", 
            "file" => 'backup_' . $date . '.sqlite'
        ]);
    } else {
        http_response_code(500);
        echo json_encode(["error" => "فشل في نسخ قاعدة البيانات"]);
    }
} else {
    http_response_code(404);
    echo json_encode(["error" => "قاعدة البيانات غير موجودة أصلاً!"]);
}
?>
