1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-08 23:07:06 +02:00

feat(mobile): drift user metadata sync (#19894)

* feat(mobile): drift user metadata sync

* change text to jsonb

* update primary key

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
Daimolean
2025-07-15 22:17:35 +08:00
committed by GitHub
parent daea57f7d2
commit 0acbf1199a
10 changed files with 495 additions and 106 deletions

View File

@ -8,14 +8,16 @@ class UserMetadataEntity extends Table with DriftDefaultsMixin {
TextColumn get userId =>
text().references(UserEntity, #id, onDelete: KeyAction.cascade)();
TextColumn get preferences => text().map(userPreferenceConverter)();
IntColumn get key => intEnum<UserMetadataKey>()();
BlobColumn get value => blob().map(userMetadataConverter)();
@override
Set<Column> get primaryKey => {userId};
Set<Column> get primaryKey => {userId, key};
}
final JsonTypeConverter2<UserPreferences, String, Object?>
userPreferenceConverter = TypeConverter.json2(
fromJson: (json) => UserPreferences.fromMap(json as Map<String, Object?>),
toJson: (pref) => pref.toMap(),
final JsonTypeConverter2<Map<String, Object?>, Uint8List, Object?>
userMetadataConverter = TypeConverter.jsonb(
fromJson: (json) => json as Map<String, Object?>,
);