<?php
declare(strict_types=1);
require_once __DIR__ . '/../app/config/bootstrap.php';
require_once __DIR__ . '/../app/core/Auth.php';
require_once __DIR__ . '/../app/core/AdminLayout.php';
require_once __DIR__ . '/../app/core/Csrf.php';
require_once __DIR__ . '/../app/models/SiteSetting.php';

Auth::requireAdmin();

$settingModel = new SiteSetting();
$keys = [
    'seo_meta_description',
    'seo_keywords',
    'seo_canonical_base',
    'seo_og_image',
    'seo_ga_measurement_id',
    'seo_robots_extra',
    'seo_score_note',
];
$defaults = [
    'seo_meta_description' => 'زایلون صنعت — تولید و فروش دستگاه‌های صنعتی و جوجه‌کشی با کیفیت و پشتیبانی.',
    'seo_keywords' => 'زایلون,دستگاه جوجه کشی,صنعتی,صنعت',
    'seo_canonical_base' => rtrim(APP_URL, '/'),
    'seo_og_image' => '',
    'seo_ga_measurement_id' => '',
    'seo_robots_extra' => '',
    'seo_score_note' => 'برای بهبود: توضیح متا را ۱۵۰–۱۶۰ کاراکتر کنید، کلمات کلیدی را به‌روز کنید و sitemap را در گوگل سرچ کنسول ثبت کنید.',
];
$message = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && Csrf::validate($_POST['_csrf'] ?? null)) {
    $settingModel->setMany([
        'seo_meta_description' => trim((string)($_POST['seo_meta_description'] ?? '')),
        'seo_keywords' => trim((string)($_POST['seo_keywords'] ?? '')),
        'seo_canonical_base' => trim((string)($_POST['seo_canonical_base'] ?? '')),
        'seo_og_image' => trim((string)($_POST['seo_og_image'] ?? '')),
        'seo_ga_measurement_id' => trim((string)($_POST['seo_ga_measurement_id'] ?? '')),
        'seo_robots_extra' => trim((string)($_POST['seo_robots_extra'] ?? '')),
        'seo_score_note' => trim((string)($_POST['seo_score_note'] ?? '')),
    ]);
    $message = 'تنظیمات سئو ذخیره شد.';
}
$settings = array_merge($defaults, $settingModel->getMany($keys));

$descLen = mb_strlen($settings['seo_meta_description']);
$score = 70;
if ($descLen >= 120 && $descLen <= 200) {
    $score += 10;
}
if ($settings['seo_keywords'] !== '') {
    $score += 5;
}
if ($settings['seo_og_image'] !== '') {
    $score += 5;
}
$score = min(100, $score);
?>
<!doctype html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="<?= htmlspecialchars(assetPath('/assets/css/admin.css')) ?>">
    <title>سئو</title>
</head>
<body>
<div class="admin-wrap">
    <?php renderAdminSidebar('seo'); ?>
    <main class="content">
        <h1>مدیریت سئو فنی</h1>
        <div class="seo-score-card">
            <strong>شاخص سئو (داخلی): <?= (int)$score ?>/100</strong>
            <p><?= htmlspecialchars((string)$settings['seo_score_note']) ?></p>
            <p>فایل‌های عمومی: <a href="<?= htmlspecialchars(appPath('/public/sitemap.php')) ?>" target="_blank">sitemap.xml</a>
                — <a href="<?= htmlspecialchars(appPath('/public/robots.php')) ?>" target="_blank">robots.txt</a></p>
        </div>
        <?php if ($message): ?><p class="admin-flash ok"><?= htmlspecialchars($message) ?></p><?php endif; ?>
        <form method="post" class="admin-form">
            <input type="hidden" name="_csrf" value="<?= htmlspecialchars(Csrf::token()) ?>">
            <label>توضیحات متا (متای description)</label>
            <textarea name="seo_meta_description" rows="4"><?= htmlspecialchars((string)$settings['seo_meta_description']) ?></textarea>
            <p class="hint">طول فعلی: <?= (int)$descLen ?> کاراکتر</p>

            <label>کلمات کلیدی (با ویرگول)</label>
            <input name="seo_keywords" value="<?= htmlspecialchars((string)$settings['seo_keywords']) ?>">

            <label>آدرس پایه کانونیکال (مثلا <?= htmlspecialchars(rtrim(APP_URL, '/')) ?>)</label>
            <input name="seo_canonical_base" value="<?= htmlspecialchars((string)$settings['seo_canonical_base']) ?>">

            <label>مسیر تصویر Open Graph (نسبت به روت سایت، اختیاری)</label>
            <input name="seo_og_image" placeholder="/assets/img/brand-logo.png" value="<?= htmlspecialchars((string)$settings['seo_og_image']) ?>">

            <label>Google Analytics Measurement ID (اختیاری، مثلا G-XXXX)</label>
            <input name="seo_ga_measurement_id" value="<?= htmlspecialchars((string)$settings['seo_ga_measurement_id']) ?>">

            <label>خطوط اضافی robots.txt (هر خط جدا)</label>
            <textarea name="seo_robots_extra" rows="3"><?= htmlspecialchars((string)$settings['seo_robots_extra']) ?></textarea>

            <label>یادداشت داخلی برای تیم (در سایت نمایش داده نمی‌شود)</label>
            <textarea name="seo_score_note" rows="2"><?= htmlspecialchars((string)$settings['seo_score_note']) ?></textarea>

            <button type="submit">ذخیره</button>
        </form>
    </main>
</div>
</body>
</html>
<?php Performance::finish('admin.seo'); ?>
