<?php
declare(strict_types=1);

require_once __DIR__ . '/../includes/bootstrap.php';
require_once __DIR__ . '/../includes/admin_layout.php';

require_admin();

// Eski erişim formu buradaydı → Site Ayarları > Erişim
if ($_SERVER['REQUEST_METHOD'] === 'POST' && (string) ($_POST['action'] ?? '') === 'save_access') {
    redirect(url('admin/ayarlar.php?tab=erisim'));
}

$labels = [
    'orders' => 'Siparişler',
    'products' => 'Ürünler',
    'comments' => 'Yorumlar',
    'sellers' => 'Satıcılar',
];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = (string) ($_POST['action'] ?? '');

    if ($action === 'reset') {
        $confirm = trim((string) ($_POST['confirm'] ?? ''));
        if ($confirm !== 'SIFIRLA') {
            flash('error', 'Onay için büyük harfle SIFIRLA yazmalısın.');
            redirect(url('admin/kontrol.php'));
        }
        $picked = $_POST['reset'] ?? [];
        if (!is_array($picked)) {
            $picked = [];
        }
        $picked = array_values(array_filter(array_map('strval', $picked)));
        if (!$picked) {
            flash('error', 'Sıfırlamak için en az bir alan seç.');
            redirect(url('admin/kontrol.php'));
        }
        $clearImages = !empty($_POST['clear_product_images']);
        $result = site_reset_run($picked, $clearImages);
        if ($result['ok']) {
            $names = array_map(static fn(string $k): string => $labels[$k] ?? $k, $result['ok']);
            flash('success', 'Sıfırlandı: ' . implode(', ', $names));
        }
        if ($result['fail']) {
            flash('error', 'Bazı alanlar sıfırlanamadı.');
        }
        redirect(url('admin/kontrol.php'));
    }

    flash('error', 'Geçersiz işlem.');
    redirect(url('admin/kontrol.php'));
}

$counts = [
    'orders' => count(store_read('orders')),
    'products' => count(store_read('products')),
    'comments' => count(store_read('comments')),
    'sellers' => count(store_read('sellers')),
];

admin_layout_start('Sıfırlama', 'control');
?>

<section class="admin-panel">
    <h2>Sistem sıfırlama</h2>
    <p class="hint">
        Site aç/kapa ve cihaz görünürlüğü artık
        <a href="<?= e(url('admin/ayarlar.php?tab=erisim')) ?>">Site Ayarları → Erişim</a> altında.
    </p>
    <p class="hint" style="color:#9b2c2c;font-weight:700">Dikkat: geri alınamaz. IBAN, kategoriler, üyeler ve site ayarları silinmez.</p>

    <form method="post" class="admin-form" onsubmit="return confirm('Seçilen veriler kalıcı silinecek. Emin misin?');">
        <input type="hidden" name="action" value="reset">

        <div class="admin-reset-grid">
            <?php foreach ($labels as $key => $label): ?>
                <label class="admin-reset-opt">
                    <input type="checkbox" name="reset[]" value="<?= e($key) ?>">
                    <span>
                        <strong><?= e($label) ?></strong>
                        <small><?= (int) ($counts[$key] ?? 0) ?> kayıt</small>
                    </span>
                </label>
            <?php endforeach; ?>
        </div>

        <label style="display:flex;align-items:flex-start;gap:0.5rem;font-weight:600">
            <input type="checkbox" name="clear_product_images" value="1" style="width:auto;margin-top:0.2rem">
            <span>Ürünler sıfırlanırken yüklenen ürün resimlerini de sil</span>
        </label>

        <label>Onay — aşağıya <code>SIFIRLA</code> yaz
            <input type="text" name="confirm" autocomplete="off" placeholder="SIFIRLA" required>
        </label>

        <button class="admin-btn danger" type="submit">Seçilenleri Sıfırla</button>
    </form>
</section>

<style>
.admin-reset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.65rem;
}
.admin-reset-opt {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #d5e0cc;
  background: #fbfdf9;
  font-weight: 600 !important;
  cursor: pointer;
}
.admin-reset-opt input { width: auto !important; }
.admin-reset-opt span { display: grid; gap: 0.15rem; }
.admin-reset-opt small { color: #6b7864; font-weight: 500; }
.admin-reset-opt:has(input:checked) {
  border-color: #9b2c2c;
  background: #fdf2f2;
}
</style>

<?php admin_layout_end(); ?>
