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

$id = $_SESSION['member_id'];

$message = "";
$messageType = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    requireValidCsrf();

    $old_password     = trim($_POST['old_password']);
    $new_password     = trim($_POST['new_password']);
    $confirm_password = trim($_POST['confirm_password']);

    // ดึงรหัสผ่านเดิม
    $stmt = $conn->prepare("SELECT password FROM members WHERE id=?");
    $stmt->bind_param("i", $id);
    $stmt->execute();

    $result = $stmt->get_result();
    $member = $result->fetch_assoc();

    $stmt->close();

    if (!password_verify($old_password, $member['password'])) {

        $message = "รหัสผ่านเดิมไม่ถูกต้อง";
        $messageType = "danger";

    } elseif (empty($new_password)) {

        $message = "กรุณากรอกรหัสผ่านใหม่";
        $messageType = "warning";

    } elseif (strlen($new_password) < 8) {

        $message = "รหัสผ่านใหม่ต้องมีอย่างน้อย 8 ตัวอักษร";
        $messageType = "warning";

    } elseif ($new_password !== $confirm_password) {

        $message = "รหัสผ่านใหม่ไม่ตรงกัน";
        $messageType = "warning";

    } else {

        $newHash = password_hash($new_password, PASSWORD_DEFAULT);

        $stmt = $conn->prepare(
            "UPDATE members
             SET password=?
             WHERE id=?"
        );

        $stmt->bind_param(
            "si",
            $newHash,
            $id
        );

        if ($stmt->execute()) {

            $message = "เปลี่ยนรหัสผ่านเรียบร้อยแล้ว";
            $messageType = "success";

        } else {

            $message = "ไม่สามารถเปลี่ยนรหัสผ่านได้";
            $messageType = "danger";

        }

        $stmt->close();

    }

}

include 'includes/header.php';
?>

<div class="container mt-5">

    <h2 class="mb-4">
        🔒 เปลี่ยนรหัสผ่าน
    </h2>

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

        <div class="alert alert-<?= $messageType; ?>">
            <?= $message; ?>
        </div>

    <?php endif; ?>

    <form method="post">
        <input type="hidden" name="csrf_token" value="<?= htmlspecialchars(csrfToken()) ?>">

        <div class="card shadow">

            <div class="card-body">

                <div class="mb-3">

                    <label class="form-label">
                        รหัสผ่านเดิม
                    </label>

                    <input
                        type="password"
                        name="old_password"
                        class="form-control"
                        required>

                </div>

                <div class="mb-3">

                    <label class="form-label">
                        รหัสผ่านใหม่
                    </label>

                    <input
                        type="password"
                        name="new_password"
                        class="form-control"
                        required>

                </div>

                <div class="mb-3">

                    <label class="form-label">
                        ยืนยันรหัสผ่านใหม่
                    </label>

                    <input
                        type="password"
                        name="confirm_password"
                        class="form-control"
                        required>

                </div>

                <button
                    type="submit"
                    class="btn btn-success">

                    🔒 เปลี่ยนรหัสผ่าน

                </button>

                <a
                    href="profile.php"
                    class="btn btn-secondary">

                    กลับ

                </a>

            </div>

        </div>

    </form>

</div>

<?php
$conn->close();
include 'includes/footer.php';
?>
