import 'package:get/get.dart'; import '../models/product_model.dart'; import 'package:collection/collection.dart'; import '../models/product_model1.dart'; class CartController extends GetxController { var cartList = [].obs; var cartCount = 0.obs; var totalPrice = 0.0.obs; var subtotal = 0.0.obs; var gstTotal = 0.0.obs; var grandTotal = 0.0.obs; // Add item to cart void addToCart(Product product) { var existingProduct = cartList.firstWhereOrNull((p) => p.id == product.id); if (existingProduct != null) { // Update quantity if already in cart existingProduct.quantity++; } else { // Add new product to cart cartList.add(product); } cartCount.value = cartList.length; updateTotalPrice(); } void updateTotalPrice() { double subTotal = 0.0; double gstTotalAmount = 0.0; for (var product in cartList) { subTotal += product.price * product.quantity; gstTotalAmount += (product.price * product.quantity * (product.gst / 100)); } subtotal.value = subTotal; gstTotal.value = gstTotalAmount; grandTotal.value = subtotal.value + gstTotal.value; } // Increase the quantity of a product void increaseQuantity(Product product) { final index = cartList.indexWhere((item) => item.id == product.id); if (index != -1) { cartList[index].quantity++; updateTotalPrice(); } } // Decrease the quantity of a product void decreaseQuantity(Product product) { final index = cartList.indexWhere((item) => item.id == product.id); if (index != -1 && cartList[index].quantity > 1) { cartList[index].quantity--; updateTotalPrice(); } } // Remove item from cart void removeFromCart(Product product) { cartList.removeWhere((item) => item.id == product.id); cartCount.value = cartList.length; updateTotalPrice(); } }