115 lines
4.2 KiB
Dart
115 lines
4.2 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' hide Trans;
|
|
|
|
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;
|
|
}
|
|
}
|