import 'dart:io'; import 'package:car_provider_app/views/branch_management/schedule/widgets/chips_picker_item.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; import 'package:mc_common_app/repositories/items_repo.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/models/services_models/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/ad_view_model.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:file_picker/file_picker.dart'; import 'package:easy_localization/easy_localization.dart'; class ItemsVM extends BaseVM { final ItemsRepo itemsRepo; final CommonAppServices commonServices; ItemsVM({required this.itemsRepo, required this.commonServices}); //Items ItemModel? serviceItems; Future selectFile(BuildContext context) async { File? file = await commonServices.pickFile(context, fileType: FileType.image); if (file != null) { int sizeInBytes = file.lengthSync(); // double sizeInMb = sizeInBytes / (1024 * 1024); if (sizeInBytes > 1000) { Utils.showToast(LocaleKeys.fileLarger.tr()); } else { return Utils.convertFileToBase64(file); } } else { // User canceled the picker } return null; } Future createServiceItem(Map map) async { GenericRespModel response = await itemsRepo.createServiceItems(map); return response; } Future getServiceItems(int serviceId, {List? list}) async { serviceItems = null; setOnlyState(ViewState.busy); serviceItems = await itemsRepo.getServiceItems(serviceId); if (list != null) { for (var element in list) { for (var innerElement in serviceItems!.data!) { if (element.id == innerElement.id) { innerElement.isUpdateOrSelected = true; } } // serviceItems!.data!.where( // (innerElement) => element.id == innerElement.id // ? innerElement.isUpdateOrSelected = true // : innerElement.isUpdateOrSelected = true, // ); } } setState(ViewState.idle); return serviceItems; } Future updateServiceItem(Map map) async { GenericRespModel response = await itemsRepo.updateServiceItem(map); return response; } Future pickSingleFile(BuildContext context) async { File? file = await commonServices.pickFile(context, fileType: FileType.custom, allowedExtensions: ['jpg', 'png', 'jpeg']); if (file == null) return null; return file; } }