immich/mobile-v2/lib/domain/models/server-info/server_info.model.dart
shenlong-tanwen 8450c8cc4f feat: appbar
2025-02-26 08:58:19 +05:30

57 lines
1.6 KiB
Dart

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;
}