<?php

declare(strict_types=1);

/**
 * 已登入管理員：建立 fate_visit_log（前台頁腳瀏覽統計）。
 */
require_once __DIR__ . DIRECTORY_SEPARATOR . 'auth.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'layout.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'fate_visit_log.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'fate_db.php';

fate_admin_require_login();

$pdo = fate_app_pdo($dbErr);
if (!$pdo instanceof PDO) {
    fate_admin_layout_start(['page' => '瀏覽紀錄表', 'active' => 'stats']);
    echo '<div class="msg bad">無法連線資料庫'
        . ($dbErr !== null ? '：' . htmlspecialchars($dbErr, ENT_QUOTES, 'UTF-8') : '')
        . '。</div>';
    fate_admin_layout_end();
    exit;
}

$tableExists = fate_visit_log_table_exists($pdo);
$error = null;
$done = false;
$installMessage = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $csrf = isset($_POST['csrf']) && is_string($_POST['csrf']) ? $_POST['csrf'] : '';
    if (!fate_admin_csrf_check($csrf)) {
        $error = '工作階段逾期或驗證失敗，請重新整理後再試。';
    } else {
        $result = fate_visit_log_install($pdo);
        if (empty($result['ok'])) {
            $error = $result['message'] ?? '建立失敗';
        } else {
            $done = true;
            $installMessage = (string) ($result['message'] ?? '已完成');
            $tableExists = fate_visit_log_table_exists($pdo);
        }
    }
}

$csrf = fate_admin_csrf_token();

fate_admin_layout_start(['page' => '瀏覽紀錄表', 'active' => 'stats']);
?>
        <header class="page-head">
            <h1 class="page-title">建立 <code>fate_visit_log</code></h1>
            <p class="sub">
                前台頁腳「本頁瀏覽 N 次」與本週熱門輪播依此表統計。若頁腳顯示「瀏覽統計未連線」或「瀏覽統計表尚未建立」，請在此建立資料表。
                亦可匯入 <code>fate/sql/install.sql</code>，或於 <a href="stats.php">瀏覽統計</a> 頁一鍵建立。
            </p>
        </header>

        <?php if ($done): ?>
            <div class="msg ok"><?= htmlspecialchars($installMessage, ENT_QUOTES, 'UTF-8') ?></div>
        <?php endif; ?>
        <?php if ($error !== null): ?>
            <div class="msg bad"><?= htmlspecialchars($error, ENT_QUOTES, 'UTF-8') ?></div>
        <?php endif; ?>

        <div class="card">
            <p>目前狀態：
                <?php if ($tableExists): ?>
                    <strong style="color:var(--ok,#6bcf8a);">已存在</strong>
                <?php else: ?>
                    <strong style="color:var(--bad,#f08a8a);">尚未建立</strong>
                <?php endif; ?>
            </p>
            <?php if (!$tableExists): ?>
                <form method="post" action="setup_visit_log_table.php" style="margin-top:0.75rem;">
                    <input type="hidden" name="csrf" value="<?= htmlspecialchars($csrf, ENT_QUOTES, 'UTF-8') ?>">
                    <button type="submit">建立資料表</button>
                </form>
            <?php else: ?>
                <p class="sub" style="margin-top:0.5rem;">無需重複建立。請重新整理前台店家頁確認頁腳計數。</p>
            <?php endif; ?>
        </div>
        <div class="page-actions">
            <a class="btn" href="stats.php">瀏覽統計</a>
            <a class="btn" href="index.php">返回概覽</a>
        </div>
<?php
fate_admin_layout_end();
