No content changes: git diff --ignore-all-space over these files is empty. The churn came from editing on Windows against a repo checked out with LF.
88 lines
2.5 KiB
Dart
88 lines
2.5 KiB
Dart
import '../../models/document_model.dart';
|
|
|
|
enum PendingDocumentStatus { uploading, processing, success, error, syncFailed }
|
|
|
|
class PendingDocument {
|
|
final String id;
|
|
final String imagePath;
|
|
final PendingDocumentStatus status;
|
|
final DocumentModel? document;
|
|
final double? latitude;
|
|
final double? longitude;
|
|
final String? errorMessage;
|
|
final DateTime createdAt;
|
|
final String? scanMode;
|
|
|
|
PendingDocument({
|
|
required this.id,
|
|
required this.imagePath,
|
|
this.status = PendingDocumentStatus.uploading,
|
|
this.document,
|
|
this.latitude,
|
|
this.longitude,
|
|
this.errorMessage,
|
|
DateTime? createdAt,
|
|
this.scanMode,
|
|
}) : createdAt = createdAt ?? DateTime.now();
|
|
|
|
PendingDocument copyWith({
|
|
PendingDocumentStatus? status,
|
|
DocumentModel? document,
|
|
double? latitude,
|
|
double? longitude,
|
|
String? errorMessage,
|
|
String? scanMode,
|
|
}) {
|
|
return PendingDocument(
|
|
id: id,
|
|
imagePath: imagePath,
|
|
status: status ?? this.status,
|
|
document: document ?? this.document,
|
|
latitude: latitude ?? this.latitude,
|
|
longitude: longitude ?? this.longitude,
|
|
errorMessage: errorMessage,
|
|
createdAt: createdAt,
|
|
scanMode: scanMode ?? this.scanMode,
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'image_path': imagePath,
|
|
'status': status.name,
|
|
'document': document?.toJson(),
|
|
'latitude': latitude,
|
|
'longitude': longitude,
|
|
'error_message': errorMessage,
|
|
'created_at': createdAt.toIso8601String(),
|
|
'scan_mode': scanMode,
|
|
};
|
|
}
|
|
|
|
factory PendingDocument.fromJson(Map<String, dynamic> json) {
|
|
PendingDocumentStatus status;
|
|
try {
|
|
status = PendingDocumentStatus.values.byName(json['status'] as String? ?? '');
|
|
} catch (_) {
|
|
status = PendingDocumentStatus.error;
|
|
}
|
|
|
|
final rawDocument = json['document'];
|
|
|
|
return PendingDocument(
|
|
id: json['id'] as String,
|
|
imagePath: json['image_path'] as String,
|
|
status: status,
|
|
document: rawDocument is Map
|
|
? DocumentModel.fromJson(Map<String, dynamic>.from(rawDocument))
|
|
: null,
|
|
latitude: (json['latitude'] as num?)?.toDouble(),
|
|
longitude: (json['longitude'] as num?)?.toDouble(),
|
|
errorMessage: json['error_message'] as String?,
|
|
createdAt: json['created_at'] != null ? DateTime.parse(json['created_at'] as String) : null,
|
|
scanMode: json['scan_mode'] as String?,
|
|
);
|
|
}
|
|
}
|