import 'package:immich_mobile/domain/models/user.model.dart'; /// Key for each possible value in the `Store`. /// Defines the data type for each value enum StoreKey { version._(0), currentUser._(2), deviceId._(4), backupRequireCharging._(7), backupTriggerDelay._(8), serverUrl._(10), accessToken._(11), serverEndpoint._(12), selectedAlbumSortOrder._(113), advancedTroubleshooting._(114), selectedAlbumSortReverse._(123), enableHapticFeedback._(126), customHeaders._(127), syncAlbums._(131), // Auto endpoint switching autoEndpointSwitching._(132), preferredWifiName._(133), localEndpoint._(134), externalEndpointList._(135), manageLocalMediaAndroid._(137), // Read-only Mode settings readonlyModeEnabled._(138), albumGridView._(140), // Experimental stuff enableBackup._(1003), useWifiForUploadVideos._(1004), useWifiForUploadPhotos._(1005), syncMigrationStatus._(1013), // Legacy keys that have been migrated to the new metadata store legacyLoopVideo._(117), legacyLoadOriginalVideo._(136), legacyAutoPlayVideo._(139), legacyTapToNavigate._(141), legacyPreferRemoteImage._(116), legacyLoadOriginal._(101), legacyPrimaryColor._(128), legacyDynamicTheme._(129), legacyColorfulInterface._(130), legacyThemeMode._(102), legacyCleanupKeepFavorites._(1008), legacyCleanupKeepMediaType._(1009), legacyCleanupKeepAlbumIds._(1010), legacyCleanupCutoffDaysAgo._(1011), legacyCleanupDefaultsInitialized._(1012), legacyTilesPerRow._(103), legacyGroupAssetsBy._(105), legacyStorageIndicator._(109), legacyMapRelativeDate._(119), legacyMapShowFavoriteOnly._(118), legacyMapIncludeArchived._(121), legacyMapThemeMode._(124), legacyMapwithPartners._(125), legacyLogLevel._(115); const StoreKey._(this.id); final int id; Type get type => T; } class StoreDto { final StoreKey key; final T? value; const StoreDto(this.key, this.value); @override String toString() { return ''' StoreDto: { key: $key, value: ${value ?? ''}, }'''; } @override bool operator ==(covariant StoreDto other) { if (identical(this, other)) { return true; } return other.key == key && other.value == value; } @override int get hashCode => key.hashCode ^ value.hashCode; }