Files
Fondex/lib/controllers/favourite_controller.dart

94 lines
3.6 KiB
Dart

import 'package:customer/constant/collection_name.dart';
import 'package:customer/constant/constant.dart';
import 'package:customer/models/favourite_item_model.dart';
import 'package:customer/models/favourite_model.dart';
import 'package:customer/models/product_model.dart';
import 'package:customer/models/vendor_model.dart';
import '../service/fire_store_utils.dart';
import 'package:get/get.dart';
class FavouriteController extends GetxController {
RxBool favouriteRestaurant = true.obs;
RxList<FavouriteModel> favouriteList = <FavouriteModel>[].obs;
RxList<VendorModel> favouriteVendorList = <VendorModel>[].obs;
RxList<FavouriteItemModel> favouriteItemList = <FavouriteItemModel>[].obs;
RxList<ProductModel> favouriteFoodList = <ProductModel>[].obs;
RxBool isLoading = true.obs;
@override
void onInit() {
// TODO: implement onInit
getData();
super.onInit();
}
Future<void> getData() async {
if (Constant.userModel != null) {
await FireStoreUtils.getFavouriteRestaurant().then((value) {
favouriteList.value = value;
});
await FireStoreUtils.getFavouriteItem().then((value) {
favouriteItemList.value = value;
});
for (var element in favouriteList) {
await FireStoreUtils.getVendorById(element.restaurantId.toString()).then((value) async {
if (value != null) {
if ((Constant.isSubscriptionModelApplied == true || value.adminCommission?.isEnabled == true) && value.subscriptionPlan != null) {
if (value.subscriptionTotalOrders == "-1") {
favouriteVendorList.add(value);
} else {
print("Restaurant :: ${value.title.toString()}");
if ((value.subscriptionExpiryDate != null && value.subscriptionExpiryDate!.toDate().isBefore(DateTime.now()) == false) ||
value.subscriptionPlan?.expiryDay == '-1') {
if (value.subscriptionTotalOrders != '0') {
favouriteVendorList.add(value);
}
}
}
} else {
favouriteVendorList.add(value);
}
}
});
}
for (var element in favouriteItemList) {
await FireStoreUtils.getProductById(element.productId.toString()).then((value) async {
if (value != null) {
await FireStoreUtils.fireStore.collection(CollectionName.vendors).doc(value.vendorID.toString()).get().then((value1) async {
if (value1.exists) {
VendorModel vendorModel = VendorModel.fromJson(value1.data()!);
if(value.publish == true){
if (Constant.isSubscriptionModelApplied == true || vendorModel.adminCommission?.isEnabled == true) {
if (vendorModel.subscriptionPlan != null) {
if (vendorModel.subscriptionTotalOrders == "-1") {
favouriteFoodList.add(value);
} else {
if ((vendorModel.subscriptionExpiryDate != null && vendorModel.subscriptionExpiryDate!.toDate().isBefore(DateTime.now()) == false) ||
vendorModel.subscriptionPlan?.expiryDay == "-1") {
if (vendorModel.subscriptionTotalOrders != '0') {
favouriteFoodList.add(value);
}
}
}
}
} else {
favouriteFoodList.add(value);
}
}
}
});
}
});
}
}
isLoading.value = false;
}
}