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

$pageTitle = '帖子详情';

$editId = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($editId === 0) {
  redirect('index.php');
}

require_once __DIR__ . '/../app/classes/Post.php';
require_once __DIR__ . '/../app/classes/Comment.php';

$post = new Post();
$postData = $post->getById($editId);

if (!$postData || $postData['status'] !== 'published') {
  redirect('index.php');
}

if (!$postData['author_id'] == $_SESSION['user_id'] && !$GUEST_READ) {
  requireLogin();
}

$post->incrementViews($editId);

$author = getUserById($postData['author_id']);
$groups = [];
$db = Database::getInstance();
$groups = $db->fetchAll("SELECT * FROM groups WHERE post_count > 0 ORDER BY post_count DESC");

// 加载评论
$allComments = $comments = $comments->getByPost($editId);
$replies = $comments->getByPost($editId, $postData['id']);

$content = "
  <div style='max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: 3fr 1fr; gap: 20px;'>
    <div>
      <!-- 帖子内容 -->
      <mdui-card style='padding: 25px;'>
        <div style='margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center;'>
          <div>
            <span style='font-size: 14px; color: var(--mdui-color-primary);'>
              <a href='index.php?group_id={$postData["group_id"]}' style='text-decoration: none;'>
                <?php if(isset($groups[$postData["group_id"]])) { echo $groups[$postData["group_id"]]["name"]; } else { echo '未分类'; } ?>
              </a>
            </span>
          </div>
          <div style='display: flex; gap: 10px;'>
            <a href='edit_post.php?id={$postData["id"]}' style='text-decoration: none; color: var(--mdui-color-primary);'>
              <mdui-button variant='text'>编辑</mdui-button>
            </a>
          </div>
        </div>

        <h2 style='margin: 0 0 20px 0; font-size: 28px;'>{$postData["title"]}</h2>

        <div style='margin-bottom: 20px; padding: 15px; background-color: var(--mdui-color-surface-container-low); border-radius: 8px;'>
          <div style='display: flex; align-items: center; gap: 15px; margin-bottom: 10px;'>
            <a href='profile.php?id={$author["id"]}' style='text-decoration: none; color: var(--mdui-color-primary);'>
              {$author["nickname"]}
            </a>
             <span style='font-size: 12px; color: var(--mdui-color-on-surface-variant);'>
                <?php if(!empty($postData["created_at"])) { echo formatDate($postData["created_at"]); } ?>
             </span>
          </div>
        </div>

        <div style='font-size: 16px; line-height: 1.8; color: var(--mdui-color-on-surface-variant);'>
          {$postData["content"]}
        </div>

        <div style='margin-top: 30px; padding: 20px; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>
          <div style='display: flex; gap: 15px;'>
            <mdui-button variant='outlined'>浏览：{$postData["view_count"]}</mdui-button>
            <mdui-button variant='outlined'>点赞：{$postData["like_count"]}</mdui-button>
            <mdui-button variant='outlined' onclick='window.location.href="share.php?id={$postData["id"]}"'>分享</mdui-button>
          </div>
        </div>
        </div>
      </mdui-card>

      <!-- 评论功能 -->
      <?php if (ENABLE_COMMENT): ?>
        <mdui-card style='padding: 25px; margin-top: 20px;'>
          <h3 style='margin-top: 0; margin-bottom: 20px;'>发表评论</h3>
          <mdui-text-field
            label='评论内容'
            placeholder='写下你的想法...'
            textarea
            rows='4'
            style='margin-bottom: 15px;'>
          </mdui-text-field>
          <div style='display: flex; gap: 10px;'>
            <mdui-button variant='filled' onclick='document.getElementById("comment-form").requestSubmit()'>提交评论</mdui-button>
          </div>
        </mdui-card>
      <?php endif; ?>

      <!-- 评论列表 -->
      <?php if (ENABLE_COMMENT): ?>
        <mdui-card style='padding: 25px; margin-top: 20px;'>
          <h3 style='margin-top: 0; margin-bottom: 20px;'>全部评论 (<?php echo count($allComments); ?>)</h3>
          <div style='display: grid; gap: 20px;'>
            " . ($allComments ? implode('', array_map(function($c) {
              $commentAuthor = getUserById($c['author_id']);
              return "
                <div style='padding: 15px; background-color: var(--mdui-color-surface-container); border-radius: 8px;'>
                  <div style='display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px;'>
                    <div style='display: flex; gap: 10px;'>
                      <a href='profile.php?id={$commentAuthor["id"]}' style='text-decoration: none; color: var(--mdui-color-primary); font-weight: 500;'>{$commentAuthor["nickname"]}</a>
                       <span style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin-top: 3px;'><?php if(!empty($c["created_at"])) { echo formatDate($c["created_at"]); } ?></span>
                    </div>
                      <div style='display: flex; gap: 10px;'>
                        <span style='color: var(--mdui-color-primary);'>点赞：{$c["like_count"]}</span>
                      </div>
                  </div>
                  <div style='margin-left: 10px;'>
                    {$c["content"]}
                  </div>
                </div>
              ";
            }, $allComments)) : "<p style='padding: 10px; text-align: center; color: var(--mdui-color-on-surface-variant);'>暂无评论</p>") . "
          </div>
        </mdui-card>
      <?php endif; ?>
    </div>

    <!-- 侧边栏 -->
    <div style='display: flex; flex-direction: column; gap: 20px;'>
      <!-- 作者信息 -->
      <mdui-card style='padding: 20px;'>
        <h3 style='margin-top: 0;'>作者信息</h3>
        <a href='profile.php?id={$author["id"]}' style='display: block; text-decoration: none; color: var(--mdui-color-primary); margin-bottom: 10px;'>
          {$author["nickname"]}
        </a>
        <p style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin: 3px 0 0 0;'>
          {$author["username"]}
        </p>
        <p style='font-size: 12px; color: var(--mdui-color-on-surface-variant); margin: 3px 0 0 0;'>
          {$author["email"]}
        </p>
      </mdui-card>

      <!-- 相关帖子 -->
      <mdui-card style='padding: 20px;'>
        <h3 style='margin-top: 0;'>相关帖子</h3>
        <div style='display: grid; gap: 10px;'>
          " . (Post::getPopular(3) ? 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"]}
              </a>
            ";
          }, Post::getPopular(3))) : "<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;'>热门群组</h3>
        <div style='display: grid; gap: 10px;'>
          " . ($groups ? 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>
            ";
          }, $groups)) : "<p style='padding: 10px; text-align: center; font-size: 12px; color: var(--mdui-color-on-surface-variant);'>暂无群组</p>") . "
        </div>
      </mdui-card>
    </div>
  </div>
";

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