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.
55 lines
1.6 KiB
Dart
55 lines
1.6 KiB
Dart
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<String?> 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<MResponse> createServiceItem(Map map) async {
|
|
MResponse response = await itemsRepo.createServiceItems(map);
|
|
return response;
|
|
}
|
|
|
|
Future<ItemModel?> getServiceItems(int serviceId) async {
|
|
setState(ViewState.busy);
|
|
serviceItems = await itemsRepo.getServiceItems(serviceId);
|
|
setState(ViewState.idle);
|
|
return serviceItems;
|
|
}
|
|
|
|
Future<MResponse> updateServiceItem(Map map) async {
|
|
MResponse response = await itemsRepo.updateServiceItem(map);
|
|
return response;
|
|
}
|
|
}
|