67 lines
2.2 KiB
Dart
67 lines
2.2 KiB
Dart
// lib/models/order_data.dart
|
|
class OrderData {
|
|
final String customerName;
|
|
final double distance;
|
|
final String price;
|
|
final String startLocation;
|
|
final String endLocation;
|
|
final String passengerDistance;
|
|
final String duration;
|
|
final String rideType;
|
|
final String orderId;
|
|
final String passengerId;
|
|
final String passengerRate;
|
|
|
|
OrderData({
|
|
required this.customerName,
|
|
required this.distance,
|
|
required this.price,
|
|
required this.startLocation,
|
|
required this.endLocation,
|
|
required this.passengerDistance,
|
|
required this.duration,
|
|
required this.rideType,
|
|
required this.orderId,
|
|
required this.passengerId,
|
|
required this.passengerRate,
|
|
});
|
|
|
|
// Factory constructor to create an OrderData instance from a List<dynamic>.
|
|
// This handles parsing and provides default values for safety.
|
|
factory OrderData.fromList(List<dynamic> list) {
|
|
return OrderData(
|
|
customerName: list.length > 8 ? list[8].toString() : 'Unknown Customer',
|
|
distance:
|
|
list.length > 5 ? (double.tryParse(list[5].toString()) ?? 0.0) : 0.0,
|
|
price: list.length > 2 ? list[2].toString().split('.')[0] : '0',
|
|
startLocation: list.length > 29 ? list[29].toString() : 'Unknown',
|
|
endLocation: list.length > 30 ? list[30].toString() : 'Unknown',
|
|
passengerDistance: list.length > 12 ? list[12].toString() : 'Unknown',
|
|
duration: list.length > 4
|
|
? (double.parse(list[4].toString()) / 60).toStringAsFixed(0)
|
|
: 'Unknown',
|
|
rideType:
|
|
list.length > 31 ? _getRideType(list[31].toString()) : 'Unknown',
|
|
orderId: list.length > 16 ? list[16].toString() : 'Unknown',
|
|
passengerId: list.length > 7 ? list[7].toString() : 'Unknown',
|
|
passengerRate: list.length > 33 ? list[33].toString() : 'Unknown',
|
|
);
|
|
}
|
|
static String _getRideType(String type) {
|
|
switch (type) {
|
|
case 'Comfort':
|
|
return 'كمفورت ❄️';
|
|
case 'Lady':
|
|
return 'ليدي 👩';
|
|
case 'Speed':
|
|
return 'سبيد 🔻';
|
|
case 'Mashwari':
|
|
return 'مشواري';
|
|
case 'Rayeh Gai':
|
|
return 'رايح جاي';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
}
|