import 'package:json_annotation/json_annotation.dart'; part 'backup.g.dart'; @JsonSerializable() class Backup { factory Backup.fromJson(final Map json) => _$BackupFromJson(json); Backup({required this.time, required this.id}); // Time of the backup final DateTime time; @JsonKey(name: 'short_id') final String id; } enum BackupStatusEnum { @JsonValue('NO_KEY') noKey, @JsonValue('NOT_INITIALIZED') notInitialized, @JsonValue('INITIALIZED') initialized, @JsonValue('BACKING_UP') backingUp, @JsonValue('RESTORING') restoring, @JsonValue('ERROR') error, @JsonValue('INITIALIZING') initializing, } @JsonSerializable() class BackupStatus { factory BackupStatus.fromJson(final Map json) => _$BackupStatusFromJson(json); BackupStatus({ required this.status, required this.progress, required this.errorMessage, }); final BackupStatusEnum status; final double progress; @JsonKey(name: 'error_message') final String? errorMessage; }