<?php
require_once __DIR__ . '/config/db.php';
require_once __DIR__ . '/helpers/jwt_helper.php';
require_once __DIR__ . '/helpers/auth.php';

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// 1. ตรวจสอบการล็อกอิน (บังคับล็อกอินสำหรับลูกค้าเท่านั้น)
$currentUser = get_current_user_data();
if (!$currentUser) {
    header("Location: login.php");
    exit();
}

// 2. ถ้าเป็น Admin ให้ Redirect ไปที่ admin/profile.php ของแอดมินโดยเฉพาะ
if (in_array($currentUser['role'], ['admin', 'super_admin'])) {
    header("Location: admin/profile.php");
    exit();
}

$error = '';
$success = '';

// ดึงข้อมูลลูกค้าปัจจุบันล่าสุดจากตาราง users
try {
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
    $stmt->execute([$currentUser['id']]);
    $user = $stmt->fetch();

    if (!$user) {
        die("ไม่พบข้อมูลผู้ใช้ในระบบ");
    }

    // ดึงประวัติรายการสั่งซื้อของลูกค้านี้
    $stmtOrders = $pdo->prepare("SELECT * FROM orders WHERE user_id = ? ORDER BY created_at DESC");
    $stmtOrders->execute([$user['id']]);
    $myOrders = $stmtOrders->fetchAll();

} catch (PDOException $e) {
    die("เกิดข้อผิดพลาดในการดึงข้อมูล: " . $e->getMessage());
}

// เมื่อมีการส่งฟอร์มอัปเดตโปรไฟล์
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';

    // อัปเดตรูปโปรไฟล์ (Avatar Preset หรือ Upload)
    if ($action === 'update_avatar') {
        $avatar_choice = $_POST['avatar_preset'] ?? '';
        $final_avatar = $user['avatar'] ?? '';

        if (isset($_FILES['avatar_file']) && $_FILES['avatar_file']['error'] === UPLOAD_ERR_OK) {
            $file = $_FILES['avatar_file'];
            $allowedExts = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
            $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));

            if (in_array($ext, $allowedExts)) {
                $uploadDir = __DIR__ . '/uploads/avatars/';
                if (!is_dir($uploadDir)) {
                    mkdir($uploadDir, 0777, true);
                }
                $filename = 'customer_' . $user['id'] . '_' . time() . '.' . $ext;
                $targetPath = $uploadDir . $filename;

                if (move_uploaded_file($file['tmp_name'], $targetPath)) {
                    $final_avatar = 'uploads/avatars/' . $filename;
                } else {
                    $error = 'ไม่สามารถบันทึกไฟล์รูปภาพได้';
                }
            } else {
                $error = 'อนุญาตเฉพาะไฟล์รูปภาพ (JPG, PNG, GIF, WEBP) เท่านั้น';
            }
        } elseif (!empty($avatar_choice)) {
            $final_avatar = $avatar_choice;
        }

        if (empty($error)) {
            try {
                $stmtAv = $pdo->prepare("UPDATE users SET avatar = ? WHERE id = ?");
                $stmtAv->execute([$final_avatar, $user['id']]);
                $user['avatar'] = $final_avatar;
                $success = 'อัปเดตรูปโปรไฟล์สำเร็จแล้ว!';
            } catch (PDOException $e) {
                $error = 'เกิดข้อผิดพลาด: ' . $e->getMessage();
            }
        }
    }

    // อัปเดตชื่อผู้ใช้, ชื่อ-นามสกุล, อีเมล, เบอร์โทร และที่อยู่
    if ($action === 'update_profile') {
        $username = trim($_POST['username'] ?? '');
        $full_name = trim($_POST['full_name'] ?? '');
        $email = trim($_POST['email'] ?? '');
        $phone = trim($_POST['phone'] ?? '');
        $address = trim($_POST['address'] ?? '');

        if (empty($username) || empty($email)) {
            $error = 'กรุณากรอกชื่อผู้ใช้งานและอีเมลให้ครบถ้วน';
        } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $error = 'รูปแบบอีเมลไม่ถูกต้อง';
        } else {
            try {
                $stmtCheck = $pdo->prepare("SELECT id FROM users WHERE (username = ? OR email = ?) AND id != ?");
                $stmtCheck->execute([$username, $email, $user['id']]);
                if ($stmtCheck->fetch()) {
                    $error = 'ชื่อผู้ใช้งานหรืออีเมลนี้ถูกใช้งานแล้วในระบบ';
                } else {
                    $stmtUpdate = $pdo->prepare("UPDATE users SET username = ?, full_name = ?, email = ?, phone = ?, address = ? WHERE id = ?");
                    $stmtUpdate->execute([$username, $full_name, $email, $phone, $address, $user['id']]);

                    $user['username'] = $username;
                    $user['full_name'] = $full_name;
                    $user['email'] = $email;
                    $user['phone'] = $phone;
                    $user['address'] = $address;
                    $success = 'อัปเดตข้อมูลส่วนตัวเรียบร้อยแล้ว!';
                }
            } catch (PDOException $e) {
                $error = 'ไม่สามารถอัปเดตข้อมูลได้: ' . $e->getMessage();
            }
        }
    }

    // เปลี่ยนรหัสผ่าน
    if ($action === 'change_password') {
        $current_password = $_POST['current_password'] ?? '';
        $new_password = $_POST['new_password'] ?? '';
        $confirm_password = $_POST['confirm_password'] ?? '';

        if (empty($current_password) || empty($new_password) || empty($confirm_password)) {
            $error = 'กรุณากรอกรหัสผ่านให้ครบถ้วนทุกช่อง';
        } elseif (!password_verify($current_password, $user['password'])) {
            $error = 'รหัสผ่านปัจจุบันไม่ถูกต้อง';
        } elseif (strlen($new_password) < 6) {
            $error = 'รหัสผ่านใหม่ต้องมีความยาวอย่างน้อย 6 ตัวอักษร';
        } elseif ($new_password !== $confirm_password) {
            $error = 'รหัสผ่านใหม่และการยืนยันรหัสผ่านไม่ตรงกัน';
        } else {
            try {
                $newHash = password_hash($new_password, PASSWORD_BCRYPT);
                $stmtPass = $pdo->prepare("UPDATE users SET password = ? WHERE id = ?");
                $stmtPass->execute([$newHash, $user['id']]);

                $user['password'] = $newHash;
                $success = 'เปลี่ยนรหัสผ่านสำเร็จเรียบร้อย!';
            } catch (PDOException $e) {
                $error = 'ไม่สามารถเปลี่ยนรหัสผ่านได้: ' . $e->getMessage();
            }
        }
    }
}
?>
<!DOCTYPE html>
<html lang="th">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CyberGear // โปรไฟล์ของฉัน</title>
    <link rel="stylesheet" href="assets/css/style.css">
</head>
<body>

    <nav class="navbar">
        <a href="index.php" class="navbar-brand">
            CYBER<span class="brand-red">GEAR</span>
        </a>
        <div class="navbar-menu">
            <a href="index.php" class="nav-link">หน้าร้านค้า</a>
            <a href="cart.php" class="nav-link">ตะกร้าสินค้า</a>
            <a href="profile.php" class="nav-link active" style="color: var(--neon-green);">👤 โปรไฟล์ของฉัน</a>
            <a href="logout.php" class="btn-cyber" style="padding: 0.4rem 0.9rem; font-size: 0.75rem; border-color: var(--text-gray);">ออกจากระบบ</a>
        </div>
    </nav>

    <div class="container" style="max-width: 1200px; margin-top: 2rem;">

        <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem;">
            <div>
                <h1 style="font-size: 2.2rem; text-shadow: 0 0 10px var(--glow-green); color: var(--text-white);">👤 โปรไฟล์ของฉัน (Customer Profile)</h1>
                <p style="color: var(--text-gray); font-size: 0.95rem;">จัดการข้อมูลส่วนตัว รูปโปรไฟล์ และตรวจสอบประวัติการสั่งซื้อพัสดุ</p>
            </div>
            <a href="index.php" class="btn-cyber btn-green" style="font-size: 0.85rem; padding: 0.6rem 1.2rem;">🛒 เลือกซื้อสินค้าต่อ</a>
        </div>

        <?php if ($error): ?>
            <div class="cyber-alert cyber-alert-error" style="margin-bottom: 1.5rem;">
                <strong>[เกิดข้อผิดพลาด]</strong> <?php echo htmlspecialchars($error); ?>
            </div>
        <?php endif; ?>

        <?php if ($success): ?>
            <div class="cyber-alert" style="border-color: var(--neon-green); color: var(--neon-green); background: rgba(0, 255, 102, 0.1); padding: 1rem; border-radius: 8px; margin-bottom: 1.5rem; text-shadow: 0 0 5px var(--glow-green);">
                <strong>[สำเร็จ]</strong> <?php echo htmlspecialchars($success); ?>
            </div>
        <?php endif; ?>

        <div style="display: grid; grid-template-columns: 300px 1fr; gap: 2rem; align-items: start;">
            
            <!-- บัตรข้อมูลโปรไฟล์สรุปภาพรวม (Sidebar Card) -->
            <div class="cyber-card" style="text-align: center; padding: 2rem 1.5rem;">
                
                <div style="position: relative; width: 110px; height: 110px; margin: 0 auto 1.2rem auto;">
                    <?php if (!empty($user['avatar']) && file_exists(__DIR__ . '/' . $user['avatar'])): ?>
                        <img src="<?php echo htmlspecialchars($user['avatar']); ?>" alt="Customer Avatar" style="width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 3px solid var(--neon-green); box-shadow: 0 0 20px rgba(0,255,102,0.4);">
                    <?php elseif (!empty($user['avatar']) && strpos($user['avatar'], 'http') === 0): ?>
                        <img src="<?php echo htmlspecialchars($user['avatar']); ?>" alt="Customer Avatar" style="width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 3px solid var(--neon-green); box-shadow: 0 0 20px rgba(0,255,102,0.4);">
                    <?php else: ?>
                        <div style="width: 110px; height: 110px; border-radius: 50%; background: linear-gradient(135deg, rgba(0,255,102,0.2), rgba(0,240,255,0.2)); border: 3px solid var(--neon-green); display: flex; align-items: center; justify-content: center; font-size: 3.2rem; box-shadow: 0 0 20px rgba(0,255,102,0.4);">
                            🛍️
                        </div>
                    <?php endif; ?>
                </div>

                <h3 style="color: #ffffff; font-size: 1.3rem; margin-bottom: 0.3rem;">
                    <?php echo htmlspecialchars($user['username']); ?>
                </h3>
                <p style="color: var(--text-gray); font-size: 0.9rem; margin-bottom: 1rem;">
                    <?php echo htmlspecialchars($user['email']); ?>
                </p>

                <div style="margin-bottom: 1.5rem;">
                    <span class="badge" style="font-size: 0.85rem; padding: 4px 12px; background: rgba(0, 255, 102, 0.15); border: 1.5px solid var(--neon-green); color: var(--neon-green); text-transform: uppercase;">
                        🛒 สมาชิก VIP ลูกค้า
                    </span>
                </div>

                <div style="background: rgba(0,0,0,0.4); border: 1px solid var(--border-color); border-radius: 8px; padding: 1rem; text-align: left; font-size: 0.85rem; line-height: 1.8;">
                    <div style="color: var(--text-gray);">🆔 รหัสสมาชิก: <strong style="color: #fff; font-family: monospace;">#<?php echo $user['id']; ?></strong></div>
                    <div style="color: var(--text-gray);">📦 ประวัติการสั่งซื้อ: <strong style="color: var(--neon-green);"><?php echo count($myOrders); ?> รายการ</strong></div>
                    <div style="color: var(--text-gray);">📅 วันที่สมัคร: <span style="color: #fff;"><?php echo date('d/m/Y', strtotime($user['created_at'])); ?></span></div>
                </div>
            </div>

            <!-- ฟอร์มแก้ไขข้อมูล -->
            <div style="display: flex; flex-direction: column; gap: 2rem;">

                <!-- 1. เปลี่ยนรูปโปรไฟล์ Avatar -->
                <div class="cyber-card">
                    <h3 style="margin-bottom: 1.2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.6rem; color: var(--text-white); text-transform: uppercase;">
                        🖼️ เปลี่ยนรูปโปรไฟล์ประจำตัว (Avatar)
                    </h3>

                    <form action="profile.php" method="POST" enctype="multipart/form-data">
                        <input type="hidden" name="action" value="update_avatar">

                        <div style="margin-bottom: 1.5rem;">
                            <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff; margin-bottom: 0.8rem;">เลือกรูปโปรไฟล์สำเร็จรูป (Preset):</label>
                            <div style="display: flex; gap: 1rem; flex-wrap: wrap;">
                                <?php 
                                    $presets = [
                                        'https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=200&auto=format&fit=crop&q=80',
                                        'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&auto=format&fit=crop&q=80',
                                        'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=200&auto=format&fit=crop&q=80',
                                        'https://images.unsplash.com/photo-1539571696357-5a69c17a67c6?w=200&auto=format&fit=crop&q=80',
                                        'https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?w=200&auto=format&fit=crop&q=80'
                                    ];
                                    foreach ($presets as $presetUrl):
                                ?>
                                    <label style="cursor: pointer; position: relative;">
                                        <input type="radio" name="avatar_preset" value="<?php echo $presetUrl; ?>" style="position: absolute; opacity: 0;" <?php echo ($user['avatar'] === $presetUrl) ? 'checked' : ''; ?>>
                                        <img src="<?php echo $presetUrl; ?>" style="width: 65px; height: 65px; border-radius: 50%; object-fit: cover; border: 2px solid <?php echo ($user['avatar'] === $presetUrl) ? 'var(--neon-green)' : '#444'; ?>; padding: 2px; transition: all 0.2s;">
                                    </label>
                                <?php endforeach; ?>
                            </div>
                        </div>

                        <div class="cyber-input-group" style="margin-bottom: 1.5rem;">
                            <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">หรืออัปโหลดรูปโปรไฟล์จากอุปกรณ์ของคุณ:</label>
                            <input type="file" name="avatar_file" class="cyber-input" accept="image/*" style="font-size: 0.9rem; color: #ffffff; background: #181818; padding: 0.6rem;">
                            <span style="font-size: 0.8rem; color: var(--text-gray); margin-top: 0.3rem; display: block;">รองรับไฟล์ JPG, PNG, WEBP หรือ GIF</span>
                        </div>

                        <div>
                            <button type="submit" class="btn-cyber btn-green" style="padding: 0.65rem 1.6rem; font-size: 0.9rem;">
                                🖼️ บันทึกรูปโปรไฟล์
                            </button>
                        </div>
                    </form>
                </div>

                <!-- 2. แก้ไขข้อมูลส่วนตัว -->
                <div class="cyber-card">
                    <h3 style="margin-bottom: 1.2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.6rem; color: var(--text-white); text-transform: uppercase;">
                        ✏️ แก้ไขข้อมูลส่วนตัว (Profile Info)
                    </h3>

                    <form action="profile.php" method="POST">
                        <input type="hidden" name="action" value="update_profile">

                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.2rem;">
                            <div class="cyber-input-group" style="margin-bottom: 0;">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">ชื่อผู้ใช้งาน (Username) *:</label>
                                <input type="text" name="username" class="cyber-input" value="<?php echo htmlspecialchars($user['username']); ?>" required style="font-size: 0.95rem; color: #ffffff; background: #181818;">
                            </div>

                            <div class="cyber-input-group" style="margin-bottom: 0;">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">ชื่อ-นามสกุลจริง:</label>
                                <input type="text" name="full_name" class="cyber-input" value="<?php echo htmlspecialchars($user['full_name'] ?? ''); ?>" placeholder="เช่น นายสมชาย ใจดี" style="font-size: 0.95rem; color: #ffffff; background: #181818;">
                            </div>
                        </div>

                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.2rem;">
                            <div class="cyber-input-group" style="margin-bottom: 0;">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">อีเมลของคุณ (Email Address) *:</label>
                                <input type="email" name="email" class="cyber-input" value="<?php echo htmlspecialchars($user['email']); ?>" required style="font-size: 0.95rem; color: #ffffff; background: #181818;">
                            </div>

                            <div class="cyber-input-group" style="margin-bottom: 0;">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">เบอร์โทรศัพท์ติดต่อ:</label>
                                <input type="tel" name="phone" class="cyber-input" value="<?php echo htmlspecialchars($user['phone'] ?? ''); ?>" placeholder="เช่น 0812345678" style="font-size: 0.95rem; color: #ffffff; background: #181818;">
                            </div>
                        </div>

                        <div class="cyber-input-group" style="margin-bottom: 1.5rem;">
                            <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">ที่อยู่สำหรับจัดส่งสินค้า:</label>
                            <textarea name="address" class="cyber-input" rows="2" placeholder="บ้านเลขที่, ถนน, แขวง/ตำบล, เขต/อำเภอ, จังหวัด, รหัสไปรษณีย์" style="font-size: 0.92rem; color: #ffffff; background: #181818; resize: vertical; min-height: 60px;"><?php echo htmlspecialchars($user['address'] ?? ''); ?></textarea>
                        </div>

                        <div>
                            <button type="submit" class="btn-cyber btn-green" style="padding: 0.75rem 1.8rem; font-size: 0.95rem;">
                                💾 บันทึกข้อมูลส่วนตัว
                            </button>
                        </div>
                    </form>
                </div>

                <!-- 3. เปลี่ยนรหัสผ่าน -->
                <div class="cyber-card">
                    <h3 style="margin-bottom: 1.2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.6rem; color: var(--text-white); text-transform: uppercase;">
                        🔑 เปลี่ยนรหัสผ่าน (Change Password)
                    </h3>

                    <form action="profile.php" method="POST">
                        <input type="hidden" name="action" value="change_password">

                        <div class="cyber-input-group" style="margin-bottom: 1.2rem;">
                            <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">รหัสผ่านเดิม (Current Password):</label>
                            <input type="password" name="current_password" class="cyber-input" placeholder="กรอกรหัสผ่านเดิมเพื่อยืนยันตัวตน" required style="font-size: 1rem; color: #ffffff; background: #181818;">
                        </div>

                        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem;">
                            <div class="cyber-input-group">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">รหัสผ่านใหม่ (New Password):</label>
                                <input type="password" name="new_password" class="cyber-input" placeholder="อย่างน้อย 6 ตัวอักษร" required style="font-size: 1rem; color: #ffffff; background: #181818;">
                            </div>
                            <div class="cyber-input-group">
                                <label class="cyber-label" style="font-size: 0.95rem; color: #ffffff;">ยืนยันรหัสผ่านใหม่:</label>
                                <input type="password" name="confirm_password" class="cyber-input" placeholder="กรอกรหัสผ่านใหม่อีกครั้ง" required style="font-size: 1rem; color: #ffffff; background: #181818;">
                            </div>
                        </div>

                        <div>
                            <button type="submit" class="btn-cyber" style="padding: 0.75rem 1.8rem; font-size: 0.95rem; border-color: var(--neon-red); color: #ffffff; background: rgba(255, 0, 85, 0.15);">
                                🔒 เปลี่ยนรหัสผ่านใหม่
                            </button>
                        </div>
                    </form>
                </div>

                <!-- 4. ประวัติคำสั่งซื้อ -->
                <div class="cyber-card">
                    <h3 style="margin-bottom: 1.2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.6rem; color: var(--text-white); text-transform: uppercase;">
                        📦 ประวัติการสั่งซื้อพัสดุของคุณ
                    </h3>

                    <?php if (empty($myOrders)): ?>
                        <div style="text-align: center; color: var(--text-gray); padding: 2rem;">
                            คุณยังไม่มีประวัติการสั่งซื้อสินค้ากับเรา <a href="index.php" style="color: var(--neon-green);">เริ่มเลือกช้อปสินค้าเลย &raquo;</a>
                        </div>
                    <?php else: ?>
                        <table class="cyber-table">
                            <thead>
                                <tr>
                                    <th>รหัสคำสั่งซื้อ</th>
                                    <th>ยอดรวม</th>
                                    <th>สถานะ</th>
                                    <th>วันที่สั่งซื้อ</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($myOrders as $ord): ?>
                                    <tr>
                                        <td style="font-family: monospace; color: var(--neon-green);">#<?php echo $ord['id']; ?></td>
                                        <td style="font-weight: bold; color: #ffffff;">฿<?php echo number_format($ord['total_amount'], 2); ?></td>
                                        <td>
                                            <span class="badge" style="background: rgba(0,255,102,0.1); border: 1px solid var(--neon-green); color: var(--neon-green);">
                                                <?php echo strtoupper($ord['status']); ?>
                                            </span>
                                        </td>
                                        <td style="font-size: 0.88rem; color: var(--text-gray);"><?php echo date('d/m/Y H:i', strtotime($ord['created_at'])); ?></td>
                                    </tr>
                                <?php endforeach; ?>
                            </tbody>
                        </table>
                    <?php endif; ?>
                </div>

            </div>
        </div>

    </div>

</body>
</html>
