Files
karvon_market/app_code/lib/presenters/cart_presenter.dart
jahongireshonqulov 9fbdabafb4 Initial commit
2025-10-17 19:42:02 +05:00

83 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:grostore/apis/cart_api.dart';
import 'package:grostore/apis/order_api.dart';
import 'package:grostore/app_lang.dart';
import 'package:grostore/custom_classes/system_data.dart';
import 'package:grostore/custom_ui/toast_ui.dart';
import 'package:grostore/models/cart_response.dart';
import 'package:grostore/models/order/order_summery_response.dart';
class CartPresenter extends ChangeNotifier{
static BuildContext? context;
setContext(BuildContext context){
CartPresenter.context=context;
}
TextEditingController couponTxtController = TextEditingController();
OrderSummeryResponse orderSummery = OrderSummeryResponse(subTotal: "", tax: "", shippingCharge: "", isFreeShipping:false, couponDiscount: "", total: "");
CartResponse cartResponse=CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: "0.0",couponDiscount: '');
bool isCartResponseFetch=false;
fetchCart()async{
var res = await CartApi.carts();
if(res.object.result) {
cartResponse = res.object;
isCartResponseFetch=true;
notifyListeners();
}
}
addToCart(variantId,qty,BuildContext context)async{
var res = await CartApi.addToCart(variantId: variantId, qty: qty);
if(res.object.result) {
cartResponse = res.object;
isCartResponseFetch=true;
notifyListeners();
}
// ToastUi.show(context, res.object.message);
ToastUi.showAdd(context, AppLang.local(context).add_to_cart);
}
applyCoupon(BuildContext context,code)async{
var res = await CartApi.couponApply(code:code );
if(res.object.result) {
SystemData.couponCode=code;
cartResponse = res.object;
isCartResponseFetch=true;
notifyListeners();
}
ToastUi.show(context, res.object.message);
}
updateCart({required cartId,required BuildContext context,required String action})async{
var res = await CartApi.cartUpdate(id: cartId, action: action);
if(res.object.result) {
cartResponse = res.object;
isCartResponseFetch=true;
// ToastUi.show(context, res.object.message);
ToastUi.show(context, AppLang.local(context).update);
notifyListeners();
}
}
getOrderSummery({String logistic_zone_id="0"})async{
var res = await OrderApi.getSummery(logistic_zone_id: logistic_zone_id);
orderSummery =res.object;
notifyListeners();
}
clearAll(){
couponTxtController = TextEditingController();
orderSummery = OrderSummeryResponse(subTotal: "", tax: "", shippingCharge: "", isFreeShipping:false, couponDiscount: "", total: "");
cartResponse=CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: "0.0",couponDiscount: '');
isCartResponseFetch=false;
}
init(){
}
}