<?php
session_start();
require 'config/db.php';
include 'includes/header.php';

// Check Login
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php"); exit();
}

$user_id = $_SESSION['user_id'];
$msg = "";
$msgClass = "";

// 1. HANDLE PROFILE UPDATE
if (isset($_POST['update_profile'])) {
    $name = trim($_POST['name']);
    $phone = trim($_POST['phone']);
    
    $stmt = $pdo->prepare("UPDATE users SET name = ?, phone = ? WHERE id = ?");
    if ($stmt->execute([$name, $phone, $user_id])) {
        $_SESSION['user_name'] = $name; // Update session name
        $msg = "Profile updated successfully!";
        $msgClass = "success";
    } else {
        $msg = "Error updating profile.";
        $msgClass = "error";
    }
}

// 2. HANDLE PASSWORD CHANGE (Manual)
if (isset($_POST['change_password'])) {
    $current_pass = $_POST['current_password'];
    $new_pass = $_POST['new_password'];
    $confirm_pass = $_POST['confirm_password'];

    // Fetch current hash
    $stmt = $pdo->prepare("SELECT password_hash FROM users WHERE id = ?");
    $stmt->execute([$user_id]);
    $user_data = $stmt->fetch();

    if (password_verify($current_pass, $user_data['password_hash'])) {
        if ($new_pass === $confirm_pass) {
            $new_hash = password_hash($new_pass, PASSWORD_DEFAULT);
            $pdo->prepare("UPDATE users SET password_hash = ? WHERE id = ?")->execute([$new_hash, $user_id]);
            $msg = "Password changed successfully!";
            $msgClass = "success";
        } else {
            $msg = "New passwords do not match.";
            $msgClass = "error";
        }
    } else {
        $msg = "Current password is incorrect.";
        $msgClass = "error";
    }
}

// 3. HANDLE "FORGOT PASSWORD" (Send Reset Link)
if (isset($_POST['send_reset_link'])) {
    // Fetch user email
    $stmt = $pdo->prepare("SELECT email FROM users WHERE id = ?");
    $stmt->execute([$user_id]);
    $user_email = $stmt->fetchColumn();

    if ($user_email) {
        // Generate Token
        $token = bin2hex(random_bytes(50));
        
        // Remove old tokens
        $pdo->prepare("DELETE FROM password_resets WHERE email = ?")->execute([$user_email]);
        
        // Insert new token
        $stmt = $pdo->prepare("INSERT INTO password_resets (email, token) VALUES (?, ?)");
        $stmt->execute([$user_email, $token]);
        
        // SEND EMAIL
        $resetLink = "https://prosubscriptionoffers.com/reset_password.php?token=" . $token;
        $subject = "Password Reset Request - Pro Subscription Offers";
        
        $message = "
        <html>
        <head><title>Password Reset</title></head>
        <body>
            <h3>Reset Your Password</h3>
            <p>You requested a password reset from your dashboard.</p>
            <p><a href='$resetLink' style='background:#3498db; color:white; padding:10px 20px; text-decoration:none; border-radius:5px;'>Set New Password</a></p>
            <p>Or copy this link: <br> $resetLink</p>
        </body>
        </html>
        ";
        
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        $headers .= "From: Pro Subscription Offers <support@prosubscriptionoffers.com>" . "\r\n";

        if(mail($user_email, $subject, $message, $headers)) {
            $msg = "A reset link has been sent to your email.";
            $msgClass = "success";
        } else {
            $msg = "Error sending email. Please contact support.";
            $msgClass = "error";
        }
    }
}

// Fetch User Data to display in form
$user = $pdo->query("SELECT * FROM users WHERE id = $user_id")->fetch();
?>

<style>
    .settings-container { max-width: 800px; margin: 40px auto; display: grid; gap: 30px; }
    .settings-card { background: white; padding: 30px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
    .settings-card h3 { margin-top: 0; border-bottom: 1px solid #eee; padding-bottom: 15px; color: #2c3e50; }
    
    .form-group { margin-bottom: 20px; }
    .form-group label { display: block; font-weight: bold; margin-bottom: 8px; color: #555; }
    .form-control { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
    
    .msg-box { padding: 15px; border-radius: 6px; margin-bottom: 20px; text-align: center; font-weight: bold; }
    .success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
    .error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
    
    .btn-save { background: #3498db; color: white; border: none; padding: 12px 25px; border-radius: 6px; cursor: pointer; font-size: 16px; }
    .btn-save:hover { background: #2980b9; }

    /* Link Style Button */
    .btn-link { background: none; border: none; color: #e74c3c; text-decoration: underline; cursor: pointer; font-size: 14px; padding: 0; }
    .btn-link:hover { color: #c0392b; }
</style>

<div class="container">
    
    <div class="settings-container">
        <div style="display: flex; justify-content: space-between; align-items: center;">
            <h1>Account Settings</h1>
            <a href="profile.php" class="btn" style="background: #95a5a6; color: white; padding: 8px 15px; border-radius: 4px; font-size: 14px;">&larr; Back to Dashboard</a>
        </div>

        <?php if($msg): ?>
            <div class="msg-box <?php echo $msgClass; ?>"><?php echo $msg; ?></div>
        <?php endif; ?>

        <div class="settings-card">
            <h3><i class="fas fa-user-edit"></i> Personal Details</h3>
            <form method="POST">
                <div class="form-group">
                    <label>Full Name</label>
                    <input type="text" name="name" class="form-control" value="<?php echo htmlspecialchars($user['name']); ?>" required>
                </div>
                <div class="form-group">
                    <label>WhatsApp Number</label>
                    <input type="text" name="phone" class="form-control" value="<?php echo htmlspecialchars($user['phone']); ?>" required>
                </div>
                <div class="form-group">
                    <label>Email Address (Cannot be changed)</label>
                    <input type="email" class="form-control" value="<?php echo htmlspecialchars($user['email']); ?>" disabled style="background: #f9f9f9; cursor: not-allowed;">
                </div>
                <button type="submit" name="update_profile" class="btn-save">Update Profile</button>
            </form>
        </div>

        <div class="settings-card">
            <h3><i class="fas fa-lock"></i> Security</h3>
            
            <form method="POST">
                <div class="form-group">
                    <label>Current Password</label>
                    <input type="password" name="current_password" class="form-control" required placeholder="Enter your current password">
                    
                    <div style="margin-top: 8px; text-align: right;">
                        <small>Don't remember it?</small> 
                        <button type="submit" name="send_reset_link" class="btn-link">Send Reset Link to Email</button>
                    </div>
                </div>

                <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px;">
                    <div class="form-group">
                        <label>New Password</label>
                        <input type="password" name="new_password" class="form-control" required placeholder="New strong password">
                    </div>
                    <div class="form-group">
                        <label>Confirm New Password</label>
                        <input type="password" name="confirm_password" class="form-control" required placeholder="Repeat password">
                    </div>
                </div>
                <button type="submit" name="change_password" class="btn-save" style="background: #e74c3c;">Change Password</button>
            </form>
        </div>

    </div>
</div>

<?php include 'includes/footer.php'; ?>