import 'dart:io'; import 'package:car_provider_app/repositories/items_repo.dart'; import 'package:mc_common_app/models/m_response.dart'; import 'package:mc_common_app/models/services/item_model.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:file_picker/file_picker.dart'; class ItemsVM extends BaseVM { final ItemsRepo itemsRepo; final CommonAppServices commonServices; ItemsVM({required this.itemsRepo, required this.commonServices}); //Items ItemModel? serviceItems; Future selectFile() async { File? file = await commonServices.pickFile(fileType: FileType.image); if (file != null) { int sizeInBytes = file.lengthSync(); // double sizeInMb = sizeInBytes / (1024 * 1024); if (sizeInBytes > 1000) { Utils.showToast("File is larger then 1KB"); } else { return Utils.convertFileToBase64(file); } } else { // User canceled the picker } return null; } Future createServiceItem(Map map) async { MResponse response = await itemsRepo.createServiceItems(map); return response; } Future getServiceItems(int serviceId) async { setState(ViewState.busy); serviceItems = await itemsRepo.getServiceItems(serviceId); setState(ViewState.idle); return serviceItems; } Future updateServiceItem(Map map) async { MResponse response = await itemsRepo.updateServiceItem(map); return response; } }