mirror of
https://github.com/immich-app/immich.git
synced 2026-02-22 11:10:19 -05:00
57 lines
1.6 KiB
Dart
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;
|
|
}
|