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));
}