You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
car_common_app/lib/view_models/requests_view_model.dart

273 lines
9.4 KiB
Dart

// import 'dart:io';
//
// import 'package:mc_common_app/classes/app_state.dart';
// import 'package:mc_common_app/models/advertisment_models/vehicle_details_models.dart';
// import 'package:mc_common_app/models/enums_model.dart';
// import 'package:mc_common_app/models/generic_resp_model.dart';
// import 'package:mc_common_app/models/requests/request_model.dart';
// import 'package:mc_common_app/models/widgets_models.dart';
// import 'package:mc_common_app/repositories/common_repo.dart';
// import 'package:mc_common_app/services/common_services.dart';
// import 'package:mc_common_app/utils/utils.dart';
// import 'package:mc_common_app/view_models/base_view_model.dart';
//
// import '../repositories/request_repo.dart';
//
// class RequestsVM extends BaseVM {
// final CommonAppServices commonServices;
// final CommonRepo commonRepo;
// final RequestRepo requestRepo;
//
// RequestsVM({required this.commonServices, required this.commonRepo, required this.requestRepo});
//
// List<FilterListModel> requestsFilterOptions = [];
//
// populateRequestsFilterList() {
// requestsFilterOptions.clear();
// requestsFilterOptions = [
// FilterListModel(title: "Cars", isSelected: true, id: 1),
// FilterListModel(title: "Spare Parts", isSelected: false, id: 2),
// ];
// notifyListeners();
// }
//
// applyFilterOnRequestsVM({required int index}) {
// if (requestsFilterOptions.isEmpty) return;
// for (var value in requestsFilterOptions) {
// value.isSelected = false;
// }
// requestsFilterOptions[index].isSelected = true;
// notifyListeners();
// }
//
// List<File> pickedVehicleImages = [];
// String vehicleImageError = "";
//
// void removeImageFromList(String filePath) {
// int index = pickedVehicleImages.indexWhere((element) => element.path == filePath);
// if (index == -1) {
// return;
// }
// pickedVehicleImages.removeAt(index);
// notifyListeners();
// }
//
// void pickMultipleImages() async {
// List<File> Images = await commonServices.pickMultipleImages();
// pickedVehicleImages.addAll(Images);
// if (pickedVehicleImages.isNotEmpty) vehicleImageError = "";
// notifyListeners();
// }
//
// bool isFetchingRequestType = false;
// bool isFetchingVehicleType = true;
// bool isFetchingVehicleDetail = false;
// List<EnumsModel> requestTypes = [];
// List<VehicleTypeModel> vehicleTypes = [];
// VehicleDetailsModel? vehicleDetails;
// List<VehicleBrandsModel> vehicleBrands = [];
// List<VehicleModel> vehicleModels = [];
// List<VehicleYearModel> vehicleModelYears = [];
// List<VehicleCountryModel> vehicleCountries = [];
// List<VehicleCityModel> vehicleCities = [];
//
// SelectionModel requestTypeId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// getRequestTypes() async {
// requestTypeId.selectedId = -1;
// isFetchingRequestType = true;
// requestTypes = await commonRepo.getEnumTypeValues(enumTypeID: 16); //TODO: 16 is to get Request types
// isFetchingRequestType = false;
// notifyListeners();
// }
//
// void updateSelectionRequestTypeId(SelectionModel id) async {
// requestTypeId = id;
// getVehicleTypes();
// notifyListeners();
// }
//
// SelectionModel vehicleTypeId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// Future<void> getVehicleTypes() async {
// reset();
// isFetchingVehicleType = true;
// vehicleTypes = await commonRepo.getVehicleTypes();
// isFetchingVehicleType = false;
// notifyListeners();
// }
//
// reset() {
// vehicleTypeId.selectedId = -1;
// vehicleBrandId.selectedId = -1;
// vehicleModelId.selectedId = -1;
// vehicleModelYearId.selectedId = -1;
// vehicleCountryId.selectedId = -1;
// vehicleCityId.selectedId = -1;
// }
//
// void updateSelectionVehicleTypeId(SelectionModel id) async {
// vehicleTypeId = id;
// getVehicleBrandsByVehicleTypeId();
// notifyListeners();
// }
//
// Future<void> getVehicleBrandsByVehicleTypeId() async {
// // if (vehicleBrandId.selectedId == -1) {
// // return;
// // }
// isFetchingVehicleDetail = true;
// notifyListeners();
// vehicleDetails = await commonRepo.getVehicleDetails(vehicleTypeId: vehicleTypeId.selectedId);
//
// if (vehicleDetails != null) {
// vehicleBrands = vehicleDetails!.vehicleBrands!;
// vehicleModels = vehicleDetails!.vehicleModels!;
// vehicleModelYears = vehicleDetails!.vehicleModelYears!;
// vehicleCountries = vehicleDetails!.vehicleCountries!;
// }
// isFetchingVehicleDetail = false;
// notifyListeners();
// }
//
// SelectionModel vehicleBrandId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// void updateSelectionVehicleBrandId(SelectionModel id) {
// vehicleBrandId = id;
// vehicleModelId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
// vehicleModelYearId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
// notifyListeners();
// }
//
// SelectionModel vehicleModelId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// void updateSelectionVehicleModelId(SelectionModel id) {
// vehicleModelId = id;
// vehicleModelYearId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
// notifyListeners();
// }
//
// SelectionModel vehicleModelYearId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// void updateSelectionVehicleModelYearId(SelectionModel id) {
// vehicleModelYearId = id;
// notifyListeners();
// }
//
// bool isShippingDeliveryEnabled = false;
//
// void updateShippingDeliverEnabled(bool v) {
// isShippingDeliveryEnabled = v;
// notifyListeners();
// }
//
// bool isCountryFetching = false;
// SelectionModel vehicleCountryId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// void updateSelectionVehicleCountryId(SelectionModel id) async {
// vehicleCountryId = id;
// isCountryFetching = true;
// notifyListeners();
// vehicleCities = await commonRepo.getVehicleCities(countryId: vehicleCountryId.selectedId);
// isCountryFetching = false;
// notifyListeners();
// }
//
// SelectionModel vehicleCityId = SelectionModel(selectedOption: "", selectedId: -1, errorValue: "");
//
// void updateSelectionVehicleCityId(SelectionModel id) {
// vehicleCityId = id;
// notifyListeners();
// }
//
// //Request Management
// String price = "", description = "";
//
// updatePrice(String v) {
// price = v;
// }
//
// updateDescription(String v) {
// description = v;
// }
//
// Future<GenericRespModel?> createRequest() async {
// if (validate()) {
// Map<String, dynamic> m = {
// "customerID": AppState().getUser.data!.userInfo!.customerId ?? 0,
// "requestType": requestTypeId.selectedId,
// "vehicleTypeID": vehicleTypeId.selectedId,
// "brand": vehicleBrandId.selectedOption,
// "model": vehicleModelId.selectedOption,
// "year": vehicleModelYearId.selectedOption,
// "isNew": true,
// "countryID": vehicleCountryId.selectedId,
// "cityID": vehicleCityId.selectedId,
// "price": price,
// "description": description,
// "isSpecialServiceNeeded": false,
// "requestImages": []
// };
// GenericRespModel respModel = await requestRepo.createRequest(m);
// return respModel;
// } else {
// return null;
// }
// }
//
// bool validate() {
// bool isValid = true;
// if (requestTypeId.selectedId == -1) {
// Utils.showToast("Please select valid Request Type");
// isValid = false;
// } else if (vehicleTypeId.selectedId == -1) {
// Utils.showToast("Please select valid Vehicle Type");
// isValid = false;
// } else if (vehicleBrandId.selectedId == -1) {
// Utils.showToast("Please select valid Brand");
// isValid = false;
// } else if (vehicleModelId.selectedId == -1) {
// Utils.showToast("Please select valid Model");
// isValid = false;
// } else if (vehicleModelYearId.selectedId == -1) {
// Utils.showToast("Please select valid Year");
// isValid = false;
// } else if (vehicleCountryId.selectedId == -1) {
// Utils.showToast("Please select valid Country");
// isValid = false;
// } else if (vehicleCityId.selectedId == -1) {
// Utils.showToast("Please select valid City");
// isValid = false;
// } else if (price.isEmpty) {
// Utils.showToast("Please add valid Price");
// isValid = false;
// } else if (description.isEmpty) {
// Utils.showToast("Please add valid Description");
// isValid = false;
// }
// return isValid;
// }
//
// bool isRequestLoading = true;
// List<RequestModel> requests = [];
//
// getRequests() async {
// isRequestLoading = true;
// notifyListeners();
//
// int selectedRequestType;
// // Find the FilterListModel with isSelected equal to true
//
// requests = await requestRepo.getRequests(
// {
// "customerID": AppState().getUser.data!.userInfo!.customerId,
// "pageSize": 100,
// "pageIndex": 0,
// "requestType": requestsFilterOptions.firstWhere((element) => element.isSelected).id,
// },
// );
// isRequestLoading = false;
// notifyListeners();
// }
// }