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

// কনফিগ ফাইল যুক্ত করা হলো
require_once __DIR__ . '/../config.php';

$message = "";
$category = null;

// এডিটের জন্য আইডি গেট করা
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
    try {
        $stmt = $pdo->prepare("SELECT * FROM categories WHERE id = :id");
        $stmt->execute(['id' => $id]);
        $category = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if (!$category) {
            die("ক্যাটাগরি খুঁজে পাওয়া যায়নি।");
        }
    } catch (PDOException $e) {
        die("ডাটাবেস ত্রুটি: " . $e->getMessage());
    }
} else {
    header("Location: products.php");
    exit();
}

// আপডেট ফর্ম সাবমিট প্রসেসিং
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['update_category'])) {
    $name = trim($_POST['category_name']);
    $status = $_POST['category_status'];
    $image_name = $category['image']; // ডিফল্ট হিসেবে আগের ছবি রাখা হলো
    
    try {
        // একই নামের অন্য কোনো ক্যাটাগরি আছে কিনা চেক করা (নিজের আইডি বাদ দিয়ে)
        $stmt = $pdo->prepare("SELECT id FROM categories WHERE name = :name AND id != :id");
        $stmt->execute(['name' => $name, 'id' => $id]);
        
        if ($stmt->rowCount() > 0) {
            $message = "<div class='alert alert-danger'>এই ক্যাটাগরি নামটি অন্য একটি ক্যাটাগরিতে ইতিমধ্যে ব্যবহার করা হয়েছে!</div>";
        } else {
            
            // নতুন ছবি আপলোড করা হলে প্রসেস করা
            if (isset($_FILES['category_image']) && $_FILES['category_image']['error'] == 0) {
                $allowed_ext = array("jpg", "jpeg", "png", "webp", "gif");
                $file_name = $_FILES['category_image']['name'];
                $file_size = $_FILES['category_image']['size'];
                $file_tmp  = $_FILES['category_image']['tmp_name'];
                
                $ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
                
                if (in_array($ext, $allowed_ext)) {
                    if ($file_size <= 2097152) {
                        // ইউনিক নতুন নাম তৈরি
                        $new_image_name = "cat_" . time() . "_" . rand(1000, 9999) . "." . $ext;
                        $upload_path = "../uploads/categories/" . $new_image_name;
                        
                        if (move_uploaded_file($file_tmp, $upload_path)) {
                            // নতুন ছবি সফলভাবে আপলোড হলে সার্ভার থেকে আগের পুরনো ছবি ডিলিট করা
                            if (!empty($category['image'])) {
                                $old_image_path = "../uploads/categories/" . $category['image'];
                                if (file_exists($old_image_path)) {
                                    unlink($old_image_path);
                                }
                            }
                            $image_name = $new_image_name; // নতুন ছবির নাম ভেরিয়েবলে সেট
                        } else {
                            $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>";
                }
            }

            // যদি কোনো এরর মেসেজ না থাকে তবে ডাটাবেসে আপডেট হবে
            if (empty($message)) {
                $sql = "UPDATE categories SET name = :name, image = :image, status = :status WHERE id = :id";
                $update_stmt = $pdo->prepare($sql);
                $update_stmt->execute([
                    'name'   => $name,
                    'image'  => $image_name,
                    'status' => $status,
                    'id'     => $id
                ]);
                
                // রিফ্রেশড ডাটা দেখার জন্য ডাটা পুনরায় সেট করা
                $category['name'] = $name;
                $category['image'] = $image_name;
                $category['status'] = $status;
                
                $message = "<div class='alert alert-success'>ক্যাটাগরি সফলভাবে আপডেট করা হয়েছে! <a href='products.php' style='color: #fff; text-decoration: underline; font-weight: bold;'>ক্যাটাগরি লিস্টে ফিরে যান</a></div>";
            }
        }
    } catch (PDOException $e) {
        $message = "<div class='alert alert-danger'>আপডেট করতে ব্যর্থ হয়েছে: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
}
?>
<!DOCTYPE html>
<html lang="bn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ShopVista | Edit Category</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>
        .edit-container {
            max-width: 600px;
            margin: 40px auto;
        }
        .current-image-preview {
            width: 100px;
            height: 100px;
            object-fit: cover;
            border-radius: 8px;
            border: 2px solid #ddd;
            margin: 10px 0;
            display: block;
        }
    </style>
</head>
<body>

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

    <div class="main-content">
        
        <div class="top-bar">
            <h2 class="page-title"><i class="fa-solid fa-pen-to-square"></i> ক্যাটাগরি এডিট করুন</h2>
            <div class="admin-badge">
                <a href="categorys.php" class="btn-submit" style="background: #4e73df; padding: 6px 15px; border-radius: 4px; text-decoration: none; color: #fff; font-size: 0.85rem;"><i class="fa-solid fa-arrow-left"></i> ফিরে যান</a>
            </div>
        </div>

        <div class="edit-container">
            <?php echo $message; ?>

            <div class="prod-card form-card">
                <h3>আইডি: #<?php echo htmlspecialchars($category['id']); ?></h3>
                
                <form action="edit_category.php?id=<?php echo $category['id']; ?>" method="POST" enctype="multipart/form-data">
                    <div class="form-group">
                        <label for="catName">ক্যাটাগরির নাম</label>
                        <input type="text" id="catName" name="category_name" value="<?php echo htmlspecialchars($category['name']); ?>" required>
                    </div>

                    <div class="form-group">
                        <label>বর্তমান ছবি:</label>
                        <?php if (!empty($category['image']) && file_exists("../uploads/categories/" . $category['image'])): ?>
                            <img src="../uploads/categories/<?php echo $category['image']; ?>" class="current-image-preview">
                        <?php else: ?>
                            <p style="color: #e74a3b; font-size: 0.85rem;"><i class="fa-regular fa-image"></i> কোনো ছবি নেই</p>
                        <?php endif; ?>
                    </div>

                    <div class="form-group">
                        <label for="catImage">নতুন ছবি আপলোড করুন (পরিবর্তন করতে চাইলে)</label>
                        <input type="file" id="catImage" name="category_image" accept="image/*">
                        <small style="color: #858796; font-size: 0.75rem; display:block; margin-top: 4px;">ছবি পরিবর্তন না করতে চাইলে এটি খালি রাখুন।</small>
                    </div>

                    <div class="form-group">
                        <label for="catStatus">ক্যাটাগরি অবস্থা (Status)</label>
                        <select id="catStatus" name="category_status" style="width: 100%; padding: 10px; border: 1px solid #d1d3e2; border-radius: 5px;">
                            <option value="active" <?php echo $category['status'] == 'active' ? 'selected' : ''; ?>>সক্রিয় (Active)</option>
                            <option value="inactive" <?php echo $category['status'] == 'inactive' ? 'selected' : ''; ?>>নিষ্ক্রিয় (Inactive)</option>
                        </select>
                    </div>

                    <button type="submit" name="update_category" class="btn-submit" style="background: #1cc88a; color: #fff;">
                        <i class="fa-solid fa-save"></i> পরিবর্তন সংরক্ষণ করুন
                    </button>
                </form>
            </div>
        </div>
        
    </div>

</body>
</html>