<?php
require_once 'includes/auth.php';
requireLogin();

$memberId = (int)$_SESSION['member_id'];
$role = $_SESSION['role'] ?? 'member';
$fullname = $_SESSION['fullname'] ?? 'สมาชิก';

/* ===========================
   ตัวแปรส่วนกลาง
=========================== */
$totalMembers = 0;
$totalNews = 0;
$pendingNews = 0;
$publishedNews = 0;
$returnedNews = 0;
$rejectedNews = 0;
$newHelpRequests = 0;

$latestNews = null;

/* ===========================
   กรณีเป็น Admin
=========================== */
if ($role === 'admin') {

    // จำนวนสมาชิกทั้งหมด
    $sqlMembers = "
        SELECT COUNT(*) AS total
        FROM members
    ";

    $resultMembers = $conn->query($sqlMembers);

    if ($resultMembers) {
        $row = $resultMembers->fetch_assoc();
        $totalMembers = (int)$row['total'];
    }

    // สถิติข่าวทั้งหมด
    $sqlNews = "
        SELECT
            COUNT(*) AS total,
            SUM(status = 'pending') AS pending_total,
            SUM(status = 'published') AS published_total,
            SUM(status = 'returned') AS returned_total,
            SUM(status = 'rejected') AS rejected_total
        FROM news
    ";

    $resultNews = $conn->query($sqlNews);

    if ($resultNews) {
        $row = $resultNews->fetch_assoc();

        $totalNews = (int)($row['total'] ?? 0);
        $pendingNews = (int)($row['pending_total'] ?? 0);
        $publishedNews = (int)($row['published_total'] ?? 0);
        $returnedNews = (int)($row['returned_total'] ?? 0);
        $rejectedNews = (int)($row['rejected_total'] ?? 0);
    }

 // จำนวนคำขอความช่วยเหลือใหม่
    $sqlHelpRequests = "
        SELECT COUNT(*) AS total
        FROM contact_messages
        WHERE status = 'new'
    ";

    $resultHelpRequests = $conn->query($sqlHelpRequests);

    if ($resultHelpRequests) {
        $helpRow = $resultHelpRequests->fetch_assoc();
        $newHelpRequests = (int)($helpRow['total'] ?? 0);
    }

    // ข่าวรออนุมัติล่าสุด
    $sqlLatestNews = "
        SELECT
            news.id,
            news.title,
            news.status,
            news.created_at,
            members.prefix,
            members.first_name,
            members.last_name
        FROM news
        LEFT JOIN members
            ON news.member_id = members.id
        WHERE news.status = 'pending'
        ORDER BY news.created_at DESC
        LIMIT 5
    ";

    $latestNews = $conn->query($sqlLatestNews);

/* ===========================
   กรณีเป็นสมาชิกทั่วไป
=========================== */
} else {

    // สถิติข่าวของสมาชิกคนนี้
    $stmt = $conn->prepare("
        SELECT
            COUNT(*) AS total,
            SUM(status = 'pending') AS pending_total,
            SUM(status = 'published') AS published_total,
            SUM(status = 'returned') AS returned_total,
            SUM(status = 'rejected') AS rejected_total
        FROM news
        WHERE member_id = ?
    ");

    $stmt->bind_param("i", $memberId);
    $stmt->execute();

    $resultNews = $stmt->get_result();

    if ($resultNews) {
        $row = $resultNews->fetch_assoc();

        $totalNews = (int)($row['total'] ?? 0);
        $pendingNews = (int)($row['pending_total'] ?? 0);
        $publishedNews = (int)($row['published_total'] ?? 0);
        $returnedNews = (int)($row['returned_total'] ?? 0);
        $rejectedNews = (int)($row['rejected_total'] ?? 0);
    }

    $stmt->close();

    // ข่าวล่าสุดของสมาชิกคนนี้
    $stmtLatest = $conn->prepare("
        SELECT
            id,
            title,
            status,
            created_at
        FROM news
        WHERE member_id = ?
        ORDER BY created_at DESC
        LIMIT 5
    ");

    $stmtLatest->bind_param("i", $memberId);
    $stmtLatest->execute();

    $latestNews = $stmtLatest->get_result();
}

include "includes/header.php";
?>

<div class="container py-5">

    <!-- ส่วนต้อนรับ -->
    <div class="text-center mb-5">

        <?php if ($role === 'admin'): ?>

            <h2 class="fw-bold">
                <i class="fa-solid fa-user-shield text-primary"></i>
                การจัดการระบบ
            </h2>

            <p class="text-muted mb-1">
                ศูนย์ตรวจสอบและบริหารงานของชมรม
            </p>

        <?php else: ?>

            <h2 class="fw-bold">
                <i class="fa-solid fa-house-user text-primary"></i>
                พื้นที่สมาชิก
            </h2>

            <p class="text-muted mb-1">
                จัดการข้อมูลส่วนตัวและติดตามข่าวที่ส่งเข้าระบบ
            </p>

        <?php endif; ?>

        <p class="mt-3 mb-0">
            ยินดีต้อนรับ
            <strong class="text-primary">
                <?= htmlspecialchars($fullname, ENT_QUOTES, 'UTF-8') ?>
            </strong>
        </p>

    </div>
    <?php if ($role !== 'admin'): ?>

    <!-- การ์ดสถิติ -->
    <div class="row g-3 mb-4 dashboard-stats">

        <?php if ($role === 'admin'): ?>

            <!-- สมาชิกทั้งหมด -->
            <div class="col-6 col-md-4 col-lg-2">

                <div class="card shadow-sm border-0 h-100 stat-card">

                    <div class="card-body text-center py-3 px-2">

                        <i class="fa-solid fa-users fa-2x text-primary mb-2"></i>

                        <h6 class="mb-1">
                            สมาชิกทั้งหมด
                        </h6>

                        <h3 class="fw-bold mb-0">
                            <?= $totalMembers ?>
                        </h3>

                        <small class="text-muted">
                            คน
                        </small>

                    </div>

                </div>

            </div>

        <?php endif; ?>


        <!-- ข่าวทั้งหมด / ข่าวของฉัน -->
        <div class="col-6 col-md-4 col-lg-2">

            <div class="card shadow-sm border-0 h-100 stat-card">

                <div class="card-body text-center py-3 px-2">

                    <i class="fa-solid fa-newspaper fa-2x text-success mb-2"></i>

                    <h6 class="mb-1">
                        <?= $role === 'admin' ? 'ข่าวทั้งหมด' : 'ข่าวของฉัน' ?>
                    </h6>

                    <h3 class="fw-bold mb-0">
                        <?= $totalNews ?>
                    </h3>

                    <small class="text-muted">
                        ข่าว
                    </small>

                </div>

            </div>

        </div>


        <!-- รออนุมัติ -->
        <div class="col-6 col-md-4 col-lg-2">

            <div class="card shadow-sm border-0 h-100 stat-card">

                <div class="card-body text-center py-3 px-2">

                    <i class="fa-solid fa-clock fa-2x text-warning mb-2"></i>

                    <h6 class="mb-1">
                        รออนุมัติ
                    </h6>

                    <h3 class="fw-bold mb-0">
                        <?= $pendingNews ?>
                    </h3>

                    <small class="text-muted">
                        ข่าว
                    </small>

                </div>

            </div>

        </div>


        <!-- เผยแพร่แล้ว -->
        <div class="col-6 col-md-4 col-lg-2">

            <div class="card shadow-sm border-0 h-100 stat-card">

                <div class="card-body text-center py-3 px-2">

                    <i class="fa-solid fa-circle-check fa-2x text-success mb-2"></i>

                    <h6 class="mb-1">
                        เผยแพร่แล้ว
                    </h6>

                    <h3 class="fw-bold mb-0">
                        <?= $publishedNews ?>
                    </h3>

                    <small class="text-muted">
                        ข่าว
                    </small>

                </div>

            </div>

        </div>


        <!-- ส่งกลับแก้ไข -->
        <div class="col-6 col-md-4 col-lg-2">

            <div class="card shadow-sm border-0 h-100 stat-card">

                <div class="card-body text-center py-3 px-2">

                    <i class="fa-solid fa-rotate-left fa-2x text-info mb-2"></i>

                    <h6 class="mb-1">
                        ส่งกลับแก้ไข
                    </h6>

                    <h3 class="fw-bold mb-0">
                        <?= $returnedNews ?>
                    </h3>

                    <small class="text-muted">
                        ข่าว
                    </small>

                </div>

            </div>

        </div>


        <!-- ไม่อนุมัติ -->
        <div class="col-6 col-md-4 col-lg-2">

            <div class="card shadow-sm border-0 h-100 stat-card">

                <div class="card-body text-center py-3 px-2">

                    <i class="fa-solid fa-circle-xmark fa-2x text-danger mb-2"></i>

                    <h6 class="mb-1">
                        ไม่อนุมัติ
                    </h6>

                    <h3 class="fw-bold mb-0">
                        <?= $rejectedNews ?>
                    </h3>

                    <small class="text-muted">
                        ข่าว
                    </small>

                </div>

            </div>

        </div>

    </div>
    
 <?php endif; ?>                

<?php if ($role === 'admin'): ?>

        <!-- ศูนย์แจ้งเตือน -->
        <div class="card shadow-sm border-0 mb-4">

            <div class="card-header bg-dark text-white py-3">

                <h5 class="mb-0">
                    <i class="fa-solid fa-bell"></i>
                    ศูนย์แจ้งเตือน
                </h5>

            </div>

            <div class="list-group list-group-flush">

                <a
                    href="admin/news_manage.php"
                    class="list-group-item list-group-item-action
                           d-flex justify-content-between
                           align-items-center py-3"
                >

                    <span>
                        <i class="fa-solid fa-circle text-warning me-2"></i>
                        ข่าวรอการอนุมัติ
                    </span>

                    <?php if ($pendingNews > 0): ?>

                        <span class="badge bg-danger rounded-pill">
                            <?= $pendingNews ?>
                        </span>

                    <?php else: ?>

                        <span class="badge bg-success rounded-pill">
                            0
                        </span>

                    <?php endif; ?>

                </a>

                <a
                    href="admin/contact_manage.php?status=new"
                    class="list-group-item list-group-item-action
                           d-flex justify-content-between
                           align-items-center py-3"
                >

                    <span>
                        <i class="fa-solid fa-circle text-danger me-2"></i>
                        คำขอความช่วยเหลือใหม่
                    </span>

                    <?php if ($newHelpRequests > 0): ?>

                        <span class="badge bg-danger rounded-pill">
                            <?= $newHelpRequests ?>
                        </span>

                    <?php else: ?>

                        <span class="badge bg-success rounded-pill">
                            0
                        </span>

                    <?php endif; ?>

                </a>

            </div>

        </div>

    <?php endif; ?>    

    <!-- ข่าวล่าสุด -->
    <div class="card shadow-sm border-0 mb-4">

        <div class="card-header bg-white py-3">

            <h5 class="mb-0">

                <?php if ($role === 'admin'): ?>

                    <i class="fa-solid fa-clock text-warning"></i>
                    ข่าวที่รอการตรวจสอบล่าสุด

                <?php else: ?>

                    <i class="fa-solid fa-list text-primary"></i>
                    ข่าวล่าสุดของฉัน

                <?php endif; ?>

            </h5>

        </div>

        <div class="card-body p-0">

            <div class="table-responsive">

                <table class="table table-hover mb-0">

                    <thead class="table-light">

                        <tr>

                            <th>หัวข้อข่าว</th>

                            <?php if ($role === 'admin'): ?>
                                <th>ผู้ส่งข่าว</th>
                            <?php endif; ?>

                            <th width="150">สถานะ</th>
                            <th width="170">วันที่ส่ง</th>

                            <?php if ($role === 'admin'): ?>
                                <th width="200">จัดการ</th>
                            <?php endif; ?>

                        </tr>

                    </thead>

                    <tbody>

                    <?php if ($latestNews && $latestNews->num_rows > 0): ?>

                        <?php while ($news = $latestNews->fetch_assoc()): ?>

                            <?php
                            $status = $news['status'] ?? '';

                            if ($status === 'pending') {
                                $statusText = 'รออนุมัติ';
                                $statusClass = 'bg-warning text-dark';
                            } elseif ($status === 'published') {
                                $statusText = 'เผยแพร่แล้ว';
                                $statusClass = 'bg-success';
                            } elseif ($status === 'returned') {
                                $statusText = 'ส่งกลับแก้ไข';
                                $statusClass = 'bg-info text-dark';
                            } elseif ($status === 'rejected') {
                                $statusText = 'ไม่อนุมัติ';
                                $statusClass = 'bg-danger';
                            } else {
                                $statusText = $status;
                                $statusClass = 'bg-secondary';
                            }
                            ?>

                            <tr>

                                <td>
                                    <?= htmlspecialchars(
                                        $news['title'],
                                        ENT_QUOTES,
                                        'UTF-8'
                                    ) ?>
                                </td>

                                <?php if ($role === 'admin'): ?>

                                    <td>
                                        <?= htmlspecialchars(
                                            trim(
                                                ($news['prefix'] ?? '') . ' ' .
                                                ($news['first_name'] ?? '') . ' ' .
                                                ($news['last_name'] ?? '')
                                            ),
                                            ENT_QUOTES,
                                            'UTF-8'
                                        ) ?>
                                    </td>

                                <?php endif; ?>

                                <td>
                                    <span class="badge <?= $statusClass ?>">
                                        <?= htmlspecialchars($statusText) ?>
                                    </span>
                                </td>

                                <td>
                                    <?= date(
                                        "d/m/Y H:i",
                                        strtotime($news['created_at'])
                                    ) ?>
                                </td>

                                <?php if ($role === 'admin'): ?>

                                    <td>

                                        <?php if (($news['status'] ?? '') === 'pending'): ?>
                                            <form
                                                method="post"
                                                action="admin/approve_news.php"
                                                class="d-inline"
                                                onsubmit="return confirm('อนุมัติข่าวนี้ใช่หรือไม่?');"
                                            >
                                                <input type="hidden" name="csrf_token" value="<?= htmlspecialchars(csrfToken()) ?>">
                                                <input type="hidden" name="id" value="<?= (int)$news['id'] ?>">
                                                <button type="submit" class="btn btn-success btn-sm">
                                                    อนุมัติ
                                                </button>
                                            </form>
                                        <?php endif; ?>

                                        <a
                                            href="admin/edit_news.php?id=<?= $news['id'] ?>"
                                            class="btn btn-warning btn-sm"
                                        >
                                            แก้ไข
                                        </a>

                                    </td>

                                <?php endif; ?>

                            </tr>

                        <?php endwhile; ?>

                    <?php else: ?>

                        <tr>

                            <td
                                colspan="<?= $role === 'admin' ? '5' : '3' ?>"
                                class="text-center text-muted py-4"
                            >
                                ยังไม่มีรายการข่าว
                            </td>

                        </tr>

                    <?php endif; ?>

                    </tbody>

                </table>

            </div>

        </div>

    </div>

    <!-- เมนูใช้งาน -->
    <div class="card shadow-sm border-0">

        <div class="card-header bg-dark text-white">

            <h5 class="mb-0">
                <i class="fa-solid fa-bars"></i>
                เมนูใช้งาน
            </h5>

        </div>

        <div class="list-group list-group-flush">

            <?php if ($role === 'admin'): ?>

    <a
        href="admin/member_manage.php"
        class="list-group-item list-group-item-action
               d-flex justify-content-between align-items-center"
    >
        <span>
            <i class="fa-solid fa-users text-primary me-2"></i>
            จัดการสมาชิก
        </span>
    </a>

    <a
        href="admin/news_manage.php"
        class="list-group-item list-group-item-action
               d-flex justify-content-between align-items-center"
    >
        <span>
            <i class="fa-solid fa-newspaper text-success me-2"></i>
            ตรวจสอบและจัดการข่าว
        </span>

        <?php if ($pendingNews > 0): ?>

            <span class="badge bg-danger rounded-pill">
                <?= $pendingNews ?>
            </span>

        <?php endif; ?>
    </a>

    <a
        href="admin/contact_manage.php?status=new"
        class="list-group-item list-group-item-action
               d-flex justify-content-between align-items-center"
    >
        <span>
            <i class="fa-solid fa-envelope text-danger me-2"></i>
            คำขอความช่วยเหลือ
        </span>

        <?php if ($newHelpRequests > 0): ?>

            <span class="badge bg-danger rounded-pill">
                <?= $newHelpRequests ?>
            </span>

        <?php endif; ?>
    </a>

<?php else: ?>

                <a
                    href="profile.php"
                    class="list-group-item list-group-item-action"
                >
                    <i class="fa-solid fa-user text-primary"></i>
                    ข้อมูลส่วนตัว
                </a>

                <a
                    href="edit_profile.php"
                    class="list-group-item list-group-item-action"
                >
                    <i class="fa-solid fa-user-pen text-warning"></i>
                    แก้ไขข้อมูลส่วนตัว
                </a>

                <a
                    href="news_submit.php"
                    class="list-group-item list-group-item-action"
                >
                    <i class="fa-solid fa-paper-plane text-success"></i>
                    ส่งข่าวประชาสัมพันธ์
                </a>

                <a
                    href="members.php"
                    class="list-group-item list-group-item-action"
                >
                    <i class="fa-solid fa-address-book text-info"></i>
                    ทำเนียบสมาชิก
                </a>

            <?php endif; ?>

            <a
                href="index.php"
                class="list-group-item list-group-item-action"
            >
                <i class="fa-solid fa-house text-secondary"></i>
                กลับหน้าเว็บไซต์
            </a>

            <a
                href="logout.php"
                class="list-group-item list-group-item-action text-danger"
            >
                <i class="fa-solid fa-right-from-bracket"></i>
                ออกจากระบบ
            </a>

        </div>

    </div>

</div>

<?php
if (isset($stmtLatest)) {
    $stmtLatest->close();
}

include "includes/footer.php";
?>
