cartSave function

dynamic cartSave()

Implementation

cartSave(){
  User? user = FirebaseAuth.instance.currentUser;
  if (user == null)
    return "user == null";

  // сохраняем сервисы и артикли (товар) отдельно - в профиле пользоателя.
  // сохраняем
  //      для сервисов - (киличество, какая цена выбрана и какие addon'ы)
  //      для сервисов - сохраняем полность group
  List<CartData> _list = [];
  for (var item in cart){
    CartData data;
    if (item.thisIsArticle)
      data = CartData(
        id: item.id, // service or article id
        thisIsArticle: item.thisIsArticle, // service by default. If true article
        // service
        selectedPrice: PriceData.createEmpty(), // only for service
        count: item.countProduct,
        addons: [], // only for service
        // article
        group: item.group
      );
    else{
      List<AddonData> _addon = [];
      for (var item in item.addon)
        if (item.selected)
          _addon.add(item);
      PriceData _price = PriceData.createEmpty();
      for (var item in item.price)
        if (item.selected)
          _price = item;
      data = CartData(
          id: item.id, // service or article id
          thisIsArticle: item.thisIsArticle, // service by default. If true article
          // service
          selectedPrice: _price, // only for service
          count: item.countProduct,
          addons: _addon, // only for service
          // article
          group: []
      );
    }
    _list.add(data);
  }

  FirebaseFirestore.instance.collection("listusers").doc(user.uid).set({
    "cartData": _list.map((i) => i.toJson()).toList(),
  }, SetOptions(merge:true));
}