import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:umbrix/core/model/environment.dart'; 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 assets, }) = _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; }