<?php
declare(strict_types=1);

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

require_admin();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $prev = settings_get();
    $prevOg = is_array($prev['og_share'] ?? null) ? $prev['og_share'] : og_share_defaults();

    $mode = (string) ($_POST['image_mode'] ?? 'product_logo');
    if (!in_array($mode, ['product', 'product_logo', 'logo', 'custom'], true)) {
        $mode = 'product_logo';
    }

    $secureText = trim((string) ($_POST['secure_pay_text'] ?? ''));
    if ($secureText === '') {
        $secureText = 'Güvenli ödeme';
    }
    if (mb_strlen($secureText) > 40) {
        $secureText = mb_substr($secureText, 0, 40);
    }

    $customImage = trim((string) ($prevOg['custom_image'] ?? ''));

    if (!empty($_POST['remove_custom_image'])) {
        $customImage = '';
        if ($mode === 'custom') {
            $mode = 'product_logo';
        }
    }

    if (!empty($_FILES['custom_image']['name'])) {
        $saved = save_og_share_image_upload($_FILES['custom_image']);
        if ($saved === false) {
            flash('error', 'Paylaşım resmi yüklenemedi. PNG/JPG dene (tercihen 1200×630).');
            redirect(url('admin/paylasim.php'));
        }
        $customImage = $saved;
        // Resim eklendiyse tüm linklerde bunu kullan
        $mode = 'custom';
    }

    if ($mode === 'custom' && $customImage === '') {
        flash('error', 'Özel resim modu için önce bir resim yükle.');
        redirect(url('admin/paylasim.php'));
    }

    $og = [
        'image_mode' => $mode,
        'custom_image' => $customImage,
        'show_price' => !empty($_POST['show_price']) ? '1' : '0',
        'show_description' => !empty($_POST['show_description']) ? '1' : '0',
        'show_seller' => !empty($_POST['show_seller']) ? '1' : '0',
        'show_shipping' => !empty($_POST['show_shipping']) ? '1' : '0',
        'show_secure_pay' => !empty($_POST['show_secure_pay']) ? '1' : '0',
        'secure_pay_text' => $secureText,
        'rev' => og_share_rev() + 1,
    ];

    $prev['og_share'] = $og;
    settings_save($prev);

    if (function_exists('product_og_cache_purge_all')) {
        product_og_cache_purge_all();
    }

    flash('success', 'Paylaşım kartı ayarları kaydedildi. Yeni linklerde güncel önizleme görünür.');
    redirect(url('admin/paylasim.php'));
}

$og = og_share_settings();
$mode = og_share_image_mode();
$customUrl = og_share_custom_image_url();
$hasCustom = $customUrl !== '';

admin_layout_start('Paylaşım Kartı', 'share');
?>

<section class="admin-panel">
    <h2>WhatsApp / sosyal paylaşım kartı</h2>
    <p class="hint">
        Ürün linki paylaşıldığında görünen başlık, açıklama ve görsel buradan yönetilir.
        Kaydettikten sonra paneldeki <strong>paylaşım linkini</strong> kullan (eski WhatsApp önizlemesi cache’te kalabilir).
    </p>

    <form method="post" enctype="multipart/form-data" class="admin-form">
        <fieldset class="admin-color-field">
            <legend class="bank-logo-box-title" style="padding:0;margin:0 0 0.65rem">Kart görseli (tüm ürünler)</legend>
            <p class="hint" style="margin-top:0">Hangisi kartın üstündeki büyük resim olsun?</p>

            <label class="admin-check">
                <input type="radio" name="image_mode" value="custom" <?= $mode === 'custom' ? 'checked' : '' ?> <?= $hasCustom ? '' : 'disabled' ?>>
                Yüklenen paylaşım resmi (tüm linklerde aynı)
            </label>
            <label class="admin-check">
                <input type="radio" name="image_mode" value="product" <?= $mode === 'product' ? 'checked' : '' ?>>
                Sadece ürün resmi
            </label>
            <label class="admin-check">
                <input type="radio" name="image_mode" value="product_logo" <?= $mode === 'product_logo' ? 'checked' : '' ?>>
                Ürün resmi + köşede site logosu
            </label>
            <label class="admin-check">
                <input type="radio" name="image_mode" value="logo" <?= $mode === 'logo' ? 'checked' : '' ?>>
                Sadece site logosu (tüm ürünlerde aynı)
            </label>
            <p class="hint">Site logosu <a href="<?= e(url('admin/ayarlar.php')) ?>">Site Ayarları</a>ndan gelir.</p>
        </fieldset>

        <div class="bank-logo-box">
            <p class="bank-logo-box-title">Paylaşım resmi ekle</p>
            <p class="hint" style="margin:0 0 0.75rem">
                Bu resmi yükleyip kaydedince <strong>tüm ürün linklerinde</strong> aynı görsel görünür.
                Önerilen boyut: <strong>1200×630</strong> (PNG/JPG).
            </p>
            <div class="bank-logo-preview">
                <?php if ($hasCustom): ?>
                    <img src="<?= e($customUrl) ?>" alt="Paylaşım resmi"
                         style="max-width:220px;max-height:120px;width:auto;object-fit:cover;background:#111;border:1px solid #d5e0cc;border-radius:8px">
                    <div>
                        <strong>Yüklenen paylaşım resmi</strong>
                        <p class="hint" style="margin:0.2rem 0 0">Aktif mod: <?= $mode === 'custom' ? 'tüm linklerde bu resim' : 'yüklü ama seçili değil' ?></p>
                    </div>
                <?php else: ?>
                    <span style="display:inline-grid;place-items:center;width:120px;height:64px;background:#e8f0e4;border:1px dashed #b7c9b0;color:#7a8a72;font-size:0.72rem;text-align:center;padding:0.35rem;border-radius:8px">Resim yok</span>
                    <div>
                        <strong>Henüz resim yok</strong>
                        <p class="hint" style="margin:0.2rem 0 0">Aşağıdan seçip kaydet — otomatik “tüm linklerde aynı” moduna geçer.</p>
                    </div>
                <?php endif; ?>
            </div>
            <label class="bank-logo-file">
                <span>Resim seç / değiştir</span>
                <input type="file" name="custom_image" accept="image/png,image/jpeg,image/webp,image/gif">
            </label>
            <?php if ($hasCustom): ?>
                <label class="admin-check">
                    <input type="checkbox" name="remove_custom_image" value="1">
                    Yüklenen paylaşım resmini kaldır
                </label>
            <?php endif; ?>
        </div>

        <fieldset class="admin-color-field">
            <legend class="bank-logo-box-title" style="padding:0;margin:0 0 0.65rem">Kart metni</legend>
            <p class="hint" style="margin-top:0">WhatsApp kartında ne görünsün?</p>

            <label class="admin-check">
                <input type="checkbox" name="show_price" value="1" <?= og_share_flag('show_price') ? 'checked' : '' ?>>
                Fiyat (başlıkta: Ürün — 520 TL)
            </label>
            <label class="admin-check">
                <input type="checkbox" name="show_seller" value="1" <?= og_share_flag('show_seller') ? 'checked' : '' ?>>
                Satıcı (@kullanıcı ★★★★★)
            </label>
            <label class="admin-check">
                <input type="checkbox" name="show_shipping" value="1" <?= og_share_flag('show_shipping') ? 'checked' : '' ?>>
                Ücretsiz kargo (varsa)
            </label>
            <label class="admin-check">
                <input type="checkbox" name="show_secure_pay" value="1" <?= og_share_flag('show_secure_pay') ? 'checked' : '' ?>>
                Güvenli ödeme yazısı
            </label>
            <label class="admin-check">
                <input type="checkbox" name="show_description" value="1" <?= og_share_flag('show_description') ? 'checked' : '' ?>>
                Ürün açıklaması
            </label>

            <label style="margin-top:0.75rem">Güvenli ödeme kısa metni
                <input type="text" name="secure_pay_text" maxlength="40"
                       value="<?= e((string) ($og['secure_pay_text'] ?? 'Güvenli ödeme')) ?>"
                       placeholder="Güvenli ödeme">
                <p class="hint">Kısa tut (ör. Güvenli ödeme). Kartta diğer satırlarla · ile birleşir.</p>
            </label>
        </fieldset>

        <div class="bank-logo-box">
            <p class="bank-logo-box-title">Örnek satır</p>
            <p class="hint" style="margin:0;line-height:1.55">
                <?php
                $demo = [];
                if (og_share_flag('show_seller')) {
                    $demo[] = '@satıcı ★★★★★';
                }
                if (og_share_flag('show_shipping')) {
                    $demo[] = 'Ücretsiz kargo';
                }
                if (og_share_flag('show_secure_pay')) {
                    $demo[] = og_share_secure_pay_text();
                }
                if (og_share_flag('show_description')) {
                    $demo[] = 'ürün açıklaması…';
                }
                $titleDemo = 'Ürün adı' . (og_share_flag('show_price') ? ' — 520 TL' : '');
                ?>
                <strong><?= e($titleDemo) ?></strong><br>
                <?= e($demo ? implode(' · ', $demo) : '(açıklama satırı boş)') ?>
            </p>
        </div>

        <button class="admin-btn" type="submit">Kaydet</button>
    </form>
</section>

<?php admin_layout_end(); ?>
