/// 抄表记录模型 class MeterReadingModel { final String id; final String meterNo; final String userName; final String address; final double previousReading; final double? currentReading; final String status; // pending, completed, abnormal final DateTime readingDate; final String? reader; final String? remark; MeterReadingModel({ required this.id, required this.meterNo, required this.userName, required this.address, required this.previousReading, this.currentReading, required this.status, required this.readingDate, this.reader, this.remark, }); double? get usage => currentReading != null ? currentReading! - previousReading : null; factory MeterReadingModel.fromJson(Map json) { return MeterReadingModel( id: json['id']?.toString() ?? '', meterNo: json['meterNo'] ?? '', userName: json['userName'] ?? '', address: json['address'] ?? '', previousReading: (json['previousReading'] ?? 0).toDouble(), currentReading: json['currentReading']?.toDouble(), status: json['status'] ?? 'pending', readingDate: DateTime.tryParse(json['readingDate'] ?? '') ?? DateTime.now(), reader: json['reader'], remark: json['remark'], ); } Map toJson() { return { 'id': id, 'meterNo': meterNo, 'userName': userName, 'address': address, 'previousReading': previousReading, 'currentReading': currentReading, 'status': status, 'readingDate': readingDate.toIso8601String(), 'reader': reader, 'remark': remark, }; } }