feat: appbar

This commit is contained in:
shenlong-tanwen
2024-10-27 23:43:58 +05:30
parent 5385d43c8c
commit 8450c8cc4f
40 changed files with 1150 additions and 211 deletions
@@ -0,0 +1,56 @@
import 'package:immich_mobile/domain/models/server-info/server_config.model.dart';
import 'package:immich_mobile/domain/models/server-info/server_disk_info.model.dart';
import 'package:immich_mobile/domain/models/server-info/server_features.model.dart';
import 'package:immich_mobile/domain/models/server-info/server_version.model.dart';
class ServerInfo {
final ServerFeatures features;
final ServerConfig config;
final ServerDiskInfo disk;
final ServerVersion version;
const ServerInfo({
required this.features,
required this.config,
required this.disk,
required this.version,
});
ServerInfo copyWith({
ServerFeatures? features,
ServerConfig? config,
ServerDiskInfo? disk,
ServerVersion? version,
}) {
return ServerInfo(
features: features ?? this.features,
config: config ?? this.config,
disk: disk ?? this.disk,
version: version ?? this.version,
);
}
const ServerInfo.initial()
: features = const ServerFeatures.initial(),
config = const ServerConfig.initial(),
disk = const ServerDiskInfo.initial(),
version = const ServerVersion.initial();
@override
String toString() =>
'ServerInfo(features: $features, config: $config, disk: $disk, version: $version)';
@override
bool operator ==(covariant ServerInfo other) {
if (identical(this, other)) return true;
return other.features == features &&
other.config == config &&
other.disk == disk &&
other.version == version;
}
@override
int get hashCode =>
features.hashCode ^ config.hashCode ^ disk.hashCode ^ version.hashCode;
}