<?php
include 'template/header.php';
check_user_access('admin'); // Only admin can access this page
?>

<br>

<div class="row">
    <div class="col-lg-12">
        <div class="card">
            <div class="card-header">
                <h3 class="card-title"><i class="fas fa-sync-alt mr-2"></i>Reset Data Sistem</h3>
            </div>
            <div class="card-body">
                <?php if (!empty($message)): ?>
                <div class="alert alert-info alert-dismissible fade show" role="alert">
                    <?php echo htmlspecialchars($message); ?>
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <?php endif; ?>
                <p class="mb-4">Peringatan: Fungsi ini akan menghapus data sesuai dengan pilihan Anda. Proses ini tidak dapat dibatalkan. Harap konfirmasi sebelum melanjutkan.</p>
                
                <div class="row">
                    <div class="col-md-6">
                        <div class="card mb-3">
                            <div class="card-body">
                                <h5 class="card-title"><i class="fas fa-shopping-cart text-danger mr-2"></i>Reset Transaksi</h5>
                                <p class="card-text">Menghapus semua data transaksi (keranjang, laporan penjualan)</p>
                                <button class="btn btn-danger btn-sm" onclick="confirmReset('transaksi')">Reset Transaksi</button>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-6">
                        <div class="card mb-3">
                            <div class="card-body">
                                <h5 class="card-title"><i class="fas fa-exchange-alt text-warning mr-2"></i>Reset Return</h5>
                                <p class="card-text">Menghapus semua data return barang</p>
                                <button class="btn btn-warning btn-sm" onclick="confirmReset('return')">Reset Return</button>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-6">
                        <div class="card mb-3">
                            <div class="card-body">
                                <h5 class="card-title"><i class="fas fa-boxes text-info mr-2"></i>Reset Produk</h5>
                                <p class="card-text">Menghapus semua data produk (akan mengembalikan ke produk default jika ada)</p>
                                <button class="btn btn-info btn-sm" onclick="confirmReset('produk')">Reset Produk</button>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-6">
                        <div class="card mb-3">
                            <div class="card-body">
                                <h5 class="card-title"><i class="fas fa-users text-success mr-2"></i>Reset Pelanggan</h5>
                                <p class="card-text">Menghapus semua data pelanggan (kecuali pelanggan umum)</p>
                                <button class="btn btn-success btn-sm" onclick="confirmReset('pelanggan')">Reset Pelanggan</button>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-6">
                        <div class="card mb-3">
                            <div class="card-body">
                                <h5 class="card-title"><i class="fas fa-trash-alt text-secondary mr-2"></i>Reset Semua Data</h5>
                                <p class="card-text">Menghapus semua data kecuali pengguna admin</p>
                                <button class="btn btn-secondary btn-sm" onclick="confirmReset('semua')">Reset Semua Data</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function confirmReset(type) {
    let message = '';
    let tables = [];
    
    switch(type) {
        case 'transaksi':
            message = 'Anda yakin ingin menghapus semua data transaksi?';
            tables = ['keranjang', 'laporan'];
            break;
        case 'return':
            message = 'Anda yakin ingin menghapus semua data return barang?';
            tables = ['retur_barang'];
            break;
        case 'produk':
            message = 'Anda yakin ingin menghapus semua data produk?';
            tables = ['produk'];
            break;
        case 'pelanggan':
            message = 'Anda yakin ingin menghapus semua data pelanggan?';
            tables = ['pelanggan'];
            break;
        case 'semua':
            message = 'Anda yakin ingin menghapus semua data kecuali pengguna admin?';
            tables = ['keranjang', 'laporan', 'retur_barang', 'produk', 'pelanggan'];
            break;
        default:
            return;
    }
    
    if (confirm(message)) {
        // Redirect to same page with POST data to perform reset
        const form = document.createElement('form');
        form.method = 'POST';
        form.style.display = 'none';
        
        const resetTypeInput = document.createElement('input');
        resetTypeInput.type = 'hidden';
        resetTypeInput.name = 'reset_type';
        resetTypeInput.value = type;
        
        const resetDataInput = document.createElement('input');
        resetDataInput.type = 'hidden';
        resetDataInput.name = 'reset_data';
        resetDataInput.value = '1';
        
        form.appendChild(resetTypeInput);
        form.appendChild(resetDataInput);
        document.body.appendChild(form);
        form.submit();
    }
}

// Handle form submission
if (window.location.search.includes('reset_data=1')) {
    // This would be handled by the POST request above
}
</script>

<?php
// Handle reset requests
$message = '';
if (isset($_POST['reset_data']) && isset($_POST['reset_type'])) {
    $reset_type = $_POST['reset_type'];
    
    // Only allow admin to perform reset
    if (get_user_role() !== 'admin') {
        $message = 'Akses ditolak';
    } else {
        $result = '';
        
        switch ($_POST['reset_type']) {
            case 'transaksi':
                // Reset transaksi - hapus keranjang dan laporan
                $truncate_cart = mysqli_query($conn, "TRUNCATE TABLE keranjang");
                $truncate_laporan = mysqli_query($conn, "TRUNCATE TABLE laporan");
                
                if ($truncate_cart && $truncate_laporan) {
                    $result = "Data transaksi berhasil direset";
                } else {
                    $result = "Gagal mereset data transaksi: " . mysqli_error($conn);
                }
                break;
                
            case 'return':
                // Reset return barang
                $truncate_return = mysqli_query($conn, "TRUNCATE TABLE retur_barang");
                
                if ($truncate_return) {
                    $result = "Data return barang berhasil direset";
                } else {
                    $result = "Gagal mereset data return: " . mysqli_error($conn);
                }
                break;
                
            case 'produk':
                // Reset produk - hapus semua produk kecuali yang mungkin dilindungi
                $truncate_produk = mysqli_query($conn, "TRUNCATE TABLE produk");
                
                if ($truncate_produk) {
                    $result = "Data produk berhasil direset";
                } else {
                    $result = "Gagal mereset data produk: " . mysqli_error($conn);
                }
                break;
                
            case 'pelanggan':
                // Reset pelanggan - hapus semua pelanggan kecuali pelanggan umum
                $truncate_pelanggan = mysqli_query($conn, "DELETE FROM pelanggan WHERE nama_pelanggan != 'UMUM'");
                
                if ($truncate_pelanggan) {
                    $result = "Data pelanggan berhasil direset (kecuali pelanggan umum)";
                } else {
                    $result = "Gagal mereset data pelanggan: " . mysqli_error($conn);
                }
                break;
                
            case 'semua':
                // Reset semua data kecuali tabel users (untuk menjaga akun admin)
                $truncate_cart = mysqli_query($conn, "TRUNCATE TABLE keranjang");
                $truncate_laporan = mysqli_query($conn, "TRUNCATE TABLE laporan");
                $truncate_return = mysqli_query($conn, "TRUNCATE TABLE retur_barang");
                $truncate_produk = mysqli_query($conn, "TRUNCATE TABLE produk");
                $truncate_pelanggan = mysqli_query($conn, "DELETE FROM pelanggan WHERE nama_pelanggan != 'UMUM'");
                
                if ($truncate_cart && $truncate_laporan && $truncate_return && $truncate_produk && $truncate_pelanggan) {
                    $result = "Semua data berhasil direset (kecuali akun pengguna)";
                } else {
                    $result = "Gagal mereset beberapa data: " . mysqli_error($conn);
                }
                break;
                
            default:
                $result = "Tipe reset tidak valid";
        }
        
        $message = $result;
    }
}
?>

<?php include 'template/footer.php'; ?>