import 'package:freezed_annotation/freezed_annotation.dart'; import 'backup_method.dart'; part 'backup_target.freezed.dart'; part 'backup_target.g.dart'; /// Mirrors `models.BackupTarget`. `schedule` is a standard 5-field cron /// expression; empty means manual-only (no automatic scheduling). @freezed sealed class BackupTarget with _$BackupTarget { const factory BackupTarget({ @Default('') String id, required String name, required BackupMethod method, required String remote, @Default({}) Map params, String? schedule, @JsonKey(name: 'last_run') DateTime? lastRun, @JsonKey(name: 'next_run') DateTime? nextRun, }) = _BackupTarget; factory BackupTarget.fromJson(Map json) => _$BackupTargetFromJson(json); }