import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; import 'package:car_provider_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; List initDaysList = [ PickerItem(id: 1, title: "Monday", isSelected: false), PickerItem(id: 2, title: "Tuesday", isSelected: false), PickerItem(id: 3, title: "Wednesday", isSelected: false), PickerItem(id: 4, title: "Thursday", isSelected: false), PickerItem(id: 5, title: "Friday", isSelected: false), PickerItem(id: 6, title: "Saturday", isSelected: false), PickerItem(id: 7, title: "Sunday", isSelected: false), ]; class ScheduleVM extends BaseVM { ScheduleRepo scheduleRepo; ScheduleVM({required this.scheduleRepo}); List selectedServicesItems = []; List? servicesList; List selectedDaysItems = []; Schedule? schedule; refresh() { setState(ViewState.idle); } getAllServices(String branchId, ScheduleData selectedSchedule) async { // if (servicesList == null) { servicesList = null; Services services = await scheduleRepo.getAllServices(branchId); if (services.messageStatus == 1) { servicesList = services.data; if (selectedSchedule.id != null) { for (var element in servicesList!) { for (var innerElement in selectedSchedule.scheduleServices!) { if (element.id == innerElement.providerServiceId) { element.isSelected = true; } } } } } setState(ViewState.idle); // } } filterSelectedServices() { if (servicesList != null) { selectedServicesItems = []; for (var element in servicesList!) { if (element.isSelected ?? false) { selectedServicesItems.add(PickerItem(id: element.id ?? 0, title: element.description ?? "")); } } setState(ViewState.idle); } } //Days List intiDays() { for (var element in initDaysList) { element.isSelected = false; for (var innerElement in selectedDaysItems) { if (element.id == innerElement.id) { element.isSelected = true; } } } return initDaysList; } filterDays(List picked) { selectedDaysItems = []; for (var element in picked) { if (element.isSelected ?? false) { selectedDaysItems.add(element); } } setState(ViewState.idle); } Future createSchedule(Map map) async { MResponse response = await scheduleRepo.createSchedule(map); return response; } Future addServicesInSchedule(Map map) async { MResponse response = await scheduleRepo.addServicesInSchedule(map); return response; } getSchedules(String branchId) async { schedule = null; schedule = await scheduleRepo.getSchedules(branchId); setState(ViewState.idle); } Future updateSchedule(Map map) async { MResponse response = await scheduleRepo.updateSchedule(map); return response; } Future updateServicesInSchedule(Map map) async { MResponse response = await scheduleRepo.updateServicesInSchedule(map); return response; } }