<?php
// ========================================
// افزودن محصول جدید
// پروژه فروشگاه کیف‌لند
// ========================================
require_once '../config/database.php';
require_once '../config/settings.php';
require_once '../includes/auth.php';
require_once '../includes/functions.php';

Auth::requireAdmin();
$db = Database::getInstance()->getConnection();
$pageTitle = 'افزودن محصول جدید | کیف‌لند';

$error = '';
$success = '';

// دریافت دسته‌بندی‌ها برای دراپ‌داون
$categories_stmt = $db->query("SELECT id, name FROM categories ORDER BY name ASC");
$categories = $categories_stmt->fetchAll();

// ========================================
// پردازش فرم (POST)
// ========================================
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $name = trim($_POST['name'] ?? '');
        $description = trim($_POST['description'] ?? '');
        $price = (float)($_POST['price'] ?? 0);
        $discount_price = $_POST['discount_price'] !== '' ? (float)$_POST['discount_price'] : 0;
        $stock = (int)($_POST['stock'] ?? 0);
        $category_id = (int)($_POST['category_id'] ?? 0);
        $sku = trim($_POST['sku'] ?? '');
        $is_active = isset($_POST['is_active']) ? 1 : 0;

        // اعتبارسنجی
        if (empty($name)) throw new Exception('نام محصول الزامی است.');
        if ($price <= 0) throw new Exception('قیمت محصول باید بزرگتر از صفر باشد.');
        if ($category_id <= 0) throw new Exception('انتخاب دسته‌بندی الزامی است.');

        // ساخت اسلاگ (URL Friendly)
        $slug = slugify($name);

        // آپلود تصویر
        $image_name = '';
        if (isset($_FILES['image']) && $_FILES['image']['error'] === 0) {
            $allowed = ['jpg', 'jpeg', 'png', 'webp'];
            $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
            
            if (in_array($ext, $allowed)) {
                $image_name = uniqid('prod_') . '.' . $ext;
                $upload_path = '../uploads/products/' . $image_name;
                if (!move_uploaded_file($_FILES['image']['tmp_name'], $upload_path)) {
                    throw new Exception('خطا در آپلود تصویر.');
                }
            } else {
                throw new Exception('فرمت تصویر مجاز نیست (jpg, png, webp).');
            }
        }

        // ثبت در دیتابیس
        $sql = "INSERT INTO products (name, slug, description, price, discount_price, stock, category_id, image, sku, is_active, created_at, updated_at) 
                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())";
        $stmt = $db->prepare($sql);
        $stmt->execute([
            $name, $slug, $description, $price, $discount_price, 
            $stock, $category_id, $image_name, $sku, $is_active
        ]);

        Auth::logActivity('product_add', "افزودن محصول جدید: $name");
        
        // ریدایرکت به لیست محصولات با پیام موفقیت
        header('Location: products.php?msg=success');
        exit;

    } catch (Exception $e) {
        $error = $e->getMessage();
    }
}

include 'includes/admin-header.php';
?>

<style>
/* ========================================
   Product Add Form Styles
   ======================================== */
.form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group.full-width {
    grid-column: span 2;
}

.form-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
}

.form-label .required {
    color: var(--danger);
}

/* Input Styles */
.form-control {
    width: 100%;
    padding: 12px 14px;
    background: var(--glass-bg);
    backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-sm);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 14px;
    color: var(--text-primary);
    transition: all var(--transition-fast);
    min-height: 44px;
}

.form-control:hover {
    background: var(--glass-hover);
}

.form-control:focus {
    outline: none;
    background: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.15);
}

.form-control::placeholder {
    color: var(--text-secondary);
    opacity: 0.6;
}

textarea.form-control {
    min-height: 120px;
    resize: vertical;
    line-height: 1.6;
}

/* Checkbox Styles */
.checkbox-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    margin-top: 8px;
}

.checkbox-wrapper input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    cursor: pointer;
}

.checkbox-wrapper span {
    font-size: 14px;
    color: var(--text-primary);
}

/* Image Upload Styles */
.file-upload-wrapper {
    position: relative;
    width: 100%;
    height: 200px;
    border: 2px dashed var(--glass-border);
    border-radius: var(--radius);
    background: var(--glass-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
    overflow: hidden;
}

.file-upload-wrapper:hover {
    border-color: var(--primary);
    background: var(--glass-bg-light);
}

.file-upload-wrapper input[type="file"] {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.file-upload-content {
    text-align: center;
    pointer-events: none;
    z-index: 1;
}

.file-upload-content i {
    font-size: 40px;
    color: var(--text-secondary);
    margin-bottom: 10px;
    opacity: 0.6;
}

.file-upload-content p {
    font-size: 14px;
    color: var(--text-secondary);
    margin: 0;
}

.file-upload-content small {
    font-size: 11px;
    color: var(--text-muted);
}

/* Image Preview */
.image-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    z-index: 1;
}

/* Action Buttons */
.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--glass-border);
    margin-top: 20px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: var(--radius-sm);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all var(--transition-fast);
    border: none;
    min-height: 44px;
    font-family: 'Vazirmatn', sans-serif;
    text-decoration: none;
}

.btn:active { transform: scale(0.98); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-primary {
    background: var(--primary);
    color: white;
    box-shadow: 0 4px 12px rgba(0, 122, 255, 0.25);
}

.btn-primary:hover {
    background: var(--primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 122, 255, 0.35);
}

.btn-ghost {
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--glass-border);
}

.btn-ghost:hover {
    background: var(--glass-hover);
    color: var(--text-primary);
    border-color: var(--text-secondary);
}

/* Responsive */
@media (max-width: 768px) {
    .form-grid {
        grid-template-columns: 1fr;
    }
    
    .form-group.full-width {
        grid-column: span 1;
    }
    
    .form-actions {
        flex-direction: column-reverse;
    }
    
    .form-actions .btn {
        width: 100%;
    }
}
</style>

<main class="main-content">
    <header class="top-header">
        <button class="menu-toggle" id="menuToggle"><i class="fas fa-bars"></i></button>
        <div class="search-box">
            <i class="fas fa-search"></i>
            <input type="text" placeholder="جستجو...">
        </div>
        <div class="header-actions">
            <a href="products.php" class="btn btn-ghost btn-sm">
                <i class="fas fa-arrow-right"></i>
                <span>بازگشت به لیست</span>
            </a>
        </div>
    </header>

    <div class="dashboard-content">
        <div class="form-header">
            <div class="page-title" style="margin: 0;">
                <h1>افزودن محصول جدید</h1>
                <p>اطلاعات محصول جدید را وارد کنید</p>
            </div>
        </div>

        <?php if ($error): ?>
        <div class="alert alert-danger">
            <i class="fas fa-exclamation-circle"></i>
            <?= htmlspecialchars($error) ?>
        </div>
        <?php endif; ?>

        <form method="POST" enctype="multipart/form-data">
            <div class="glass-card">
                <div class="form-grid">
                    
                    <!-- نام محصول -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-tag"></i>
                            نام محصول
                            <span class="required">*</span>
                        </label>
                        <input type="text" name="name" class="form-control" placeholder="مثال: کیف چرمی طبیعی" required>
                    </div>

                    <!-- کد محصول (SKU) -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-barcode"></i>
                            کد محصول (SKU)
                        </label>
                        <input type="text" name="sku" class="form-control" placeholder="مثال: BAG-001">
                    </div>

                    <!-- دسته‌بندی -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-folder"></i>
                            دسته‌بندی
                            <span class="required">*</span>
                        </label>
                        <select name="category_id" class="form-control" required>
                            <option value="0">انتخاب دسته‌بندی...</option>
                            <?php foreach ($categories as $cat): ?>
                            <option value="<?= $cat['id'] ?>"><?= htmlspecialchars($cat['name']) ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>

                    <!-- قیمت -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-money-bill-wave"></i>
                            قیمت (تومان)
                            <span class="required">*</span>
                        </label>
                        <input type="number" name="price" class="form-control" placeholder="0" required min="0">
                    </div>

                    <!-- قیمت با تخفیف -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-percent"></i>
                            قیمت با تخفیف (اختیاری)
                        </label>
                        <input type="number" name="discount_price" class="form-control" placeholder="0" min="0">
                    </div>

                    <!-- موجودی -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-boxes"></i>
                            موجودی انبار
                        </label>
                        <input type="number" name="stock" class="form-control" value="0" min="0">
                    </div>

                    <!-- توضیحات -->
                    <div class="form-group full-width">
                        <label class="form-label">
                            <i class="fas fa-align-left"></i>
                            توضیحات محصول
                        </label>
                        <textarea name="description" class="form-control" placeholder="توضیحات کامل درباره محصول..."></textarea>
                    </div>

                    <!-- آپلود تصویر -->
                    <div class="form-group full-width">
                        <label class="form-label">
                            <i class="fas fa-image"></i>
                            تصویر محصول
                        </label>
                        <div class="file-upload-wrapper" id="dropZone">
                            <input type="file" name="image" id="imageInput" accept="image/*">
                            <img id="imagePreview" class="image-preview" alt="Preview">
                            <div class="file-upload-content" id="uploadContent">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>تصویر را اینجا رها کنید یا کلیک کنید</p>
                                <small>فرمت‌های مجاز: JPG, PNG, WEBP</small>
                            </div>
                        </div>
                    </div>

                    <!-- وضعیت فعال/غیرفعال -->
                    <div class="form-group full-width">
                        <label class="checkbox-wrapper">
                            <input type="checkbox" name="is_active" checked>
                            <span>محصول بلافاصله پس از ثبت فعال و در سایت نمایش داده شود.</span>
                        </label>
                    </div>

                </div>

                <!-- دکمه‌های عملیات -->
                <div class="form-actions">
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-save"></i>
                        ثبت محصول
                    </button>
                    <a href="products.php" class="btn btn-ghost">
                        <i class="fas fa-times"></i>
                        انصراف
                    </a>
                </div>
            </div>
        </form>
    </div>
</main>

<script src="assets/js/script.js"></script>
<script>
    // پیش‌نمایش تصویر قبل از آپلود
    const imageInput = document.getElementById('imageInput');
    const imagePreview = document.getElementById('imagePreview');
    const uploadContent = document.getElementById('uploadContent');
    const dropZone = document.getElementById('dropZone');

    imageInput.addEventListener('change', function(e) {
        const file = e.target.files[0];
        if (file) {
            const reader = new FileReader();
            reader.onload = function(e) {
                imagePreview.src = e.target.result;
                imagePreview.style.display = 'block';
                uploadContent.style.display = 'none';
                dropZone.style.borderColor = 'var(--success)';
            }
            reader.readAsDataURL(file);
        }
    });
</script>

<?php include 'includes/admin-footer.php'; ?>