hiddify-next/lib/core/model/app_info_entity.dart
problematicconsumer ed614988a2 Refactor
2023-12-01 12:56:24 +03:30

33 lines
939 B
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hiddify/core/model/environment.dart';
part 'app_info_entity.freezed.dart';
@freezed
class AppInfoEntity with _$AppInfoEntity {
const AppInfoEntity._();
const factory AppInfoEntity({
required String name,
required String version,
required String buildNumber,
required Release release,
required String operatingSystem,
required String operatingSystemVersion,
required Environment environment,
}) = _AppInfoEntity;
String get userAgent =>
"HiddifyNext/$version ($operatingSystem) like ClashMeta v2ray sing-box";
String get presentVersion => environment == Environment.prod
? version
: "$version ${environment.name}";
/// formats app info for sharing
String format() => '''
$name v$version ($buildNumber) [${environment.name}]
${release.name} release
$operatingSystem [$operatingSystemVersion]''';
}