<?php
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../includes/functions.php';

$pageTitle = '首页';

if (GUEST_POST) {
  requireLogin();
}

if (isLoggedIn()) {
  require_once __DIR__ . '/../app/classes/Post.php';
  require_once __DIR__ . '/../app/classes/Group.php';

  $post = new Post();
  $group = new Group();

  $page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
  $groupId = isset($_GET['group_id']) ? intval($_GET['group_id']) : null;

  $posts = $post->getAll($page, $groupId);
  $totalPosts = $post->getTotal($groupId);
  $totalGroups = $group->getTotal();

  $groups = $group->getAll(1);
  $popularGroups = $group->getPopular(3);
  $popularPosts = Post::getPopular(3);

  $content = "
    <div style='display: grid; grid-template-columns: 3fr 1fr; gap: 20px;'>
      <!-- 主内容区 -->
      <div>
        <!-- 顶部操作区 -->
        <div style='margin-bottom: 20px; display: flex; gap: 10px; align-items: center; justify-content: space-between;'>
          <div style='display: flex; gap: 10px;'>
            <?php if (isLoggedIn()): ?>
              <mdui-button variant='filled' icon='add' onclick=\"window.location.href='create_post.php'\">发布帖子</mdui-button>
              <mdui-button variant='outlined' icon='notifications' onclick=\"window.location.href='notifications.php'\">通知</mdui-button>
            <?php else: ?>
              <mdui-button variant='filled' icon='login' onclick=\"window.location.href='login.php'\">登录</mdui-button>
              <?php if (REGISTRATION_ENABLED): ?>
                <mdui-button variant='text' icon='person_add' onclick=\"window.location.href='register.php'\">注册</mdui-button>
              <?php endif; ?>
            <?php endif; ?>
          </div>
        </div>

        <!-- 群组筛选 -->
        <div style='margin-bottom: 20px; display: flex; gap: 10px; flex-wrap: wrap;'>
          <mdui-select label='选择群组' value='$groupId' onchange=\"window.location.href='index.php?group_id=' + this.value\" style='min-width: 200px;'>
            <mdui-menu-item value=''>全部群组</mdui-menu-item>
            " . ($groups ? " " . implode('', array_map(function($g) use ($groupId) {
              $active = $g['id'] == $groupId ? 'selected' : '';
              return "<mdui-menu-item value='{$g["id"]}' {$active}>{$g["name"]}</mdui-menu-item>";
            }, $groups)) : "") . "
          </mdui-select>
        </div>

        <!-- 帖子列表 -->
        <div style='display: grid; gap: 20px;'>
          " . ($posts ? implode('', array_map(function($p) {
            $author = getUserById($p['author_id']);
            return "
              <mdui-card style='overflow: hidden;'>
                <div style='padding: 15px 20px;'>
                  <h3 style='margin: 0 0 10px 0;'>
                    <a href='post.php?id={$p["id"]}' style='text-decoration: none; color: var(--mdui-color-primary); font-size: 18px; font-weight: 500;'>{$p["title"]}</a>
                  </h3>
                  <div style='margin-bottom: 10px;'>
                    <a href='profile.php?id={$p["author_id"]}' style='text-decoration: none; color: var(--mdui-color-primary);'>
                      <mdui-icon slot='icon' name='person'></mdui-icon>
                      {$author["nickname"]}
                    </a>
                    <span style='margin-left: 10px; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>
                      <?php if(!empty($p["created_at"])) { echo formatDate($p["created_at"]); } ?>
                    </span>
                  </div>
                  <div style='font-size: 14px; color: var(--mdui-color-on-surface-variant);'>
                    <mdui-icon slot='icon' name='visibility'></mdui-icon>
                    {$p["view_count"]} 浏览
                    <span style='margin-left: 10px;'><mdui-icon slot='icon' name='thumb_up'></mdui-icon>{$p["like_count"]} 点赞
                  </div>
                </div>
              </mdui-card>
            ";
          }, $posts)) : "<div style='padding: 20px; text-align: center; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>暂无帖子，快去发布第一条吧！</div>") . "
        </div>

        <!-- 分页 -->
        <div style='text-align: center; margin-top: 30px;'>
          <mdui-pagination
            value='$page'
            min='1'
            max='" . ceil($totalPosts / PAGE_SIZE) . "'
            on-change='function(e) { window.location.href=\"index.php?page=\" + e; }'>
          </mdui-pagination>
        </div>
      </div>

      <!-- 侧边栏 -->
      <div style='display: flex; flex-direction: column; gap: 20px;'>
        <!-- 热门群组 -->
        <mdui-card style='padding: 20px;'>
          <h3 style='margin-top: 0; margin-bottom: 15px;'>热门群组</h3>
          <div style='display: grid; gap: 10px;'>
            " . ($popularGroups ? implode('', array_map(function($g) {
              return "
                <a href='index.php?group_id={$g["id"]}' style='display: block; text-decoration: none; color: var(--mdui-color-primary); padding: 10px; border: 1px solid var(--mdui-color-outline-variant); border-radius: 4px;'>
                  {$g["name"]}
                  <p style='margin: 3px 0 0 0; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>
                    {$g["member_count"]} 成员 · {$g["post_count"]} 帖子
                  </p>
                </a>
              ";
            }, $popularGroups)) : "<p style='padding: 10px; text-align: center; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>暂无群组</p>") . "
          </div>
        </mdui-card>

        <!-- 热门帖子 -->
        <mdui-card style='padding: 20px;'>
          <h3 style='margin-top: 0; margin-bottom: 15px;'>热门帖子</h3>
          <div style='display: grid; gap: 10px;'>
            " . ($popularPosts ? implode('', array_map(function($p) {
              return "
                <a href='post.php?id={$p["id"]}' style='display: block; text-decoration: none; color: var(--mdui-color-primary); padding: 10px; border: 1px solid var(--mdui-color-outline-variant); border-radius: 4px;'>
                  {$p["title"]}
                  <p style='margin: 3px 0 0 0; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>
                    {$p["view_count"]} 浏览 · {$p["like_count"]} 点赞
                  </p>
                </a>
              ";
            }, $popularPosts)) : "<p style='padding: 10px; text-align: center; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>暂无帖子</p>") . "
          </div>
        </mdui-card>

        <!-- 统计信息 -->
        <mdui-card style='padding: 20px;'>
          <h3 style='margin-top: 0; margin-bottom: 15px;'>统计信息</h3>
          <div style='display: grid; grid-template-columns: 1fr 1fr; gap: 15px;'>
            <div style='text-align: center; padding: 10px; background-color: var(--mdui-color-surface-container-low); border-radius: 4px;'>
              <h3 style='margin: 0; color: var(--mdui-color-primary); font-size: 20px;'>{$totalPosts}</h3>
              <p style='margin: 3px 0 0 0; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>帖子数</p>
            </div>
            <div style='text-align: center; padding: 10px; background-color: var(--mdui-color-surface-container-low); border-radius: 4px;'>
              <h3 style='margin: 0; color: var(--mdui-color-primary); font-size: 20px;'>{$totalGroups}</h3>
              <p style='margin: 3px 0 0 0; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>群组数</p>
            </div>
          </div>
        </mdui-card>
      </div>
    </div>
  ";
} else {
  $content = "
    <div style='text-align: center; padding: 100px 20px;'>
      <h1 style='font-size: 48px; color: var(--mdui-color-primary);'>欢迎来到 " . SITE_NAME . "</h1>
      <p style='font-size: 24px; color: var(--mdui-color-on-surface-variant); margin: 20px 0;'>" . SITE_DESC . "</p>
      <p style='font-size: 18px; color: var(--mdui-color-on-surface-variant);'>
        加入我们，开始您的社区之旅
      </p>
      <div style='margin-top: 40px; display: flex; justify-content: center; gap: 15px;'>
        <mdui-button variant='filled' icon='login' onclick=\"window.location.href='login.php'\">登录</mdui-button>
        <?php if (REGISTRATION_ENABLED): ?>
          <mdui-button variant='text' icon='person_add' onclick=\"window.location.href='register.php'\">注册</mdui-button>
        <?php endif; ?>
      </div>
      <div style='margin-top: 60px;'>
        <h3 style='margin-bottom: 20px;'>社区特色</h3>
        <div style='display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 800px; margin: 30px auto;'>
          <div style='text-align: center; padding: 20px; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>
            <div style='width: 60px; height: 60px; background-color: var(--mdui-color-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px;'>
              <span style='font-size: 32px; color: white; font-weight: bold;'>G</span>
            </div>
            <p style='margin: 10px 0 0 0; font-weight: 500;'>社区群组</p>
            <p style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin: 3px 0 0 0;'>加入感兴趣的话题群组</p>
          </div>
          <div style='text-align: center; padding: 20px; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>
            <div style='width: 60px; height: 60px; background-color: var(--mdui-color-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px;'>
              <span style='font-size: 32px; color: white; font-weight: bold;'>P</span>
            </div>
            <p style='margin: 10px 0 0 0; font-weight: 500;'>发帖交流</p>
            <p style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin: 3px 0 0 0;'>分享你的观点和见解</p>
          </div>
          <div style='text-align: center; padding: 20px; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>
            <div style='width: 60px; height: 60px; background-color: var(--mdui-color-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px;'>
              <span style='font-size: 32px; color: white; font-weight: bold;'>M</span>
            </div>
            <p style='margin: 10px 0 0 0; font-weight: 500;'>私信功能</p>
            <p style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin: 3px 0 0 0;'>与好友一对一交流</p>
          </div>
        </div>
      </div>
    </div>
  ";
}

require_once __DIR__ . '/../includes/header.php';
echo $content;
require_once __DIR__ . '/../includes/footer.php';
