Files
umbrix/lib/features/app_update/model/remote_version_entity.dart

42 lines
1.1 KiB
Dart
Raw Normal View History

2023-12-01 12:56:24 +03:30
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:umbrix/core/model/environment.dart';
2023-12-01 12:56:24 +03:30
part 'remote_version_entity.freezed.dart';
@Freezed()
class RemoteVersionEntity with _$RemoteVersionEntity {
const RemoteVersionEntity._();
const factory RemoteVersionEntity({
required String version,
required String buildNumber,
required String releaseTag,
required bool preRelease,
required String url,
required DateTime publishedAt,
required Environment flavor,
@Default([]) List<ReleaseAsset> assets,
2023-12-01 12:56:24 +03:30
}) = _RemoteVersionEntity;
String get presentVersion =>
flavor == Environment.prod ? version : "$version ${flavor.name}";
/// Найти asset по расширению файла
String? findAssetByExtension(String extension) {
try {
return assets.firstWhere((asset) => asset.name.endsWith(extension)).downloadUrl;
} catch (_) {
return null;
}
}
}
@freezed
class ReleaseAsset with _$ReleaseAsset {
const factory ReleaseAsset({
required String name,
required String downloadUrl,
required int size,
}) = _ReleaseAsset;
2023-12-01 12:56:24 +03:30
}