/**
 * Backup and Restore JavaScript
 * Handles AJAX requests for database backup and restoration.
 */

function takeBackup() {
    Swal.fire({
        title: 'بیک اپ شروع ہو رہا ہے',
        text: 'براہ کرم انتظار کریں...',
        allowOutsideClick: false,
        didOpen: () => {
            Swal.showLoading();
        }
    });

    // Instead of AJAX, use direct link for download
    window.location.href = 'APIs/backup_api.php?action=backup';

    // Close loading after a short Delay (rough estimate)
    setTimeout(() => {
        Swal.close();
    }, 3000);
}

function restoreDatabase() {
    const fileInput = document.getElementById('backup_zip');
    if (!fileInput.files || fileInput.files.length === 0) {
        Swal.fire({
            icon: 'error',
            title: 'کاوش (Error)',
            text: 'براہ کرم بیک اپ فائل منتخب کریں۔'
        });
        return;
    }

    const file = fileInput.files[0];
    if (file.name.split('.').pop().toLowerCase() !== 'zip') {
        Swal.fire({
            icon: 'error',
            title: 'کاوش (Error)',
            text: 'صرف ZIP فائلیں ہی قبول کی جاتی ہیں۔'
        });
        return;
    }

    Swal.fire({
        title: 'کیا آپ واقعی بحال کرنا چاہتے ہیں؟',
        text: 'موجودہ ڈیٹا ڈیلیٹ کر کے بیک اپ والا ڈیٹا بحال کر دیا جائے گا۔ یہ عمل واپسی کے قابل نہیں ہے!',
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#d33',
        cancelButtonColor: '#3085d6',
        confirmButtonText: 'جی ہاں، بحال کریں!',
        cancelButtonText: 'منسوخ کریں'
    }).then((result) => {
        if (result.isConfirmed) {
            const formData = new FormData();
            formData.append('backup_zip', file);
            formData.append('action', 'restore');

            Swal.fire({
                title: 'ڈیٹا بحال ہو رہا ہے',
                text: 'براہ کرم سسٹم کو بند نہ کریں...',
                allowOutsideClick: false,
                didOpen: () => {
                    Swal.showLoading();
                }
            });

            $.ajax({
                url: 'APIs/backup_api.php?action=restore',
                type: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                success: function (response) {
                    Swal.close();
                    if (response.success) {
                        Swal.fire({
                            icon: 'success',
                            title: 'کامیابی',
                            text: response.message,
                            confirmButtonText: 'ٹھیک ہے'
                        }).then(() => {
                            location.reload();
                        });
                    } else {
                        Swal.fire({
                            icon: 'error',
                            title: 'غلطی',
                            text: response.message
                        });
                    }
                },
                error: function () {
                    Swal.close();
                    Swal.fire({
                        icon: 'error',
                        title: 'سسٹم کی خرابی',
                        text: 'سروور کے ساتھ رابطہ کرنے میں ناکامی۔'
                    });
                }
            });
        }
    });
}
