// ============================================
// WIZ DÉCO — Gestion du panier (localStorage)
// ============================================

const CART_KEY = 'wizdeco_cart';

const Cart = {

  // Récupère les articles du panier
  getItems() {
    return JSON.parse(localStorage.getItem(CART_KEY) || '[]');
  },

  // Sauvegarde le panier
  save(items) {
    localStorage.setItem(CART_KEY, JSON.stringify(items));
    Cart.updateBadge();
  },

  // Ajoute un produit (ou incrémente la quantité)
  addItem(productId, qty = 1) {
    const items = Cart.getItems();
    const idx = items.findIndex(i => i.id === productId);
    if (idx > -1) {
      items[idx].qty += qty;
    } else {
      const product = getProductById(productId);
      if (!product) return;
      items.push({ id: product.id, name: product.name, price: product.price, img: product.img, qty });
    }
    Cart.save(items);
  },

  // Supprime un produit du panier
  removeItem(productId) {
    const items = Cart.getItems().filter(i => i.id !== productId);
    Cart.save(items);
  },

  // Met à jour la quantité d'un produit
  updateQty(productId, qty) {
    if (qty < 1) { Cart.removeItem(productId); return; }
    const items = Cart.getItems();
    const idx = items.findIndex(i => i.id === productId);
    if (idx > -1) { items[idx].qty = qty; Cart.save(items); }
  },

  // Calcule le total
  getTotal() {
    return Cart.getItems().reduce((sum, i) => sum + i.price * i.qty, 0);
  },

  // Nombre total d'articles
  getCount() {
    return Cart.getItems().reduce((sum, i) => sum + i.qty, 0);
  },

  // Vide le panier
  clear() {
    localStorage.removeItem(CART_KEY);
    Cart.updateBadge();
  },

  // Met à jour le badge de la nav
  updateBadge() {
    const badge = document.getElementById('cart-badge');
    if (!badge) return;
    const count = Cart.getCount();
    badge.textContent = count;
    badge.style.display = count > 0 ? 'flex' : 'none';
  },

  // Formate un prix en euros
  formatPrice(amount) {
    return amount.toLocaleString('fr-FR', { style: 'currency', currency: 'EUR' });
  }
};

// Met à jour le badge dès le chargement
document.addEventListener('DOMContentLoaded', () => Cart.updateBadge());