<?php
session_start();
require_once 'config/db.php';

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit();
}

$db = new Database();
$pdo = $db->getConnection();

// التحقق من وجود معرف المنتج
if (!isset($_GET['id'])) {
    $_SESSION['message'] = 'معرف المنتج غير موجود';
    header('Location: products.php');
    exit();
}

$product_id = $_GET['id'];

// الحصول على بيانات المنتج
try {
    $stmt = $pdo->prepare("SELECT * FROM products WHERE id = ?");
    $stmt->execute([$product_id]);
    $product = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$product) {
        $_SESSION['message'] = 'المنتج غير موجود';
        header('Location: products.php');
        exit();
    }
} catch (PDOException $e) {
    $_SESSION['message'] = 'حدث خطأ أثناء استرجاع بيانات المنتج';
    header('Location: products.php');
    exit();
}

// معالجة تحديث المنتج
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $name = $_POST['name'];
        $price = $_POST['price'];
        $quantity = $_POST['quantity'];
        $expiry_date = $_POST['expiry_date'] ?: null;
        $barcode = $_POST['barcode'] ?: null;
        
        // معالجة الصورة الجديدة إذا تم تحميلها
        $image_path = $product['image_path'];
        if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) {
            $file_extension = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
            $allowed_extensions = ['jpg', 'jpeg', 'png', 'gif'];
            
            if (in_array($file_extension, $allowed_extensions)) {
                // حذف الصورة القديمة إذا كانت موجودة
                if ($image_path && file_exists($image_path)) {
                    unlink($image_path);
                }
                
                $upload_dir = 'uploads/products/';
                $image_path = $upload_dir . uniqid() . '.' . $file_extension;
                
                if (!move_uploaded_file($_FILES['image']['tmp_name'], $image_path)) {
                    throw new Exception('فشل في رفع الصورة');
                }
            } else {
                throw new Exception('نوع الملف غير مسموح به');
            }
        }
        
        // تحديث بيانات المنتج في قاعدة البيانات
        $stmt = $pdo->prepare("
            UPDATE products 
            SET name = ?, 
                price = ?, 
                quantity = ?, 
                expiry_date = ?,
                image_path = ?,
                barcode = ?
            WHERE id = ?
        ");
        
        $stmt->execute([$name, $price, $quantity, $expiry_date, $image_path, $barcode, $product_id]);
        
        $_SESSION['message'] = 'تم تحديث المنتج بنجاح';
        header('Location: products.php');
        exit();
        
    } catch (Exception $e) {
        $error = $e->getMessage();
    }
}
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>تعديل المنتج - نظام إدارة البقالة</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.css" rel="stylesheet">
</head>
<body>
    <?php include 'includes/navbar.php'; ?>

    <div class="container mt-4">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">تعديل المنتج</h3>
                    </div>
                    <div class="card-body">
                        <?php if (isset($error)): ?>
                            <div class="alert alert-danger">
                                <?php echo htmlspecialchars($error); ?>
                            </div>
                        <?php endif; ?>

                        <form method="POST" enctype="multipart/form-data" class="needs-validation" novalidate>
                            <div class="mb-3">
                                <label for="name" class="form-label">اسم المنتج</label>
                                <input type="text" class="form-control" id="name" name="name" 
                                       value="<?php echo htmlspecialchars($product['name']); ?>" required>
                                <div class="invalid-feedback">
                                    يرجى إدخال اسم المنتج
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="barcode" class="form-label">الباركود</label>
                                <input type="text" class="form-control" id="barcode" name="barcode" 
                                       value="<?php echo htmlspecialchars($product['barcode'] ?? ''); ?>" placeholder="أدخل الباركود">
                            </div>

                            <div class="mb-3">
                                <label for="price" class="form-label">السعر (DH)</label>
                                <div class="input-group">
                                    <input type="number" class="form-control" id="price" name="price" 
                                           step="0.01" min="0" value="<?php echo htmlspecialchars($product['price']); ?>" required>
                                    <span class="input-group-text">DH</span>
                                    <div class="invalid-feedback">
                                        يرجى إدخال سعر صحيح
                                    </div>
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="quantity" class="form-label">الكمية</label>
                                <input type="number" class="form-control" id="quantity" name="quantity" 
                                       min="0" value="<?php echo $product['quantity']; ?>" required>
                                <div class="invalid-feedback">
                                    يرجى إدخال الكمية
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="expiry_date" class="form-label">تاريخ انتهاء الصلاحية</label>
                                <input type="date" class="form-control" id="expiry_date" name="expiry_date" 
                                       value="<?php echo $product['expiry_date']; ?>">
                            </div>

                            <div class="mb-3">
                                <label for="image" class="form-label">صورة المنتج</label>
                                <input type="file" class="form-control" id="image" name="image" 
                                       accept="image/*">
                                <div class="form-text">
                                    الصيغ المسموح بها: JPG, JPEG, PNG, GIF
                                </div>
                            </div>

                            <div class="mb-3">
                                <?php if ($product['image_path']): ?>
                                    <img src="<?php echo htmlspecialchars($product['image_path']); ?>" 
                                         alt="صورة المنتج الحالية" class="img-thumbnail" 
                                         style="max-width: 200px;">
                                <?php endif; ?>
                                <img id="image-preview" src="#" alt="معاينة الصورة الجديدة" 
                                     style="max-width: 200px; display: none;">
                            </div>

                            <div class="d-grid gap-2">
                                <button type="submit" class="btn btn-primary">حفظ التغييرات</button>
                                <a href="products.php" class="btn btn-secondary">إلغاء</a>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // معاينة الصورة قبل الرفع
        document.getElementById('image').addEventListener('change', function(e) {
            const preview = document.getElementById('image-preview');
            const file = e.target.files[0];
            
            if (file) {
                const reader = new FileReader();
                reader.onload = function(e) {
                    preview.src = e.target.result;
                    preview.style.display = 'block';
                }
                reader.readAsDataURL(file);
            } else {
                preview.src = '#';
                preview.style.display = 'none';
            }
        });

        // التحقق من صحة النموذج
        (function() {
            'use strict';
            const forms = document.querySelectorAll('.needs-validation');
            Array.from(forms).forEach(form => {
                form.addEventListener('submit', event => {
                    if (!form.checkValidity()) {
                        event.preventDefault();
                        event.stopPropagation();
                    }
                    form.classList.add('was-validated');
                }, false);
            });
        })();
    </script>
</body>
</html>
