add generated cloudID column with index

This commit is contained in:
shenlong-tanwen
2025-09-03 22:13:22 +05:30
parent 867f4fc53a
commit d02d3b5472
4 changed files with 95 additions and 47 deletions
@@ -1,8 +1,12 @@
import 'package:drift/drift.dart';
import 'package:drift/extensions/json1.dart';
import 'package:immich_mobile/domain/models/asset/asset_metadata.model.dart';
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.dart';
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
@TableIndex.sql('''
CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_asset_metadata_cloud_id ON remote_asset_metadata_entity (cloud_id) WHERE ("key" = 'mobile-app');
''')
class RemoteAssetMetadataEntity extends Table with DriftDefaultsMixin {
const RemoteAssetMetadataEntity();
@@ -10,6 +14,8 @@ class RemoteAssetMetadataEntity extends Table with DriftDefaultsMixin {
TextColumn get key => text().map(const RemoteAssetMetadataKeyConverter())();
TextColumn get cloudId => text().generatedAs(key.jsonExtract(r'$.iCloudId'), stored: true)();
BlobColumn get value => blob().map(assetMetadataConverter)();
@override