<?php
declare(strict_types=1);

require_once __DIR__ . '/../../includes/start.php';
require_role(['admin']);

require_once __DIR__ . '/../_helpers.php';
require_once __DIR__ . '/../_sidebar.php';
require_once __DIR__ . '/_lib.php';

$pdo = seo_admin_db();
$me  = seo_admin_me();
$adminUserId = (int)($me['id'] ?? 0);
$settings = seo_admin_load_settings($pdo);
$flash = seo_admin_get_flash();

$title = admin_tt('seo_title', 'SEO модуль', 'SEO модуль', 'SEO module');
$seoAdminActive = 'index';
$stats = seo_admin_dashboard_stats($pdo);
$tables = seo_admin_module_table_state($pdo);
$redirects = seo_admin_redirects($pdo, 8);
$logs = seo_admin_recent_logs($pdo, 8);
$robotsPath = seo_admin_robots_path();
$robotsExists = is_file($robotsPath);
$robotsSize = $robotsExists ? (int)@filesize($robotsPath) : 0;
$sitemapUrl = '/sitemap.xml.php';

require __DIR__ . '/../../includes/header.php';
?>
<div class="row g-3">
  <div class="col-lg-9">
    <?php require __DIR__ . '/_nav.php'; ?>

    <?php if ($flash): ?>
      <div class="alert alert-<?= seo_admin_h((string)($flash['type'] ?? 'info')) ?>">
        <?= seo_admin_h((string)($flash['message'] ?? '')) ?>
      </div>
    <?php endif; ?>

    <div class="d-flex align-items-center justify-content-between flex-wrap gap-2 mb-3">
      <div>
        <h1 class="h4 mb-1"><?= seo_admin_h($title) ?></h1>
        <div class="text-muted small"><?= seo_admin_h(seo_admin_t('Тепер це вже не довідкова сторінка, а центр керування SEO.', 'Теперь это уже не справочная страница, а центр управления SEO.', 'This is now an SEO control center, not just an info page.')) ?></div>
      </div>
      <div class="d-flex gap-2 flex-wrap">
        <a class="btn btn-outline-primary btn-sm" href="/robots.txt" target="_blank" rel="noopener">robots.txt</a>
        <a class="btn btn-outline-primary btn-sm" href="<?= seo_admin_h($sitemapUrl) ?>" target="_blank" rel="noopener">sitemap</a>
      </div>
    </div>

    <div class="row g-3 mb-3">
      <div class="col-12 col-md-6 col-xl-3">
        <div class="card card-app p-3 h-100">
          <div class="small text-muted mb-1">Users</div>
          <div class="fs-4 fw-semibold"><?= (int)$stats['users_total'] ?></div>
          <div class="small text-muted"><?= seo_admin_h(seo_admin_t('Публічні', 'Публичные', 'Public')) ?>: <?= (int)$stats['users_public'] ?> · <?= seo_admin_h(seo_admin_t('Приватні', 'Приватные', 'Private')) ?>: <?= (int)$stats['users_private'] ?></div>
        </div>
      </div>
      <div class="col-12 col-md-6 col-xl-3">
        <div class="card card-app p-3 h-100">
          <div class="small text-muted mb-1">Groups</div>
          <div class="fs-4 fw-semibold"><?= (int)$stats['groups_total'] ?></div>
          <div class="small text-muted"><?= seo_admin_h(seo_admin_t('Відкриті', 'Открытые', 'Open')) ?>: <?= (int)$stats['groups_open'] ?> · <?= seo_admin_h(seo_admin_t('Закриті', 'Закрытые', 'Closed')) ?>: <?= (int)$stats['groups_closed'] ?></div>
        </div>
      </div>
      <div class="col-12 col-md-6 col-xl-3">
        <div class="card card-app p-3 h-100">
          <div class="small text-muted mb-1"><?= seo_admin_h(seo_admin_t('Контент', 'Контент', 'Content')) ?></div>
          <div class="fs-4 fw-semibold"><?= (int)$stats['posts_total'] ?></div>
          <div class="small text-muted"><?= seo_admin_h(seo_admin_t('Постів', 'Постов', 'Posts')) ?> · <?= seo_admin_h(seo_admin_t('Альбомів', 'Альбомов', 'Albums')) ?>: <?= (int)$stats['albums_total'] ?></div>
        </div>
      </div>
      <div class="col-12 col-md-6 col-xl-3">
        <div class="card card-app p-3 h-100">
          <div class="small text-muted mb-1"><?= seo_admin_h(seo_admin_t('Правила SEO', 'Правила SEO', 'SEO rules')) ?></div>
          <div class="fs-4 fw-semibold"><?= (int)$stats['redirects_active'] ?></div>
          <div class="small text-muted"><?= seo_admin_h(seo_admin_t('Активні редіректи', 'Активные редиректы', 'Active redirects')) ?> · <?= seo_admin_h(seo_admin_t('Сторінки SEO', 'SEO страницы', 'SEO pages')) ?>: <?= (int)$stats['pages_active'] ?></div>
        </div>
      </div>
    </div>

    <div class="row g-3 mb-3">
      <div class="col-12 col-xl-6">
        <div class="card card-app p-3 h-100">
          <div class="fw-semibold mb-2"><?= seo_admin_h(seo_admin_t('Стан модуля', 'Состояние модуля', 'Module status')) ?></div>
          <div class="table-responsive">
            <table class="table table-sm align-middle mb-0">
              <tbody>
                <tr>
                  <td>app_settings</td>
                  <td><?= seo_admin_yes_no_badge($tables['app_settings']) ?></td>
                </tr>
                <tr>
                  <td>seo_redirects</td>
                  <td><?= seo_admin_yes_no_badge($tables['seo_redirects']) ?></td>
                </tr>
                <tr>
                  <td>seo_pages</td>
                  <td><?= seo_admin_yes_no_badge($tables['seo_pages']) ?></td>
                </tr>
                <tr>
                  <td>seo_change_log</td>
                  <td><?= seo_admin_yes_no_badge($tables['seo_change_log']) ?></td>
                </tr>
                <tr>
                  <td>robots.txt</td>
                  <td><?= seo_admin_file_badge($robotsExists) ?><?php if ($robotsExists): ?> <span class="text-muted small ms-2"><?= (int)$robotsSize ?> bytes</span><?php endif; ?></td>
                </tr>
                <tr>
                  <td>sitemap</td>
                  <td><a href="<?= seo_admin_h($sitemapUrl) ?>" target="_blank" rel="noopener"><?= seo_admin_h($sitemapUrl) ?></a></td>
                </tr>
              </tbody>
            </table>
          </div>
        </div>
      </div>
      <div class="col-12 col-xl-6">
        <div class="card card-app p-3 h-100">
          <div class="fw-semibold mb-2"><?= seo_admin_h(seo_admin_t('Ключові перемикачі', 'Ключевые переключатели', 'Key switches')) ?></div>
          <div class="d-flex flex-column gap-2 small">
            <div><?= seo_admin_h(seo_admin_t('SEO модуль', 'SEO модуль', 'SEO module')) ?>: <?= seo_admin_yes_no_badge($settings['seo_enabled'] === '1') ?></div>
            <div>Canonical: <?= seo_admin_yes_no_badge($settings['seo_enable_canonical'] === '1') ?></div>
            <div>OpenGraph: <?= seo_admin_yes_no_badge($settings['seo_enable_og'] === '1') ?></div>
            <div>Twitter: <?= seo_admin_yes_no_badge($settings['seo_enable_twitter'] === '1') ?></div>
            <div>hreflang: <?= seo_admin_yes_no_badge($settings['seo_enable_hreflang'] === '1') ?></div>
            <div>Schema.org: <?= seo_admin_yes_no_badge($settings['seo_enable_schema'] === '1') ?></div>
          </div>
        </div>
      </div>
    </div>

    <div class="row g-3">
      <div class="col-12 col-xl-6">
        <div class="card card-app p-3 h-100">
          <div class="d-flex align-items-center justify-content-between gap-2 mb-2">
            <div class="fw-semibold"><?= seo_admin_h(seo_admin_t('Останні редіректи', 'Последние редиректы', 'Recent redirects')) ?></div>
            <a class="btn btn-sm btn-outline-primary" href="<?= seo_admin_h(seo_admin_url('redirects.php')) ?>"><?= seo_admin_h(seo_admin_t('Керувати', 'Управлять', 'Manage')) ?></a>
          </div>
          <?php if (!$redirects): ?>
            <div class="text-muted small"><?= seo_admin_h(seo_admin_t('Поки що редіректів немає або таблиця ще не створена.', 'Пока редиректов нет или таблица еще не создана.', 'No redirects yet or the table is not created.')) ?></div>
          <?php else: ?>
            <div class="table-responsive">
              <table class="table table-sm align-middle mb-0">
                <thead>
                  <tr>
                    <th><?= seo_admin_h(seo_admin_t('Звідки', 'Откуда', 'From')) ?></th>
                    <th><?= seo_admin_h(seo_admin_t('Куди', 'Куда', 'To')) ?></th>
                    <th><?= seo_admin_h(seo_admin_t('Статус', 'Статус', 'Status')) ?></th>
                  </tr>
                </thead>
                <tbody>
                <?php foreach ($redirects as $row): ?>
                  <tr>
                    <td><code><?= seo_admin_h((string)($row['old_path'] ?? '')) ?></code></td>
                    <td class="text-break"><?= seo_admin_h((string)($row['target_url'] ?? '')) ?></td>
                    <td><?= !empty($row['is_active']) ? '<span class="badge bg-success">ON</span>' : '<span class="badge bg-secondary">OFF</span>' ?> <span class="text-muted small"><?= (int)($row['http_code'] ?? 301) ?></span></td>
                  </tr>
                <?php endforeach; ?>
                </tbody>
              </table>
            </div>
          <?php endif; ?>
        </div>
      </div>
      <div class="col-12 col-xl-6">
        <div class="card card-app p-3 h-100">
          <div class="fw-semibold mb-2"><?= seo_admin_h(seo_admin_t('Журнал останніх змін', 'Журнал последних изменений', 'Recent changes log')) ?></div>
          <?php if (!$logs): ?>
            <div class="text-muted small"><?= seo_admin_h(seo_admin_t('Журнал порожній або таблиця ще не створена.', 'Журнал пуст или таблица еще не создана.', 'Log is empty or the table is not created yet.')) ?></div>
          <?php else: ?>
            <ul class="list-group list-group-flush">
              <?php foreach ($logs as $log): ?>
                <li class="list-group-item px-0">
                  <div class="fw-semibold small"><?= seo_admin_h((string)($log['action_key'] ?? '')) ?></div>
                  <div class="small text-muted"><?= seo_admin_h((string)($log['entity_type'] ?? '')) ?> #<?= (int)($log['entity_id'] ?? 0) ?> · <?= seo_admin_h((string)($log['created_at'] ?? '')) ?></div>
                </li>
              <?php endforeach; ?>
            </ul>
          <?php endif; ?>
        </div>
      </div>
    </div>

  </div>
  <div class="col-lg-3">
    <?php admin_sidebar('seo'); ?>
  </div>
</div>
<?php require __DIR__ . '/../../includes/footer.php'; ?>
