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), serverUrl._(10), accessToken._(11), serverEndpoint._(12), advancedTroubleshooting._(114), enableHapticFeedback._(126), manageLocalMediaAndroid._(137), // Read-only Mode settings readonlyModeEnabled._(138), syncMigrationStatus._(1013), // Legacy keys that have been migrated to the new metadata store legacyBackupRequireCharging._(7), legacyBackupTriggerDelay._(8), legacySyncAlbums._(131), legacyEnableBackup._(1003), legacyUseWifiForUploadVideos._(1004), legacyUseWifiForUploadPhotos._(1005), legacySelectedAlbumSortOrder._(113), legacySelectedAlbumSortReverse._(123), legacyAlbumGridView._(140), legacyAutoEndpointSwitching._(132), legacyPreferredWifiName._(133), legacyLocalEndpoint._(134), legacyExternalEndpointList._(135), legacyCustomHeaders._(127), 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; }