<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();

// এডমিন লগইন ভ্যালিডেশন
if (!isset($_SESSION['admin_id'])) {
    header("Location: login.php");
    exit();
}

// কনফিগ ফাইল যুক্ত করা হলো (যেখানে $pdo কানেকশন সেটআপ আছে)
require_once __DIR__ . '/../config.php';

$message = "";

// ==================== প্রোডাক্ট ডিলিট করার লজিক ====================
if (isset($_GET['delete_id'])) {
    $delete_id = intval($_GET['delete_id']);
    try {
        // ১. প্রোডাক্টের মূল ছবি ডিলিট করার জন্য নাম তুলে আনা
        $stmt = $pdo->prepare("SELECT image FROM products WHERE id = :id");
        $stmt->execute(['id' => $delete_id]);
        $prod = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($prod) {
            // সার্ভার থেকে মূল ছবি ডিলিট
            if (!empty($prod['image'])) {
                $image_path = "../uploads/products/" . $prod['image'];
                if (file_exists($image_path)) {
                    unlink($image_path);
                }
            }

            // ২. অতিরিক্ত গ্যালারি ছবিগুলো সার্ভার থেকে ডিলিট করা
            $gallery_stmt = $pdo->prepare("SELECT image_name FROM product_images WHERE product_id = :product_id");
            $gallery_stmt->execute(['product_id' => $delete_id]);
            $gallery_images = $gallery_stmt->fetchAll(PDO::FETCH_ASSOC);

            foreach ($gallery_images as $g_img) {
                $g_image_path = "../uploads/products/" . $g_img['image_name'];
                if (file_exists($g_image_path)) {
                    unlink($g_image_path);
                }
            }
            
            // ডাটাবেস থেকে প্রোডাক্ট ডিলিট (Foreign key CASCADE থাকায় product_images থেকেও অটো ডিলিট হবে)
            $delete_stmt = $pdo->prepare("DELETE FROM products WHERE id = :id");
            $delete_stmt->execute(['id' => $delete_id]);
            $message = "<div class='alert alert-success'>প্রোডাক্টটি সফলভাবে ডিলিট করা হয়েছে!</div>";
        }
    } catch (PDOException $e) {
        $message = "<div class='alert alert-danger'>ডিলিট করতে সমস্যা হয়েছে: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
}

// ==================== নতুন প্রোডাক্ট যুক্ত করার লজিক ====================
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['add_product'])) {
    $category_id = intval($_POST['category_id']);
    $sku = !empty(trim($_POST['sku'])) ? trim($_POST['sku']) : null;
    $name = trim($_POST['name']);
    $description = trim($_POST['description']);
    
    // অপশনাল সাইজ এবং কালার রিসিভ করা (ফাঁকা থাকলে null সেট হবে)
    $sizes = !empty($_POST['sizes']) ? trim($_POST['sizes']) : null;
    $colors = !empty($_POST['colors']) ? trim($_POST['colors']) : null;
    
    $price = floatval($_POST['price']);
    $discount_price = !empty($_POST['discount_price']) ? floatval($_POST['discount_price']) : null;
    $stock_quantity = intval($_POST['stock_quantity']);
    $is_featured = isset($_POST['is_featured']) ? 1 : 0;
    
    $image_name = "";

    try {
        // SKU ইউনিক কিনা চেক করা
        if (!empty($sku)) {
            $stmt = $pdo->prepare("SELECT id FROM products WHERE sku = :sku");
            $stmt->execute(['sku' => $sku]);
            if ($stmt->rowCount() > 0) {
                $message = "<div class='alert alert-danger'>এই SKU কোডটি ইতিমধ্যে ব্যবহার করা হয়েছে! ভিন্ন কোড দিন।</div>";
            }
        }

        if (empty($message)) {
            // ফোল্ডার না থাকলে তৈরি করা
            if (!file_exists('../uploads/products/')) {
                mkdir('../uploads/products/', 0777, true);
            }

            // --- প্রোডাক্টের মূল ছবি আপলোড প্রসেস ---
            if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
                $allowed_ext = array("jpg", "jpeg", "png", "webp", "gif");
                $file_name = $_FILES['image']['name'];
                $file_size = $_FILES['image']['size'];
                $file_tmp  = $_FILES['image']['tmp_name'];
                
                $ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
                
                if (in_array($ext, $allowed_ext)) {
                    if ($file_size <= 2097152) { // সর্বোচ্চ ২MB
                        $image_name = "prod_" . time() . "_" . rand(1000, 9999) . "." . $ext;
                        $upload_path = "../uploads/products/" . $image_name;
                        
                        if (!move_uploaded_file($file_tmp, $upload_path)) {
                            $image_name = "";
                            $message = "<div class='alert alert-danger'>প্রধান ছবি আপলোড করতে ব্যর্থ হয়েছে!</div>";
                        }
                    } else {
                        $message = "<div class='alert alert-danger'>প্রধান ছবির সাইজ ২MB এর কম হতে হবে!</div>";
                    }
                } else {
                    $message = "<div class='alert alert-danger'>প্রধান ছবির জন্য শুধুমাত্র JPG, JPEG, PNG, WEBP এবং GIF ফরম্যাট অনুমোদিত।</div>";
                }
            }

            // ডাটাবেসে প্রোডাক্ট সংরক্ষণ (sizes এবং colors সহ)
            if (empty($message)) {
                $sql = "INSERT INTO products (category_id, sku, name, description, sizes, colors, price, discount_price, stock_quantity, image, is_featured) 
                        VALUES (:category_id, :sku, :name, :description, :sizes, :colors, :price, :discount_price, :stock_quantity, :image, :is_featured)";
                
                $insert_stmt = $pdo->prepare($sql);
                $insert_stmt->execute([
                    'category_id' => $category_id,
                    'sku' => $sku,
                    'name' => $name,
                    'description' => $description,
                    'sizes' => $sizes,
                    'colors' => $colors,
                    'price' => $price,
                    'discount_price' => $discount_price,
                    'stock_quantity' => $stock_quantity,
                    'image' => $image_name,
                    'is_featured' => $is_featured
                ]);
                
                $message = "<div class='alert alert-success'>নতুন প্রোডাক্ট সফলভাবে যুক্ত হয়েছে! (গ্যালারি ছবি এডিট পেজ থেকে যুক্ত করতে পারবেন)</div>";
            }
        }
    } catch (PDOException $e) {
        $message = "<div class='alert alert-danger'>ডাটাবেস ত্রুটি: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
}

// ড্রপডাউনের জন্য সব অ্যাক্টিভ ক্যাটাগরি তুলে আনা
try {
    $cat_stmt = $pdo->query("SELECT id, name FROM categories ORDER BY name ASC");
    $categories = $cat_stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die("ক্যাটাগরি ডেটা আনা সম্ভব হয়নি।");
}

// প্রোডাক্ট লিস্ট দেখানোর জন্য জয়েন কুয়েরি
try {
    $prod_stmt = $pdo->query("SELECT p.*, c.name as category_name FROM products p 
                              LEFT JOIN categories c ON p.category_id = c.id 
                              ORDER BY p.id DESC");
    $products = $prod_stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die("প্রোডাক্ট ডেটা আনা সম্ভব হয়নি।");
}
?>
<!DOCTYPE html>
<html lang="bn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ShopVista | Manage Products</title>
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <link rel="stylesheet" href="css/sidebar.css?v=3.0">
    <link rel="stylesheet" href="css/dashboard.css?v=3.0">
    <link rel="stylesheet" href="css/products.css?v=3.0">
    
    <style>
        .full-width-card {
            background: #fff;
            padding: 24px;
            border-radius: 10px;
            box-shadow: 0 0 15px rgba(0,0,0,0.05);
            margin-bottom: 30px;
        }
        .form-grid-3 {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 20px;
            margin-bottom: 15px;
        }
        .textarea-group {
            margin-bottom: 15px;
        }
        .textarea-group textarea {
            width: 100%;
            padding: 10px;
            border: 1px solid #d1d3e2;
            border-radius: 5px;
            font-family: inherit;
            resize: vertical;
        }
        .checkbox-group {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 35px;
        }
        .checkbox-group input {
            width: 18px;
            height: 18px;
            cursor: pointer;
        }
        .badge-featured {
            background: #f6c23e;
            color: #fff;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 0.75rem;
            font-weight: bold;
        }
        select.form-control {
            width: 100%;
            padding: 10px;
            border: 1px solid #d1d3e2;
            border-radius: 5px;
            background: #fff;
        }
        .helper-text {
            display: block;
            font-size: 0.75rem;
            color: #4e73df;
            margin-top: 4px;
        }
        .variant-info {
            display: block;
            font-size: 0.8rem;
            color: #5a5c69;
            margin-top: 2px;
        }

        /* === নতুন প্রোডাক্ট টগল সেকশনের কাস্টম সিএসএস === */
        .toggle-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            user-select: none;
        }
        .toggle-btn-custom {
            background: #4e73df;
            color: #fff;
            border: none;
            padding: 10px 20px;
            border-radius: 5px;
            font-size: 0.95rem;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s ease;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        .toggle-btn-custom:hover {
            background: #2e59d9;
        }
        /* ফর্ম কন্টেইনার শুরুতে হাইড থাকবে এবং মসৃণ অ্যানিমেশন হবে */
        .collapsible-form-container {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease-out, opacity 0.4s ease-out;
            opacity: 0;
        }
        .collapsible-form-container.show {
            max-height: 2000px; /* ফর্মের উচ্চতা অনুযায়ী এটি সেট করা */
            opacity: 1;
            margin-top: 20px;
        }
    </style>
</head>
<body>

    <?php include 'sidebar.php'; ?>

    <div class="main-content">
        
        <div class="top-bar">
            <h2 class="page-title"><i class="fa-solid fa-box-open"></i> প্রোডাক্ট ম্যানেজমেন্ট</h2>
            <div class="admin-badge">
                <i class="fa-regular fa-user-circle"></i> এডমিন: <?php echo htmlspecialchars($_SESSION['username'] ?? 'Admin'); ?>
            </div>
        </div>

        <?php echo $message; ?>

        <div class="full-width-card">
            <div class="toggle-header" onclick="toggleProductForm()">
                <h3 style="margin: 0;"><i class="fa-solid fa-plus-circle"></i> প্রোডাক্ট সংযোজন</h3>
                <button type="button" class="toggle-btn-custom" id="toggleFormBtn">
                    <i class="fa-solid fa-circle-chevron-down"></i> নতুন প্রোডাক্ট যুক্ত করুন
                </button>
            </div>
            
            <div class="collapsible-form-container" id="productFormContainer">
                <form action="" method="POST" enctype="multipart/form-data">
                    
                    <div class="form-grid-3">
                        <div class="form-group">
                            <label for="prodName">প্রোডাক্টসের নাম ইংরেজিতে *</label>
                            <input type="text" id="prodName" name="name" placeholder="যেমন: Premium Leather Wallet" required>
                        </div>
                        <div class="form-group">
                            <label for="prodCategory">ক্যাটাগরি সিলেক্ট করুন *</label>
                            <select id="prodCategory" name="category_id" class="form-control" required>
                                <option value="">-- ক্যাটাগরি বেছে নিন --</option>
                                <?php foreach ($categories as $cat): ?>
                                    <option value="<?php echo $cat['id']; ?>"><?php echo htmlspecialchars($cat['name']); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        <div class="form-group">
                            <label for="prodSku">SKU কোড (ঐচ্ছিক)</label>
                            <input type="text" id="prodSku" name="sku" placeholder="যেমন: TSHIRT-PREM-RED-M">
                        </div>
                    </div>

                    <div class="form-grid-3">
                        <div class="form-group">
                            <label for="prodSizes">সাইজসমূহ (ঐচ্ছিক)</label>
                            <input type="text" id="prodSizes" name="sizes" placeholder="যেমন: M, L, XL, XXL">
                            <small class="helper-text">* কমা (,) দিয়ে আলাদা করে লিখুন</small>
                        </div>
                        <div class="form-group">
                            <label for="prodColors">কালারসমূহ (ঐচ্ছিক)</label>
                            <input type="text" id="prodColors" name="colors" placeholder="যেমন: Red, Black, Blue">
                            <small class="helper-text">* কমা (,) দিয়ে আলাদা করে লিখুন</small>
                        </div>
                        <div class="form-group">
                        </div>
                    </div>

                    <div class="form-grid-3">
                        <div class="form-group">
                            <label for="prodPrice">মূল্য (Regular Price) *</label>
                            <input type="number" step="0.01" id="prodPrice" name="price" placeholder="৳ 0.00" required>
                        </div>
                        <div class="form-group">
                            <label for="prodDiscount">ডিসকাউন্ট মূল্য (Sale Price)</label>
                            <input type="number" step="0.01" id="prodDiscount" name="discount_price" placeholder="৳ 0.00">
                        </div>
                        <div class="form-group">
                            <label for="prodStock">স্টক পরিমাণ (Quantity) *</label>
                            <input type="number" id="prodStock" name="stock_quantity" value="10" required>
                        </div>
                    </div>

                    <div class="textarea-group">
                        <label for="prodDesc">প্রোডাক্ট বিস্তারিত বিবরণ (Description)</label>
                        <textarea id="prodDesc" name="description" rows="4" placeholder="প্রোডাক্টের বিশেষত্ব এবং সাইজ/কালার সম্পর্কে বিস্তারিত লিখুন..."></textarea>
                    </div>

                    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-bottom: 20px;">
                        <div class="form-group">
                            <label for="prodImage">প্রোডাক্টের মূল ছবি *</label>
                            <input type="file" id="prodImage" name="image" accept="image/*" required>
                            <small style="color: #858796; display:block; margin-top:4px;">প্রধান প্রদর্শনের জন্য ১টি ছবি (সর্বোচ্চ ২MB)</small>
                        </div>

                        <div class="checkbox-group">
                            <input type="checkbox" id="prodFeatured" name="is_featured" value="1">
                            <label for="prodFeatured" style="font-weight: 600; color: #4e73df; cursor:pointer;">ফিচার্ড প্রোডাক্ট হিসেবে দেখান</label>
                        </div>
                    </div>

                    <button type="submit" name="add_product" class="btn-submit" style="width: auto; padding: 12px 30px;">
                        <i class="fa-solid fa-paper-plane"></i> প্রোডাক্ট সংরক্ষণ করুন
                    </button>
                </form>
            </div>
        </div>

        <div class="full-width-card" style="padding: 20px 0;">
            <h3 style="padding: 0 24px 15px 24px; border-bottom: 1px solid #e3e6f0;"><i class="fa-solid fa-list-check"></i> সব প্রোডাক্টের তালিকা</h3>
            <div class="table-responsive" style="padding: 0 10px;">
                <table class="prod-table">
                    <thead>
                        <tr>
                            <th>ছবি</th>
                            <th>নাম, SKU ও ভেরিয়েন্ট</th>
                            <th>ক্যাটাগরি</th>
                            <th>মূল্য</th>
                            <th>স্টক</th>
                            <th>ফিচার</th>
                            <th>অ্যাকশন</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php 
                        if (count($products) > 0) {
                            foreach ($products as $row) {
                                ?>
                                <tr>
                                    <td>
                                        <?php if (!empty($row['image']) && file_exists("../uploads/products/" . $row['image'])): ?>
                                            <img src="../uploads/products/<?php echo $row['image']; ?>" alt="Product Image" style="width: 55px; height: 55px; object-fit: cover; border-radius: 6px;">
                                        <?php else: ?>
                                            <div class="no-image-placeholder" style="width: 55px; height: 55px; line-height: 55px;"><i class="fa-regular fa-image"></i></div>
                                        <?php endif; ?>
                                    </td>
                                    <td>
                                        <div style="font-weight: bold; color: #4e73df;"><?php echo htmlspecialchars($row['name']); ?></div>
                                        <small style="color:#858796; display: block;">SKU: <?php echo !empty($row['sku']) ? htmlspecialchars($row['sku']) : 'N/A'; ?></small>
                                        
                                        <?php if (!empty($row['sizes'])): ?>
                                            <span class="variant-info"><b>সাইজ:</b> <?php echo htmlspecialchars($row['sizes']); ?></span>
                                        <?php endif; ?>
                                        <?php if (!empty($row['colors'])): ?>
                                            <span class="variant-info"><b>কালার:</b> <?php echo htmlspecialchars($row['colors']); ?></span>
                                        <?php endif; ?>
                                    </td>
                                    <td><span style="background: #eaecf4; padding: 4px 8px; border-radius: 4px; font-size: 0.85rem;"><?php echo htmlspecialchars($row['category_name'] ?? 'Uncategorized'); ?></span></td>
                                    <td>
                                        <?php if (!empty($row['discount_price'])): ?>
                                            <span style="text-decoration: line-through; color: #858796; font-size: 0.85rem;">৳<?php echo number_format($row['price'], 2); ?></span><br>
                                            <span style="color: #e74a3b; font-weight: bold;">৳<?php echo number_format($row['discount_price'], 2); ?></span>
                                        <?php else: ?>
                                            <span style="font-weight: bold;">৳<?php echo number_format($row['price'], 2); ?></span>
                                        <?php endif; ?>
                                    </td>
                                    <td>
                                        <?php if($row['stock_quantity'] > 0): ?>
                                            <span style="color: #1cc88a; font-weight: 600;"><?php echo $row['stock_quantity']; ?> পিস</span>
                                        <?php else: ?>
                                            <span style="color: #e74a3b; font-weight: 600;">স্টক শেষ</span>
                                        <?php endif; ?>
                                    </td>
                                    <td>
                                        <?php echo $row['is_featured'] == 1 ? '<span class="badge-featured">ফিচার্ড</span>' : '<span style="color:#ccc;">-</span>'; ?>
                                    </td>
                                    <td>
                                        <div class="action-btns">
                                            <a href="edit_product.php?id=<?php echo $row['id']; ?>" class="btn-action edit" title="এডিট"><i class="fa-solid fa-pen-to-square"></i></a>
                                            <a href="?delete_id=<?php echo $row['id']; ?>" class="btn-action delete" onclick="return confirm('আপনি কি নিশ্চিতভাবে এই প্রোডাক্টটি ডিলিট করতে চান?')" title="ডিলিট"><i class="fa-solid fa-trash"></i></a>
                                        </div>
                                    </td>
                                </tr>
                                <?php
                            }
                        } else {
                            echo "<tr><td colspan='7' style='text-align:center; padding: 20px;'>এখনো কোনো প্রোডাক্ট যুক্ত করা হয়নি।</td></tr>";
                        }
                        ?>
                    </tbody>
                </table>
            </div>
        </div>

    </div>

    <script>
        function toggleProductForm() {
            const container = document.getElementById('productFormContainer');
            const button = document.getElementById('toggleFormBtn');
            
            // ক্লাস টগল করা (CSS অ্যানিমেশন একটিভেট হবে)
            container.classList.toggle('show');
            
            // ফর্ম ওপেন/ক্লোজ অনুযায়ী বাটনের টেক্সট এবং আইকন চেঞ্জ করা
            if (container.classList.contains('show')) {
                button.innerHTML = '<i class="fa-solid fa-circle-chevron-up"></i> ফর্মটি বন্ধ করুন';
                button.style.background = '#e74a3b'; // বন্ধ করার সময় লাল কালার হবে
            } else {
                button.innerHTML = '<i class="fa-solid fa-circle-chevron-down"></i> নতুন প্রোডাক্ট যুক্ত করুন';
                button.style.background = '#4e73df'; // স্বাভাবিক অবস্থায় নীল কালার
            }
        }
    </script>
</body>
</html>