import 'package:mc_common_app/models/services_models/item_model.dart'; class ServiceModel { final int? serviceProviderServiceId; final dynamic providerServiceDescription; final int? categoryId; final String? categoryName; final int? serviceId; final String? serviceDescription; final String? serviceDescriptionN; final int? serviceStatus; final dynamic statusText; final bool? isAllowAppointment; final bool? isAllowAppointmentHome; final int? customerLocationRange; final String? rangePricePerKm; final int? itemsCount; List? serviceItems; bool isExpandedOrSelected; int providerServiceId; String providerServiceName; bool isHomeSelected; String homeLocation; double currentTotalServicePrice; ServiceModel({ this.serviceProviderServiceId, this.providerServiceDescription, this.categoryId, this.categoryName, this.serviceId, this.serviceDescription, this.serviceDescriptionN, this.serviceStatus, this.statusText, this.isAllowAppointment, this.isAllowAppointmentHome, this.customerLocationRange, this.rangePricePerKm, this.itemsCount, this.serviceItems, this.isHomeSelected = false, this.homeLocation = "", this.currentTotalServicePrice = 0.0, required this.isExpandedOrSelected, required this.providerServiceId, required this.providerServiceName, }); factory ServiceModel.fromJson(Map json, {bool isForAppointment = false}) => ServiceModel( serviceProviderServiceId: json["serviceProviderServiceID"], providerServiceDescription: json["providerServiceDescription"], categoryId: json["categoryID"], categoryName: json["categoryName"], serviceId: json["serviceID"], serviceDescription: json["serviceDescription"] ?? json["serviceName"], serviceDescriptionN: json["serviceDescriptionN"] ?? json["serviceNameN"], serviceStatus: json["serviceStatus"], statusText: json["statusText"], isAllowAppointment: json["isAllowAppointment"], isAllowAppointmentHome: json["isAllowAppointmentHome"], customerLocationRange: json["customerLocationRange"], rangePricePerKm: json["rangePricePerKm"].toString(), itemsCount: json["itemsCount"], serviceItems: isForAppointment ? json["serviceItemList"] == null ? [] : List.from(json["serviceItemList"]!.map((x) => ItemData.fromJson(x))) : json["branchServiceItems"] == null ? [] : List.from(json["branchServiceItems"]!.map((x) => ItemData.fromJson(x))), isExpandedOrSelected: false, providerServiceId: 0, providerServiceName: "", isHomeSelected: false, homeLocation: "", ); Map toJson() => { "serviceProviderServiceID": serviceProviderServiceId, "providerServiceDescription": providerServiceDescription, "categoryID": categoryId, "categoryName": categoryName, "serviceID": serviceId, "serviceDescription": serviceDescription, "serviceDescriptionN": serviceDescriptionN, "serviceStatus": serviceStatus, "statusText": statusText, "isAllowAppointment": isAllowAppointment, "isAllowAppointmentHome": isAllowAppointmentHome, "customerLocationRange": customerLocationRange, "rangePricePerKm": rangePricePerKm, "itemsCount": itemsCount, "branchServiceItems": serviceItems == null ? [] : List.from(serviceItems!.map((x) => x.toJson())), }; @override String toString() { return 'ServiceModel{serviceProviderServiceId: $serviceProviderServiceId, providerServiceDescription: $providerServiceDescription, categoryId: $categoryId, categoryName: $categoryName, serviceId: $serviceId, serviceDescription: $serviceDescription, serviceDescriptionN: $serviceDescriptionN, serviceStatus: $serviceStatus, statusText: $statusText, isAllowAppointment: $isAllowAppointment, isAllowAppointmentHome: $isAllowAppointmentHome, customerLocationRange: $customerLocationRange, rangePricePerKm: $rangePricePerKm, itemsCount: $itemsCount, serviceItems: $serviceItems, isExpandedOrSelected: $isExpandedOrSelected}'; } }