mirror of
https://github.com/immich-app/immich.git
synced 2024-12-25 10:43:13 +02:00
79 lines
2.5 KiB
Dart
79 lines
2.5 KiB
Dart
|
import 'dart:convert';
|
||
|
|
||
|
import 'package:immich_mobile/shared/models/mapbox_info.model.dart';
|
||
|
import 'package:immich_mobile/shared/models/server_version.model.dart';
|
||
|
|
||
|
class ServerInfoState {
|
||
|
final MapboxInfo mapboxInfo;
|
||
|
final ServerVersion serverVersion;
|
||
|
final bool isVersionMismatch;
|
||
|
final String versionMismatchErrorMessage;
|
||
|
|
||
|
ServerInfoState({
|
||
|
required this.mapboxInfo,
|
||
|
required this.serverVersion,
|
||
|
required this.isVersionMismatch,
|
||
|
required this.versionMismatchErrorMessage,
|
||
|
});
|
||
|
|
||
|
ServerInfoState copyWith({
|
||
|
MapboxInfo? mapboxInfo,
|
||
|
ServerVersion? serverVersion,
|
||
|
bool? isVersionMismatch,
|
||
|
String? versionMismatchErrorMessage,
|
||
|
}) {
|
||
|
return ServerInfoState(
|
||
|
mapboxInfo: mapboxInfo ?? this.mapboxInfo,
|
||
|
serverVersion: serverVersion ?? this.serverVersion,
|
||
|
isVersionMismatch: isVersionMismatch ?? this.isVersionMismatch,
|
||
|
versionMismatchErrorMessage: versionMismatchErrorMessage ?? this.versionMismatchErrorMessage,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Map<String, dynamic> toMap() {
|
||
|
return {
|
||
|
'mapboxInfo': mapboxInfo.toMap(),
|
||
|
'serverVersion': serverVersion.toMap(),
|
||
|
'isVersionMismatch': isVersionMismatch,
|
||
|
'versionMismatchErrorMessage': versionMismatchErrorMessage,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
factory ServerInfoState.fromMap(Map<String, dynamic> map) {
|
||
|
return ServerInfoState(
|
||
|
mapboxInfo: MapboxInfo.fromMap(map['mapboxInfo']),
|
||
|
serverVersion: ServerVersion.fromMap(map['serverVersion']),
|
||
|
isVersionMismatch: map['isVersionMismatch'] ?? false,
|
||
|
versionMismatchErrorMessage: map['versionMismatchErrorMessage'] ?? '',
|
||
|
);
|
||
|
}
|
||
|
|
||
|
String toJson() => json.encode(toMap());
|
||
|
|
||
|
factory ServerInfoState.fromJson(String source) => ServerInfoState.fromMap(json.decode(source));
|
||
|
|
||
|
@override
|
||
|
String toString() {
|
||
|
return 'ServerInfoState(mapboxInfo: $mapboxInfo, serverVersion: $serverVersion, isVersionMismatch: $isVersionMismatch, versionMismatchErrorMessage: $versionMismatchErrorMessage)';
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
bool operator ==(Object other) {
|
||
|
if (identical(this, other)) return true;
|
||
|
|
||
|
return other is ServerInfoState &&
|
||
|
other.mapboxInfo == mapboxInfo &&
|
||
|
other.serverVersion == serverVersion &&
|
||
|
other.isVersionMismatch == isVersionMismatch &&
|
||
|
other.versionMismatchErrorMessage == versionMismatchErrorMessage;
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
int get hashCode {
|
||
|
return mapboxInfo.hashCode ^
|
||
|
serverVersion.hashCode ^
|
||
|
isVersionMismatch.hashCode ^
|
||
|
versionMismatchErrorMessage.hashCode;
|
||
|
}
|
||
|
}
|