import 'package:car_provider_app/common/schedule_model.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/models/m_response.dart'; import 'package:mc_common_app/models/profile/services.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; class ScheduleVM extends BaseVM { ScheduleRepo scheduleRepo; ScheduleVM({required this.scheduleRepo}); List selectedServicesItems = []; List? servicesList; List selectedDaysItems = []; Schedule? schedule; refresh() { setState(ViewState.idle); } getAllServices() async { if (servicesList == null) { Services services = await scheduleRepo.getAllServices(); if (services.messageStatus == 1) { servicesList = services.data; } 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() { List initDays = [ 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), ]; if (selectedDaysItems.isNotEmpty) { for (var element in selectedDaysItems) { if (element.isSelected ?? false) { for (var innerElement in initDays) { if (element.id == innerElement.id) { innerElement.isSelected = true; } } } } } return initDays; } 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() async { schedule = await scheduleRepo.getSchedules(); setState(ViewState.idle); } }