<?php
require_once "../includes/auth.php";
requireAdmin();

$message = "";
$messageType = "";
/*
 * แสดงข้อความหลังจากบันทึกและเปลี่ยนหน้า
 */
if (isset($_GET["saved"]) && $_GET["saved"] === "1") {
    $message = "บันทึกการดำเนินการเรียบร้อยแล้ว";
    $messageType = "success";
}

/* ===========================
   อัปเดตสถานะและหมายเหตุ
=========================== */
if ($_SERVER["REQUEST_METHOD"] === "POST") {

    requireValidCsrf();

    $messageId = isset($_POST["message_id"])
        ? (int) $_POST["message_id"]
        : 0;

    /*
     * แยกชื่อเป็น $newStatus
     * เพื่อไม่ให้ซ้ำกับสถานะที่ใช้แสดงรายการด้านล่าง
     */
    $newStatus = trim($_POST["status"] ?? "");
    $adminNote = trim($_POST["admin_note"] ?? "");

    $allowedStatuses = [
        "new",
        "in_progress",
        "completed"
    ];

    if ($messageId <= 0) {

        $message = "ไม่พบรหัสคำขอ";
        $messageType = "danger";

    } elseif (!in_array(
        $newStatus,
        $allowedStatuses,
        true
    )) {

        $message = "สถานะคำขอไม่ถูกต้อง";
        $messageType = "danger";

    } else {

        $stmtUpdate = $conn->prepare("
            UPDATE contact_messages
            SET
                status = ?,
                admin_note = ?,
                updated_at = CURRENT_TIMESTAMP
            WHERE id = ?
        ");

        if ($stmtUpdate) {

            $stmtUpdate->bind_param(
                "ssi",
                $newStatus,
                $adminNote,
                $messageId
            );

            if ($stmtUpdate->execute()) {

                /*
                 * อ่านค่ากลับจากฐานข้อมูลทันที
                 * เพื่อยืนยันว่า status ถูกเก็บจริง
                 */
                $stmtCheck = $conn->prepare("
                    SELECT status
                    FROM contact_messages
                    WHERE id = ?
                    LIMIT 1
                ");

                if ($stmtCheck) {

                    $stmtCheck->bind_param(
                        "i",
                        $messageId
                    );

                    $stmtCheck->execute();

                    $checkResult =
                        $stmtCheck->get_result();

                    $savedRow =
                        $checkResult->fetch_assoc();

                    $savedStatus =
                        $savedRow["status"] ?? "";

                    $stmtCheck->close();

                    if ($savedStatus === $newStatus) {

    /*
     * ยืนยันการบันทึกลงฐานข้อมูล
     * ป้องกันข้อมูลย้อนกลับหลังเปลี่ยนหน้า
     */
    if ($conn->commit()) {

        header(
            "Location: contact_manage.php?status="
            . urlencode($newStatus)
            . "&saved=1"
        );
        exit;

    } else {

        $message =
            "เปลี่ยนสถานะได้แล้ว แต่ยืนยันการบันทึกไม่สำเร็จ: "
            . $conn->error;

        $messageType = "danger";
    }

                    } else {

                        $message =
                            "ระบบยังบันทึกสถานะไม่สำเร็จ "
                            . "ค่าที่เลือก: "
                            . $newStatus
                            . " | ค่าที่อยู่ในฐานข้อมูล: "
                            . $savedStatus;

                        $messageType = "danger";
                    }

                } else {

                    $message =
                        "บันทึกข้อมูลแล้ว แต่ไม่สามารถตรวจสอบสถานะได้: "
                        . $conn->error;

                    $messageType = "danger";
                }

            } else {

                $message =
                    "ไม่สามารถบันทึกข้อมูลได้: "
                    . $stmtUpdate->error;

                $messageType = "danger";
            }

            $stmtUpdate->close();

        } else {

            $message =
                "ระบบไม่สามารถเตรียมการบันทึกข้อมูลได้: "
                . $conn->error;

            $messageType = "danger";
        }
    }
}
$statusFilter = trim($_GET["status"] ?? "");

$allowedFilters = [
    "",
    "new",
    "in_progress",
    "completed"
];

if (!in_array($statusFilter, $allowedFilters, true)) {
    $statusFilter = "";
}

/* ===========================
   นับจำนวนแต่ละสถานะ
=========================== */
$totalMessages = 0;
$newMessages = 0;
$inProgressMessages = 0;
$completedMessages = 0;

$resultCount = $conn->query("
    SELECT
        COUNT(*) AS total,
        SUM(status = 'new') AS new_total,
        SUM(status = 'in_progress') AS in_progress_total,
        SUM(status = 'completed') AS completed_total
    FROM contact_messages
");

if ($resultCount) {

    $countRow = $resultCount->fetch_assoc();

    $totalMessages =
        (int) ($countRow["total"] ?? 0);

    $newMessages =
        (int) ($countRow["new_total"] ?? 0);

    $inProgressMessages =
        (int) ($countRow["in_progress_total"] ?? 0);

    $completedMessages =
        (int) ($countRow["completed_total"] ?? 0);
}

/* ===========================
   ดึงรายการคำขอ
=========================== */
/* ===========================
   ดึงรายการคำขอ
   พร้อมค้นหาสมาชิกจากรหัสนักศึกษา
=========================== */
if ($statusFilter !== "") {

    $stmtList = $conn->prepare("
        SELECT
            cm.*,
            m.id AS matched_member_id,
            m.prefix AS member_prefix,
            m.first_name AS member_first_name,
            m.last_name AS member_last_name
        FROM contact_messages AS cm
        LEFT JOIN members AS m
            ON m.id = cm.member_id
        WHERE cm.status = ?
        ORDER BY cm.created_at DESC
    ");

    $stmtList->bind_param("s", $statusFilter);
    $stmtList->execute();

    $result = $stmtList->get_result();

} else {

    $result = $conn->query("
        SELECT
            cm.*,
            m.id AS matched_member_id,
            m.prefix AS member_prefix,
            m.first_name AS member_first_name,
            m.last_name AS member_last_name
        FROM contact_messages AS cm
        LEFT JOIN members AS m
            ON m.id = cm.member_id
        ORDER BY cm.created_at DESC
    ");
}

include "../includes/header.php";
?>

<section class="member-section">

<div class="container py-4">

    <div
        class="d-flex flex-wrap
               justify-content-between
               align-items-center
               gap-3 mb-4"
    >

        <div>

            <h2 class="mb-1">
                📨 คำขอช่วยเหลือสมาชิก
            </h2>

            <p class="text-muted mb-0">
                ตรวจสอบข้อความและติดตามการช่วยเหลือสมาชิก
            </p>

        </div>

        <a
            href="../dashboard.php"
            class="btn btn-secondary"
        >
            <i class="fa-solid fa-arrow-left"></i>
            กลับ Dashboard
        </a>

    </div>

    <?php if ($message !== ""): ?>

        <div class="alert alert-<?= $messageType ?>">

            <?= htmlspecialchars(
                $message,
                ENT_QUOTES,
                "UTF-8"
            ) ?>

        </div>

    <?php endif; ?>

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

        <div class="col-md-3">

            <a
                href="contact_manage.php"
                class="text-decoration-none"
            >

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

                    <div class="card-body text-center">

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

                        <h6 class="text-dark">
                            ทั้งหมด
                        </h6>

                        <h3 class="fw-bold text-dark">
                            <?= $totalMessages ?>
                        </h3>

                    </div>

                </div>

            </a>

        </div>

        <div class="col-md-3">

            <a
                href="contact_manage.php?status=new"
                class="text-decoration-none"
            >

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

                    <div class="card-body text-center">

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

                        <h6 class="text-dark">
                            คำขอใหม่
                        </h6>

                        <h3 class="fw-bold text-dark">
                            <?= $newMessages ?>
                        </h3>

                    </div>

                </div>

            </a>

        </div>

        <div class="col-md-3">

            <a
                href="contact_manage.php?status=in_progress"
                class="text-decoration-none"
            >

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

                    <div class="card-body text-center">

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

                        <h6 class="text-dark">
                            กำลังดำเนินการ
                        </h6>

                        <h3 class="fw-bold text-dark">
                            <?= $inProgressMessages ?>
                        </h3>

                    </div>

                </div>

            </a>

        </div>

        <div class="col-md-3">

            <a
                href="contact_manage.php?status=completed"
                class="text-decoration-none"
            >

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

                    <div class="card-body text-center">

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

                        <h6 class="text-dark">
                            ดำเนินการเสร็จ
                        </h6>

                        <h3 class="fw-bold text-dark">
                            <?= $completedMessages ?>
                        </h3>

                    </div>

                </div>

            </a>

        </div>

    </div>

    <!-- รายการคำขอ -->
    <?php if ($result && $result->num_rows > 0): ?>

        <?php while ($row = $result->fetch_assoc()): ?>

            <?php
            $currentStatus = $row["status"] ?? "new";

            if ($currentStatus === "new") {

    $statusText = "คำขอใหม่";
    $statusClass = "bg-danger";

} elseif ($currentStatus === "in_progress") {

    $statusText = "กำลังดำเนินการ";
    $statusClass = "bg-warning text-dark";

} else {

    $statusText = "ดำเนินการเสร็จ";
    $statusClass = "bg-success";
            }

            $contactMethod =
                $row["contact_method"] ?? "";

            if ($contactMethod === "line") {

                $contactMethodText = "LINE";

            } elseif ($contactMethod === "email") {

                $contactMethodText = "Email";

            } elseif ($contactMethod === "phone") {

                $contactMethodText = "โทรศัพท์";

            } else {

                $contactMethodText = "ช่องทางอื่น";
            }
            ?>

            <div class="card shadow-sm border-0 mb-4">

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

                    <div
                        class="d-flex flex-wrap
                               justify-content-between
                               align-items-center gap-2"
                    >

                        <div>

                            <h5 class="mb-1">

                                <?= htmlspecialchars(
                                    $row["subject"],
                                    ENT_QUOTES,
                                    "UTF-8"
                                ) ?>

                            </h5>

                            <small class="text-muted">

                                ส่งเมื่อ
                                <?= date(
                                    "d/m/Y H:i",
                                    strtotime($row["created_at"])
                                ) ?>

                            </small>

                        </div>

                        <span class="badge <?= $statusClass ?>">

                            <?= $statusText ?>

                        </span>

                    </div>

                </div>

                <div class="card-body">

                    <div class="row g-4">

                        <div class="col-lg-6">

                            <p>
                                <strong>ชื่อ–นามสกุล</strong><br>

                                <?= htmlspecialchars(
                                    $row["full_name"],
                                    ENT_QUOTES,
                                    "UTF-8"
                                ) ?>
                            </p>

                            <p>
    <strong>รหัสนักศึกษา</strong><br>

    <?php if (!empty($row["student_id"])): ?>

        <?= htmlspecialchars(
            $row["student_id"],
            ENT_QUOTES,
            "UTF-8"
        ) ?>

        <br>

        <?php if (!empty($row["matched_member_id"])): ?>

            <span class="badge bg-success mt-2">
                <i class="fa-solid fa-circle-check"></i>
                พบสมาชิกในระบบ
            </span>

            <div class="small text-muted mt-1">
                <?= htmlspecialchars(
                    trim(
                        ($row["member_prefix"] ?? "") . " " .
                        ($row["member_first_name"] ?? "") . " " .
                        ($row["member_last_name"] ?? "")
                    ),
                    ENT_QUOTES,
                    "UTF-8"
                ) ?>
            </div>

        <?php else: ?>

            <span class="badge bg-danger mt-2">
                <i class="fa-solid fa-circle-xmark"></i>
                คำขอนี้ยังไม่ได้เชื่อมกับสมาชิก
            </span>

            <div class="small text-danger mt-1">
                กรุณาตรวจสอบข้อมูลผู้ส่งคำขอ
                ก่อนดำเนินการรีเซ็ตรหัสผ่าน
            </div>

        <?php endif; ?>

    <?php else: ?>

        <span class="text-muted">
            ไม่ได้ระบุ
        </span>

        <br>

        <span class="badge bg-secondary mt-2">
            ไม่สามารถเชื่อมกับสมาชิกได้
        </span>

    <?php endif; ?>
</p>

                            <p>
                                <strong>ช่องทางติดต่อกลับ</strong><br>

                                <?= $contactMethodText ?>
                            </p>

                            <p>
                                <strong>ข้อมูลสำหรับติดต่อกลับ</strong><br>

                                <?= htmlspecialchars(
                                    $row["contact_detail"],
                                    ENT_QUOTES,
                                    "UTF-8"
                                ) ?>
                            </p>

                        </div>

                        <div class="col-lg-6">

                            <p>
                                <strong>รายละเอียดคำขอ</strong>
                            </p>

                            <div class="alert alert-light border">

                                <?= nl2br(
                                    htmlspecialchars(
                                        $row["message"],
                                        ENT_QUOTES,
                                        "UTF-8"
                                    )
                                ) ?>

                            </div>

                        </div>

                    </div>

                    <hr>

                    <form method="post">

                        <input
                            type="hidden"
                            name="csrf_token"
                            value="<?= htmlspecialchars(
                                csrfToken(),
                                ENT_QUOTES,
                                "UTF-8"
                            ) ?>"
                        >

                        <input
                            type="hidden"
                            name="message_id"
                            value="<?= (int) $row["id"] ?>"
                        >

                        <div class="row g-3">

                            <div class="col-md-4">

                                <label class="form-label fw-bold">
                                    สถานะคำขอ
                                </label>

                                <select
                                    name="status"
                                    class="form-select"
                                    required
                                >

                                    <option
                                        value="new"
                                        <?= $row["status"] === "new"
                                            ? "selected"
                                            : "" ?>
                                    >
                                        คำขอใหม่
                                    </option>

                                    <option
                                        value="in_progress"
                                        <?= $row["status"] === "in_progress"
                                            ? "selected"
                                            : "" ?>
                                    >
                                        กำลังดำเนินการ
                                    </option>

                                    <option
                                        value="completed"
                                        <?= $row["status"] === "completed"
                                            ? "selected"
                                            : "" ?>
                                    >
                                        ดำเนินการเสร็จ
                                    </option>

                                </select>

                            </div>

                            <div class="col-md-8">

                                <label class="form-label fw-bold">
                                    หมายเหตุผู้ดูแล
                                </label>

                                <textarea
                                    name="admin_note"
                                    class="form-control"
                                    rows="3"
                                    placeholder="เช่น ตรวจสอบข้อมูลแล้ว และติดต่อสมาชิกผ่าน LINE"
                                ><?= htmlspecialchars(
                                    $row["admin_note"] ?? "",
                                    ENT_QUOTES,
                                    "UTF-8"
                                ) ?></textarea>

                            </div>

                        </div>

                        <div class="text-end mt-3">

                           <?php if (
    $row["subject"]
    === "ลืมรหัสสมาชิกหรือรหัสผ่าน"
): ?>

    <?php if (!empty($row["matched_member_id"])): ?>

        <a
            href="reset_password.php?id=<?= (int) $row["matched_member_id"] ?>&contact_id=<?= (int) $row["id"] ?>"
            class="btn btn-outline-primary"
        >
            <i class="fa-solid fa-key"></i>
            รีเซ็ตรหัสผ่านสมาชิกคนนี้
        </a>

    <?php else: ?>

        <button
            type="button"
            class="btn btn-outline-secondary"
            disabled
        >
            <i class="fa-solid fa-triangle-exclamation"></i>
            ไม่พบสมาชิก จึงยังรีเซ็ตไม่ได้
        </button>

    <?php endif; ?>

<?php endif; ?>

                            <button
                                type="submit"
                                class="btn btn-primary"
                            >
                                <i class="fa-solid fa-floppy-disk"></i>
                                บันทึกการดำเนินการ
                            </button>

                        </div>

                    </form>

                </div>

            </div>

        <?php endwhile; ?>

    <?php else: ?>

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

            <div class="card-body text-center py-5">

                <i
                    class="fa-solid fa-inbox
                           fa-3x text-muted mb-3"
                ></i>

                <h5>ยังไม่มีคำขอในรายการนี้</h5>

                <p class="text-muted mb-0">
                    เมื่อสมาชิกส่งข้อความ คำขอจะปรากฏที่หน้านี้
                </p>

            </div>

        </div>

    <?php endif; ?>

</div>

</section>

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

include "../includes/footer.php";
?>