<?php
require 'auth_check.php';
require '../config/db.php';
require_once '../includes/functions.php'; // Essential for Logger

// --- 1. HANDLE MANUAL ORDER CREATION ---
if (isset($_POST['create_manual_order'])) {
    $email = trim($_POST['email']);
    $prod_id = $_POST['product_id'];
    $amount = $_POST['amount'];
    
    // Check if user exists, else create dummy
    $uCheck = $pdo->prepare("SELECT id FROM users WHERE email = ?");
    $uCheck->execute([$email]);
    $user = $uCheck->fetch();
    
    if ($user) {
        $user_id = $user['id'];
    } else {
        // Create new user
        $name = explode('@', $email)[0];
        $pdo->prepare("INSERT INTO users (name, email, password_hash) VALUES (?, ?, ?)")
            ->execute([$name, $email, password_hash('123456', PASSWORD_DEFAULT)]);
        $user_id = $pdo->lastInsertId();
    }

    // Create Order
    $pdo->prepare("INSERT INTO orders (user_id, total_amount, payment_method, status, user_note) VALUES (?, ?, 'Manual Entry', 'completed', 'Order created by Admin')")
        ->execute([$user_id, $amount]);
    $order_id = $pdo->lastInsertId();

    // Add Item (Check variants)
    $vCheck = $pdo->prepare("SELECT id FROM product_variants WHERE product_id = ? LIMIT 1");
    $vCheck->execute([$prod_id]);
    $vid = $vCheck->fetchColumn() ?: 0;

    $pdo->prepare("INSERT INTO order_items (order_id, product_id, variant_id, qty, price_at_purchase) VALUES (?, ?, ?, 1, ?)")
        ->execute([$order_id, $prod_id, $vid, $amount]);
    
    // Log Action
    if (function_exists('logActivity')) {
        logActivity("Manual Order", "Created Order #$order_id for $email");
    }

    header("Location: orders.php?id=$order_id&msg=created");
    exit();
}

// --- 2. HANDLE STATUS UPDATE ---
if (isset($_POST['update_status'])) {
    $oid = $_POST['order_id'];
    $new_status = $_POST['status'];
    $admin_note = $_POST['admin_note']; 

    $key_message = "";

    // IF COMPLETED -> AUTO ASSIGN KEYS & REWARD REFERRER
    if ($new_status == 'completed') {
        
        // A. KEYS ASSIGNMENT
        $stmtItems = $pdo->prepare("SELECT product_id FROM order_items WHERE order_id = ?");
        $stmtItems->execute([$oid]);
        $items = $stmtItems->fetchAll();

        foreach ($items as $item) {
            // Find available key
            $kStmt = $pdo->prepare("SELECT id, license_key FROM license_keys WHERE product_id = ? AND status = 'available' LIMIT 1");
            $kStmt->execute([$item['product_id']]);
            $keyData = $kStmt->fetch();

            if ($keyData) {
                // Mark key used
                $pdo->prepare("UPDATE license_keys SET status = 'used', order_id = ? WHERE id = ?")->execute([$oid, $keyData['id']]);
                $key_message .= "\n\n[LICENSE KEY]\n" . $keyData['license_key'];
            }
        }

        // B. REFERRAL REWARD
        $uid = $pdo->query("SELECT user_id FROM orders WHERE id=$oid")->fetchColumn();
        $refCheck = $pdo->prepare("SELECT * FROM referrals WHERE referred_user_id = ? AND status = 'pending'");
        $refCheck->execute([$uid]);
        $referral = $refCheck->fetch();

        if ($referral) {
            $referrer_id = $referral['referrer_id'];
            $reward = 50.00;
            $pdo->prepare("UPDATE referrals SET status = 'verified' WHERE id = ?")->execute([$referral['id']]);
            $pdo->prepare("UPDATE users SET wallet_balance = wallet_balance + ? WHERE id = ?")->execute([$reward, $referrer_id]);
            
            if (function_exists('logActivity')) {
                logActivity("Referral Reward", "Added ₹$reward to User #$referrer_id for Order #$oid");
            }
        }
    }

    $final_note = $admin_note . $key_message;
    
    // Update Order
    $stmt = $pdo->prepare("UPDATE orders SET status = ?, user_note = ? WHERE id = ?");
    $stmt->execute([$new_status, $final_note, $oid]);
    
    // Log Action
    if (function_exists('logActivity')) {
        logActivity("Order Update", "Updated Order #$oid status to: $new_status");
    }

    // EMAIL NOTIFICATION TO CUSTOMER
    $stmtUser = $pdo->prepare("SELECT o.id, u.name, u.email FROM orders o JOIN users u ON o.user_id = u.id WHERE o.id = ?");
    $stmtUser->execute([$oid]);
    $orderData = $stmtUser->fetch();

    if ($orderData) {
        $to = $orderData['email'];
        $subject = "Order #$oid Update - Pro Subscription Offers";
        $clean_note = nl2br(htmlspecialchars($final_note));
        
        $emailContent = "
        <html><body style='font-family:sans-serif;'>
            <div style='background:#2c3e50;color:white;padding:20px;text-align:center;'><h2>Pro Subscription Offers</h2></div>
            <div style='padding:20px;border:1px solid #ddd;'>
                <p>Hi {$orderData['name']},</p>
                <p>Your order status is now: <strong style='color:green'>".ucfirst($new_status)."</strong></p>
                <div style='background:#f1f9f5;padding:15px;border-left:4px solid #2ecc71;margin:15px 0;'>$clean_note</div>
                <p><a href='https://prosubscriptionoffers.com/login.php'>Login to Dashboard</a></p>
            </div>
        </body></html>";

        $headers = "MIME-Version: 1.0" . "\r\n" . "Content-type:text/html;charset=UTF-8" . "\r\n" . "From: Pro Subscription Offers <support@prosubscriptionoffers.com>";
        @mail($to, $subject, $emailContent, $headers);
    }

    header("Location: orders.php?id=" . $oid . "&msg=updated"); 
    exit();
}

// --- FETCH DATA ---
$products = $pdo->query("SELECT id, name FROM products")->fetchAll();

$order_detail = null;
if (isset($_GET['id'])) {
    // Single Order View
    $stmt = $pdo->prepare("SELECT o.*, u.name, u.email, u.phone, u.id as user_id FROM orders o JOIN users u ON o.user_id = u.id WHERE o.id = ?");
    $stmt->execute([$_GET['id']]);
    $order_detail = $stmt->fetch();

    $stmtItems = $pdo->prepare("
        SELECT oi.*, p.name as product_name, v.name as variant_name 
        FROM order_items oi 
        JOIN products p ON oi.product_id = p.id 
        LEFT JOIN product_variants v ON oi.variant_id = v.id 
        WHERE oi.order_id = ?
    ");
    $stmtItems->execute([$_GET['id']]);
    $items = $stmtItems->fetchAll();
} else {
    // List All Orders
    $all_orders = $pdo->query("SELECT o.*, u.name, u.email FROM orders o LEFT JOIN users u ON o.user_id = u.id ORDER BY o.created_at DESC")->fetchAll();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Manage Orders</title>
    <link rel="stylesheet" href="admin_style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <style>
        /* Screenshot Preview */
        .proof-box { margin-top: 15px; border: 1px solid #ddd; padding: 10px; background: #f9f9f9; border-radius: 8px; text-align: center; }
        .proof-box img { max-width: 100%; height: auto; border-radius: 4px; border: 1px solid #ccc; cursor: pointer; transition: transform 0.2s; }
        .proof-box img:hover { transform: scale(1.02); }
        .no-proof { color: #e74c3c; font-style: italic; }
        
        .btn-history { background: #3498db; color: white; padding: 2px 6px; border-radius: 4px; font-size: 11px; text-decoration: none; margin-left: 5px; }
        .btn-history:hover { opacity: 0.8; }
    </style>
    <script>
        function toggleManual() {
            var x = document.getElementById("manualOrderForm");
            x.style.display = (x.style.display === "none") ? "block" : "none";
        }
    </script>
</head>
<body>
    
    <!-- SHARED SIDEBAR -->
    <?php include 'sidebar.php'; ?>

    <div class="content">
        
        <?php if ($order_detail): ?>
            <!-- VIEW SINGLE ORDER -->
            <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
                <a href="orders.php" class="btn" style="background:#95a5a6; color:white; text-decoration:none; padding:8px 15px; border-radius:4px;">&larr; Back</a>
                
                <a href="../invoice.php?id=<?php echo $order_detail['id']; ?>" target="_blank" class="btn" style="background:#8e44ad; color:white; text-decoration:none; padding:8px 15px; border-radius:4px;">
                    <i class="fas fa-print"></i> Print Invoice
                </a>
            </div>

            <h1>Order #<?php echo $order_detail['id']; ?></h1>

            <?php if(isset($_GET['msg']) && $_GET['msg'] == 'updated'): ?>
                <div style="background: #d4edda; color: #155724; padding: 10px; border-radius:5px; margin-bottom:20px;">Update Successful!</div>
            <?php endif; ?>
            <?php if(isset($_GET['msg']) && $_GET['msg'] == 'created'): ?>
                <div style="background: #d4edda; color: #155724; padding: 10px; border-radius:5px; margin-bottom:20px;">Manual Order Created!</div>
            <?php endif; ?>
            
            <div style="background: white; padding: 20px; border-radius: 8px; display: flex; gap: 30px; flex-wrap: wrap;">
                
                <!-- CUSTOMER INFO -->
                <div style="flex: 1; min-width: 300px;">
                    <h3>Customer Info</h3>
                    <p>
                        <strong>Name:</strong> <?php echo htmlspecialchars($order_detail['name']); ?>
                        <!-- Link to User History -->
                        <a href="user_history.php?id=<?php echo $order_detail['user_id']; ?>" class="btn-history" target="_blank"><i class="fas fa-history"></i> History</a>
                    </p>
                    <p><strong>Email:</strong> <?php echo htmlspecialchars($order_detail['email']); ?></p>
                    <p><strong>Phone:</strong> <?php echo htmlspecialchars($order_detail['phone']); ?></p>
                    <p><strong>Method:</strong> <?php echo $order_detail['payment_method']; ?></p>
                    
                    <h4 style="margin-top: 20px; border-bottom: 1px solid #eee; padding-bottom: 5px;">Payment Proof</h4>
                    <div class="proof-box">
                        <?php if(!empty($order_detail['payment_proof'])): ?>
                            <a href="../<?php echo $order_detail['payment_proof']; ?>" target="_blank">
                                <img src="../<?php echo $order_detail['payment_proof']; ?>" alt="Payment Receipt">
                            </a>
                            <div style="margin-top: 5px; font-size: 12px; color: #666;">Click to enlarge</div>
                        <?php else: ?>
                            <span class="no-proof">No screenshot uploaded.</span>
                        <?php endif; ?>
                    </div>
                </div>

                <!-- PROCESS ORDER -->
                <div style="flex: 1; min-width: 300px;">
                    <h3>Update Status</h3>
                    <form method="POST" style="background: #f8f9fa; padding: 15px; border-radius: 8px;">
                        <input type="hidden" name="order_id" value="<?php echo $order_detail['id']; ?>">
                        
                        <label style="font-weight:bold;">Status:</label>
                        <select name="status" style="width:100%; padding:8px; margin:5px 0 15px;">
                            <option value="pending" <?php echo $order_detail['status']=='pending'?'selected':''; ?>>Pending</option>
                            <option value="processing" <?php echo $order_detail['status']=='processing'?'selected':''; ?>>Processing</option>
                            <option value="completed" <?php echo $order_detail['status']=='completed'?'selected':''; ?>>Completed (Send Key)</option>
                            <option value="cancelled" <?php echo $order_detail['status']=='cancelled'?'selected':''; ?>>Cancelled</option>
                        </select>

                        <label style="font-weight:bold;">Message / Key:</label>
                        <textarea name="admin_note" rows="5" style="width:100%; padding:8px; box-sizing:border-box;"><?php echo htmlspecialchars($order_detail['user_note']); ?></textarea>
                        
                        <button type="submit" name="update_status" class="btn btn-primary" style="width:100%; margin-top:10px; background: #27ae60; border:none; padding:10px; border-radius:4px; color:white; cursor:pointer;">Update & Notify</button>
                    </form>
                </div>
            </div>

            <h3 style="margin-top: 30px;">Order Items</h3>
            <table style="background:white;">
                <thead><tr><th>Product</th><th>Variant</th><th>Qty</th><th>Price</th></tr></thead>
                <tbody>
                    <?php foreach ($items as $item): ?>
                    <tr>
                        <td><?php echo htmlspecialchars($item['product_name']); ?></td>
                        <td><?php echo htmlspecialchars($item['variant_name'] ?? 'Standard'); ?></td>
                        <td><?php echo $item['qty']; ?></td>
                        <td>₹<?php echo number_format($item['price_at_purchase']); ?></td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>

        <?php else: ?>
            <!-- LIST ALL ORDERS -->
            <div style="display:flex; justify-content:space-between; align-items:center;">
                <h1>Orders</h1>
                <button onclick="toggleManual()" class="btn btn-primary" style="background:#8e44ad; border:none; padding:10px 20px; color:white; border-radius:5px; cursor:pointer;">
                    <i class="fas fa-plus"></i> Manual Order
                </button>
            </div>

            <!-- Manual Order Form (Hidden) -->
            <div id="manualOrderForm" style="display:none; background:#f9f9f9; padding:20px; border:1px solid #ddd; margin-bottom:20px; border-radius:8px;">
                <h3>Create Manual Order</h3>
                <form method="POST" style="display:flex; gap:10px; flex-wrap:wrap;">
                    <input type="email" name="email" placeholder="Customer Email" required style="padding:10px; flex:1; border:1px solid #ddd;">
                    <select name="product_id" style="padding:10px; flex:1; border:1px solid #ddd;">
                        <?php foreach($products as $p): ?>
                            <option value="<?php echo $p['id']; ?>"><?php echo htmlspecialchars($p['name']); ?></option>
                        <?php endforeach; ?>
                    </select>
                    <input type="number" name="amount" placeholder="Price" required style="padding:10px; width:100px; border:1px solid #ddd;">
                    <button type="submit" name="create_manual_order" class="btn btn-primary" style="padding:10px 20px; background:#27ae60; color:white; border:none; border-radius:4px; cursor:pointer;">Create</button>
                </form>
            </div>

            <table style="background:white; margin-top:20px;">
                <thead><tr><th>ID</th><th>Customer</th><th>Total</th><th>Status</th><th>Date</th><th>Action</th></tr></thead>
                <tbody>
                    <?php foreach($all_orders as $o): ?>
                    <tr>
                        <td>#<?php echo $o['id']; ?></td>
                        <td>
                            <strong><?php echo htmlspecialchars($o['name'] ?? 'Guest'); ?></strong><br>
                            <small><?php echo htmlspecialchars($o['email'] ?? ''); ?></small>
                        </td>
                        <td>₹<?php echo number_format($o['total_amount']); ?></td>
                        <td>
                            <span class="status" style="background:<?php echo ($o['status']=='completed'?'#2ecc71':($o['status']=='pending'?'#f39c12':'#95a5a6')); ?>; color:white; padding:3px 8px; border-radius:4px; font-size:12px; text-transform:uppercase;">
                                <?php echo ucfirst($o['status']); ?>
                            </span>
                        </td>
                        <td><?php echo date('d M Y', strtotime($o['created_at'])); ?></td>
                        <td><a href="orders.php?id=<?php echo $o['id']; ?>" class="btn" style="background:#3498db; color:white; padding:5px 10px; text-decoration:none; border-radius:4px; font-size:12px;">View</a></td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        <?php endif; ?>

    </div>
</body>
</html>