import 'package:supplier_new/common/settings.dart'; import 'package:geolocator/geolocator.dart'; class OrderRequestsModel { String building_name = ''; String address = ''; String type_of_water = ''; String capacity = ''; String quantity = ''; String time = ''; String averageTime = ''; String quoted_amount = ''; String displayAddress=''; double lat=0; double lng=0; double distanceInMeters=0; double distanceInKm=0.0; OrderRequestsModel(); factory OrderRequestsModel.fromJson(Map json){ OrderRequestsModel rtvm = new OrderRequestsModel(); rtvm.building_name = json['customer_details']['buildingName'] ?? ''; rtvm.address = json['customer_details']['profile']['address1'] ?? ''; rtvm.type_of_water = json['type_of_water'] ?? ''; rtvm.capacity = json['capacity'] ?? ''; rtvm.quantity = json['quantity']?? ''; rtvm.averageTime = json['time'] ?? ''; rtvm.time = json['my_supplier_entry']['time'] ?? ''; rtvm.quoted_amount = json['my_supplier_entry']['quoted_amount'].toString() ?? ''; // Split and trim List parts = rtvm.address.split(',').map((e) => e.trim()).toList(); // Usually, the locality is the part before the main city (Hyderabad)displayAddress = ""; if (parts.length >= 2) { rtvm.displayAddress = parts[parts.length -4]; // "Banjara Hills" } rtvm.distanceInMeters = double.parse((Geolocator.distanceBetween( rtvm.lat, rtvm.lng, AppSettings.supplierLatitude, AppSettings.supplierLongitude ) / 1000).toStringAsFixed(2)); rtvm.distanceInKm = double.parse(( rtvm.distanceInMeters / 1000).toStringAsFixed(1)); return rtvm; } Map toJson() => { "boreName":this.building_name, }; }