83 lines
2.5 KiB
Dart
83 lines
2.5 KiB
Dart
import 'dart:convert';
|
|
|
|
class TankModel {
|
|
final String szDocumentId;
|
|
final String szUserId;
|
|
final String szDate;
|
|
final String szOdometer;
|
|
final String szLiters;
|
|
final String szPricePerLiter;
|
|
final String szLocation;
|
|
final String szPriceTotal;
|
|
|
|
TankModel({
|
|
required this.szDocumentId,
|
|
required this.szUserId,
|
|
required this.szDate,
|
|
required this.szOdometer,
|
|
required this.szLiters,
|
|
required this.szPricePerLiter,
|
|
required this.szLocation,
|
|
required this.szPriceTotal,
|
|
});
|
|
|
|
TankModel copyWith({
|
|
String? szDocumentId,
|
|
String? szUserId,
|
|
String? szDate,
|
|
String? szOdometer,
|
|
String? szLiters,
|
|
String? szPricePerLiter,
|
|
String? szLocation,
|
|
String? szPriceTotal,
|
|
}) {
|
|
return TankModel(
|
|
szDocumentId: szDocumentId ?? this.szDocumentId,
|
|
szUserId: szUserId ?? this.szUserId,
|
|
szDate: szDate ?? this.szDate,
|
|
szOdometer: szOdometer ?? this.szOdometer,
|
|
szLiters: szLiters ?? this.szLiters,
|
|
szPricePerLiter: szPricePerLiter ?? this.szPricePerLiter,
|
|
szLocation: szLocation ?? this.szLocation,
|
|
szPriceTotal: szPriceTotal ?? this.szPriceTotal,
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toMap() {
|
|
final result = <String, dynamic>{};
|
|
|
|
result.addAll({'\$id': szDocumentId});
|
|
result.addAll({'userId': szUserId});
|
|
result.addAll({'date': szDate});
|
|
result.addAll({'odometer': szOdometer});
|
|
result.addAll({'liters': szLiters});
|
|
result.addAll({'pricePerLiter': szPricePerLiter});
|
|
result.addAll({'location': szLocation});
|
|
result.addAll({'priceTotal': szPriceTotal});
|
|
|
|
return result;
|
|
}
|
|
|
|
factory TankModel.fromMap(Map<String, dynamic> map) {
|
|
return TankModel(
|
|
szDocumentId: map['\$id'] ?? '',
|
|
szUserId: map['userId'] ?? '',
|
|
szDate: map['date'] ?? '',
|
|
szOdometer: map['odometer'] ?? '',
|
|
szLiters: map['liters'] ?? '',
|
|
szPricePerLiter: map['pricePerLiter'] ?? '',
|
|
szLocation: map['location'] ?? '',
|
|
szPriceTotal: (double.parse(map['liters']?.toString() ?? '0') * double.parse(map['pricePerLiter']?.toString() ?? '0')).toStringAsFixed(2),
|
|
);
|
|
}
|
|
|
|
String toJson() => json.encode(toMap());
|
|
|
|
factory TankModel.fromJson(String source) => TankModel.fromMap(json.decode(source));
|
|
|
|
@override
|
|
String toString() {
|
|
return 'TankModel(szDocumentId: $szDocumentId, szUserId: $szUserId, szDate: $szDate, szOdometer: $szOdometer, szLiters: $szLiters, szPricePerLiter: $szPricePerLiter, szLocation: $szLocation, szPriceTotal: $szPriceTotal)';
|
|
}
|
|
}
|