<?php
require_once __DIR__ . '/../../config/config.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/image_helper.php';

requireAdmin();
$db = getDBConnection();
$error = '';
$success = '';

// Handle Delete
if (isset($_GET['action']) && $_GET['action'] === 'delete') {
    $id = (int)$_GET['id'];
    $stmt = $db->prepare("DELETE FROM products WHERE id = ?");
    $stmt->execute([$id]);
    $_SESSION['flash_success'] = 'ลบสินค้าเรียบร้อยแล้ว';
    header('Location: products.php');
    exit;
}

// Handle Save Product (Add / Edit)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verifyCSRFToken($_POST['csrf_token'] ?? '');
    
    $productId = (int)($_POST['product_id'] ?? 0);
    $name = sanitize($_POST['name'] ?? '');
    $category_id = (int)($_POST['category_id'] ?? 1);
    $price = (float)($_POST['price'] ?? 0);
    $normal_price = (float)($_POST['normal_price'] ?? 0);
    $description = sanitize($_POST['description'] ?? '');
    $status = sanitize($_POST['status'] ?? 'active');
    $slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $name))) . '-' . rand(10,99);

    $mainImage = '';

    // Handle GD Image Upload & Compression
    if (isset($_FILES['main_image']) && $_FILES['main_image']['error'] === UPLOAD_ERR_OK) {
        $uploadResult = processAndUploadImage($_FILES['main_image'], 'products');
        if ($uploadResult['success']) {
            $mainImage = UPLOAD_URL . $uploadResult['main_path'];
            $success .= " บีบอัดรูปภาพสำเร็จ (จาก " . $uploadResult['orig_size_kb'] . "KB เหลือ " . $uploadResult['comp_size_kb'] . "KB)!";
        } else {
            $error = $uploadResult['error'];
        }
    }

    if (empty($name) || $price <= 0) {
        $error = 'กรุณากรอกชื่อสินค้าและราคาให้ถูกต้อง';
    } elseif (empty($error)) {
        if ($productId > 0) {
            // Update
            if (!empty($mainImage)) {
                $stmt = $db->prepare("UPDATE products SET category_id=?, name=?, description=?, price=?, normal_price=?, main_image=?, status=? WHERE id=?");
                $stmt->execute([$category_id, $name, $description, $price, $normal_price, $mainImage, $status, $productId]);
            } else {
                $stmt = $db->prepare("UPDATE products SET category_id=?, name=?, description=?, price=?, normal_price=?, status=? WHERE id=?");
                $stmt->execute([$category_id, $name, $description, $price, $normal_price, $status, $productId]);
            }
            $_SESSION['flash_success'] = 'แก้ไขข้อมูลสินค้าสำเร็จ!' . $success;
        } else {
            // Insert
            if (empty($mainImage)) $mainImage = 'https://images.unsplash.com/photo-1521572267360-ee0c2909d518?w=800';
            $vendor_id = (int)($_POST['vendor_id'] ?? 0);
            $stmt = $db->prepare("INSERT INTO products (vendor_id, category_id, name, slug, description, price, normal_price, main_image, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
            $stmt->execute([$vendor_id, $category_id, $name, $slug, $description, $price, $normal_price, $mainImage, $status]);
            $_SESSION['flash_success'] = 'เพิ่มสินค้าใหม่สำเร็จ!' . $success;
        }
        header('Location: products.php');
        exit;
    }
}

$categories = $db->query("SELECT * FROM categories ORDER BY id ASC")->fetchAll();
$vendors    = $db->query("SELECT id, store_name FROM vendors WHERE status='approved' ORDER BY store_name ASC")->fetchAll();

// Filter by vendor
$filterVendor = (int)($_GET['vendor_id'] ?? 0);
$whereSql = $filterVendor > 0 ? "WHERE p.vendor_id = $filterVendor" : '';
$products = $db->query("
    SELECT p.*, c.name as category_name,
           v.store_name, v.store_slug
    FROM products p
    JOIN categories c ON p.category_id = c.id
    LEFT JOIN vendors v ON p.vendor_id = v.id
    $whereSql
    ORDER BY p.id DESC
")->fetchAll();

require_once __DIR__ . '/../../includes/admin_header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
  <div>
    <h3 class="fw-bold mb-0">👕 จัดการสินค้า (All Vendors)</h3>
    <small class="text-muted">ดูและจัดการสินค้าจากทุกร้านค้า</small>
  </div>
  <button class="btn btn-primary-custom rounded-pill" data-bs-toggle="modal" data-bs-target="#productModal" onclick="resetForm()">+ เพิ่มสินค้าใหม่</button>
</div>

<!-- Filter by Vendor -->
<div class="card card-custom p-3 mb-3">
  <form method="GET" class="d-flex gap-3 align-items-end flex-wrap">
    <div>
      <label class="form-label small fw-bold mb-1">🏪 กรองตามร้านค้า</label>
      <select name="vendor_id" class="form-select form-select-sm" style="min-width:200px;" onchange="this.form.submit()">
        <option value="0">-- ทุกร้านค้า --</option>
        <?php foreach ($vendors as $vf): ?>
          <option value="<?php echo $vf['id']; ?>" <?php echo $filterVendor === (int)$vf['id'] ? 'selected' : ''; ?>>
            <?php echo htmlspecialchars($vf['store_name']); ?>
          </option>
        <?php endforeach; ?>
      </select>
    </div>
    <?php if ($filterVendor > 0): ?>
      <a href="products.php" class="btn btn-sm btn-outline-secondary rounded-pill">✕ ล้างตัวกรอง</a>
    <?php endif; ?>
  </form>
</div>

<?php if (!empty($error)): ?>
  <div class="alert alert-danger"><?php echo $error; ?></div>
<?php endif; ?>

<div class="card card-custom p-4">
  <div class="table-responsive">
    <table class="table table-hover align-middle">
      <thead class="table-dark">
        <tr>
          <th>รูปภาพ</th>
          <th>ชื่อสินค้า</th>
          <th>ร้านค้า</th>
          <th>หมวดหมู่</th>
          <th>ราคาขาย</th>
          <th>สถานะ</th>
          <th>จัดการ</th>
        </tr>
      </thead>
      <tbody>
        <?php if (empty($products)): ?>
          <tr><td colspan="7" class="text-center py-4 text-muted">ไม่พบสินค้า</td></tr>
        <?php endif; ?>
        <?php foreach ($products as $p): ?>
          <tr>
            <td>
              <?php 
                $imgUrl = formatImageUrl($p['main_image'] ?: $p['image']); 
              ?>
              <img src="<?php echo sanitize($imgUrl); ?>" 
                   onerror="this.onerror=null; this.src='<?php echo SITE_URL; ?>/assets/images/no-image.png';" 
                   class="rounded border shadow-sm" 
                   style="width: 50px; height: 50px; object-fit: cover;" 
                   alt="<?php echo sanitize($p['name']); ?>">
            </td>
            <td>
              <div class="fw-bold"><?php echo sanitize($p['name']); ?></div>
              <small class="text-muted">#<?php echo $p['id']; ?></small>
            </td>
            <td>
              <?php if ($p['store_name']): ?>
                <a href="vendors.php" class="badge bg-primary text-decoration-none">
                  🏪 <?php echo htmlspecialchars($p['store_name']); ?>
                </a>
              <?php else: ?>
                <span class="badge bg-secondary">ไม่มีร้านค้า</span>
              <?php endif; ?>
            </td>
            <td><span class="badge bg-secondary"><?php echo sanitize($p['category_name']); ?></span></td>
            <td class="text-primary fw-bold">฿<?php echo number_format($p['price'], 2); ?></td>
            <td>
              <span class="badge <?php echo $p['status'] === 'active' ? 'bg-success' : 'bg-danger'; ?>">
                <?php echo $p['status']; ?>
              </span>
            </td>
            <td>
              <button class="btn btn-sm btn-edit-custom rounded-pill me-1" onclick='editProduct(<?php echo json_encode($p); ?>)'>✏️ แก้ไข</button>
              <a href="?action=delete&id=<?php echo $p['id']; ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('ยืนยันการลบสินค้า?')">🗑️ ลบ</a>
            </td>
          </tr>
        <?php endforeach; ?>
      </tbody>
    </table>
  </div>
</div>

<!-- Modal Product Form -->
<div class="modal fade" id="productModal" tabindex="-1">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <form method="POST" action="" enctype="multipart/form-data">
        <div class="modal-header">
          <h5 class="modal-title fw-bold" id="modalTitle">เพิ่มสินค้าใหม่</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
        </div>
        <div class="modal-body">
          <input type="hidden" name="csrf_token" value="<?php echo generateCSRFToken(); ?>">
          <input type="hidden" name="product_id" id="prod_id">

          <div class="row">
            <div class="col-md-8 mb-3">
              <label class="form-label">ชื่อสินค้า *</label>
              <input type="text" name="name" id="prod_name" class="form-control" required>
            </div>
            <div class="col-md-4 mb-3">
              <label class="form-label">ร้านค้า (Vendor) *</label>
              <select name="vendor_id" id="prod_vendor" class="form-select" required>
                <option value="">-- เลือกร้านค้า --</option>
                <?php foreach ($vendors as $vv): ?>
                  <option value="<?php echo $vv['id']; ?>"><?php echo htmlspecialchars($vv['store_name']); ?></option>
                <?php endforeach; ?>
              </select>
            </div>
          </div>
          <div class="row">
            <div class="col-md-12 mb-3">
              <label class="form-label">หมวดหมู่หลัก *</label>
              <select name="category_id" id="prod_category" class="form-select" required>
                <?php foreach ($categories as $c): ?>
                  <option value="<?php echo $c['id']; ?>"><?php echo sanitize($c['name']); ?></option>
                <?php endforeach; ?>
              </select>
            </div>
          </div>

          <div class="row">
            <div class="col-md-6 mb-3">
              <label class="form-label">ราคาขาย (บาท) *</label>
              <input type="number" step="0.01" name="price" id="prod_price" class="form-control" required>
            </div>
            <div class="col-md-6 mb-3">
              <label class="form-label">ราคาปกติ (ขีดฆ่า)</label>
              <input type="number" step="0.01" name="normal_price" id="prod_normal_price" class="form-control">
            </div>
          </div>

          <div class="mb-3">
            <label class="form-label">รูปภาพสินค้าหลัก (ย่อขนาด max 1200px + บีบอัดด้วย GD)</label>
            <input type="file" name="main_image" class="form-control" accept="image/*">
          </div>

          <div class="mb-3">
            <label class="form-label">รายละเอียดสินค้า</label>
            <textarea name="description" id="prod_desc" class="form-control" rows="3"></textarea>
          </div>

          <div class="mb-3">
            <label class="form-label">สถานะสินค้า</label>
            <select name="status" id="prod_status" class="form-select">
              <option value="active">เปิดใช้งาน (Active)</option>
              <option value="inactive">ปิดใช้งาน (Inactive)</option>
            </select>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary rounded-pill" data-bs-dismiss="modal">ยกเลิก</button>
          <button type="submit" class="btn btn-primary-custom rounded-pill">บันทึกข้อมูล ✨</button>
        </div>
      </form>
    </div>
  </div>
</div>

<script>
function resetForm() {
    document.getElementById('modalTitle').innerText = 'เพิ่มสินค้าใหม่';
    document.getElementById('prod_id').value = '';
    document.getElementById('prod_name').value = '';
    document.getElementById('prod_price').value = '';
    document.getElementById('prod_normal_price').value = '';
    document.getElementById('prod_desc').value = '';
}

function editProduct(p) {
    document.getElementById('modalTitle').innerText = 'แก้ไขสินค้า #' + p.id;
    document.getElementById('prod_id').value = p.id;
    document.getElementById('prod_name').value = p.name;
    document.getElementById('prod_vendor').value = p.vendor_id;
    document.getElementById('prod_category').value = p.category_id;
    document.getElementById('prod_price').value = p.price;
    document.getElementById('prod_normal_price').value = p.normal_price;
    document.getElementById('prod_desc').value = p.description;
    document.getElementById('prod_status').value = p.status;
    new bootstrap.Modal(document.getElementById('productModal')).show();
}
</script>

<?php require_once __DIR__ . '/../../includes/admin_footer.php'; ?>
