import 'package:supplier_new/common/settings.dart'; import 'package:geolocator/geolocator.dart'; class OrdersModel { 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; String dbId = ''; String status=''; String date=''; String imageAsset='images/building.png'; OrdersModel(); factory OrdersModel.fromJson(Map json){ OrdersModel rtvm = new OrdersModel(); rtvm.building_name = json['buildingName'] ?? ''; rtvm.dbId = json['_id']?? ''; rtvm.address = json['address'] ?? ''; rtvm.type_of_water = json['typeofwater'] ?? ''; rtvm.capacity = json['capacity'] ?? ''; rtvm.quantity = json['quantity']?? ''; rtvm.time = json['time'] ?? ''; rtvm.date = json['dateOfOrder'] ?? ''; rtvm.status = json['orderStatus'] ?? ''; rtvm.quoted_amount = json['price'].toString() ?? ''; rtvm.lng=json['longitude'] ?? 0.0; rtvm.lat=json['latitude'] ?? 0.0; // 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" } // Distance in meters rtvm.distanceInMeters = double.parse( Geolocator.distanceBetween( rtvm.lat, rtvm.lng, AppSettings.supplierLatitude, AppSettings.supplierLongitude, ).toStringAsFixed(2), ); // Distance in km rtvm.distanceInKm = double.parse( (rtvm.distanceInMeters / 1000).toStringAsFixed(2), ); return rtvm; } Map toJson() => { "boreName":this.building_name, }; }