carrito_providers.dart 1.05 KB
Newer Older
yenisleydi committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
import 'package:flutter/material.dart';
import 'package:primer_practica/src/models/carrito_model.dart';
import 'package:primer_practica/src/models/articles_model.dart';

class CarritoProvider with ChangeNotifier {
  List<CarritoModel> _carrito = [];

  List<CarritoModel> get carrito => _carrito;

  void agregarCarrito(ArticlesModel article) {
    final carritoItem = CarritoModel(
      articulo: article,
      cantidad: 1,
      precio: article.precios.isNotEmpty ? article.precios[0].precio : 0.0,
    );
    _carrito.add(carritoItem);
    notifyListeners();
  }

  void eliminarDelCarrito(CarritoModel item) {
    _carrito.remove(item);
    notifyListeners();
  }

  void actualizarArticulo(CarritoModel item, int quantity) {
    int index = _carrito.indexOf(item);
    if (index != -1) {
      _carrito[index].cantidad = quantity;
      notifyListeners();
    }
  }

  double get totalPrecio {
    double total = 0.0;
    for (var item in _carrito) {
      total += item.precio * item.cantidad;
    }
    return total;
  }

  int get totalCarrito => _carrito.length;
}