mirror of
https://github.com/immich-app/immich.git
synced 2025-11-13 10:06:51 -05:00
more fixes
This commit is contained in:
parent
9cf5d83707
commit
e2c87c2042
@ -61,19 +61,13 @@ Future<List<_CloudIdMapping>> _fetchCloudIdMappings(Drift drift, String userId)
|
|||||||
drift.localAssetEntity.checksum.equalsExp(drift.remoteAssetEntity.checksum),
|
drift.localAssetEntity.checksum.equalsExp(drift.remoteAssetEntity.checksum),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
leftOuterJoin(
|
|
||||||
drift.remoteAssetMetadataEntity,
|
|
||||||
drift.remoteAssetMetadataEntity.assetId.equalsExp(drift.remoteAssetEntity.id) &
|
|
||||||
drift.remoteAssetMetadataEntity.key.equals(RemoteAssetMetadataKey.mobileApp.key),
|
|
||||||
useColumns: false,
|
|
||||||
),
|
|
||||||
])
|
])
|
||||||
..addColumns([drift.remoteAssetEntity.id, drift.localAssetEntity.cloudId])
|
..addColumns([drift.remoteAssetEntity.id, drift.localAssetEntity.cloudId])
|
||||||
..where(
|
..where(
|
||||||
drift.remoteAssetEntity.ownerId.equals(userId) &
|
|
||||||
drift.localAssetEntity.id.isNotNull() &
|
drift.localAssetEntity.id.isNotNull() &
|
||||||
drift.localAssetEntity.cloudId.isNotNull() &
|
drift.localAssetEntity.cloudId.isNotNull() &
|
||||||
drift.remoteAssetMetadataEntity.cloudId.isNull(),
|
drift.remoteAssetEntity.ownerId.equals(userId) &
|
||||||
|
drift.remoteAssetEntity.cloudId.isNull(),
|
||||||
);
|
);
|
||||||
return query
|
return query
|
||||||
.map(
|
.map(
|
||||||
|
|||||||
@ -7,7 +7,8 @@ import 'local_album_asset.entity.dart';
|
|||||||
mergedAsset:
|
mergedAsset:
|
||||||
SELECT
|
SELECT
|
||||||
rae.id as remote_id,
|
rae.id as remote_id,
|
||||||
(SELECT lae.id FROM local_asset_entity lae WHERE lae.checksum = rae.checksum LIMIT 1) as local_id,
|
(SELECT lae.id FROM local_asset_entity lae
|
||||||
|
WHERE lae.checksum = rae.checksum OR lae.cloud_id = rae.cloud_id LIMIT 1) as local_id,
|
||||||
rae.name,
|
rae.name,
|
||||||
rae."type",
|
rae."type",
|
||||||
rae.created_at as created_at,
|
rae.created_at as created_at,
|
||||||
@ -57,7 +58,8 @@ SELECT
|
|||||||
FROM
|
FROM
|
||||||
local_asset_entity lae
|
local_asset_entity lae
|
||||||
WHERE NOT EXISTS (
|
WHERE NOT EXISTS (
|
||||||
SELECT 1 FROM remote_asset_entity rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN :user_ids
|
SELECT 1 FROM remote_asset_entity rae WHERE
|
||||||
|
(rae.checksum = lae.checksum OR rae.cloud_id = lae.cloud_id) AND rae.owner_id IN :user_ids
|
||||||
)
|
)
|
||||||
AND EXISTS (
|
AND EXISTS (
|
||||||
SELECT 1 FROM local_album_asset_entity laa
|
SELECT 1 FROM local_album_asset_entity laa
|
||||||
@ -101,7 +103,8 @@ FROM
|
|||||||
FROM
|
FROM
|
||||||
local_asset_entity lae
|
local_asset_entity lae
|
||||||
WHERE NOT EXISTS (
|
WHERE NOT EXISTS (
|
||||||
SELECT 1 FROM remote_asset_entity rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN :user_ids
|
SELECT 1 FROM remote_asset_entity rae
|
||||||
|
WHERE (rae.checksum = lae.checksum OR rae.cloud_id = lae.cloud_id) AND rae.owner_id IN :user_ids
|
||||||
)
|
)
|
||||||
AND EXISTS (
|
AND EXISTS (
|
||||||
SELECT 1 FROM local_album_asset_entity laa
|
SELECT 1 FROM local_album_asset_entity laa
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class MergedAssetDrift extends i1.ModularAccessor {
|
|||||||
);
|
);
|
||||||
$arrayStartIndex += generatedlimit.amountOfVariables;
|
$arrayStartIndex += generatedlimit.amountOfVariables;
|
||||||
return customSelect(
|
return customSelect(
|
||||||
'SELECT rae.id AS remote_id, (SELECT lae.id FROM local_asset_entity AS lae WHERE lae.checksum = rae.checksum LIMIT 1) AS local_id, rae.name, rae.type, rae.created_at AS created_at, rae.updated_at, rae.width, rae.height, rae.duration_in_seconds, rae.is_favorite, rae.thumb_hash, rae.checksum, rae.owner_id, rae.live_photo_video_id, 0 AS orientation, rae.stack_id FROM remote_asset_entity AS rae LEFT JOIN stack_entity AS se ON rae.stack_id = se.id WHERE rae.deleted_at IS NULL AND rae.visibility = 0 AND rae.owner_id IN ($expandeduserIds) AND(rae.stack_id IS NULL OR rae.id = se.primary_asset_id)UNION ALL SELECT NULL AS remote_id, lae.id AS local_id, lae.name, lae.type, lae.created_at AS created_at, lae.updated_at, lae.width, lae.height, lae.duration_in_seconds, lae.is_favorite, NULL AS thumb_hash, lae.checksum, NULL AS owner_id, NULL AS live_photo_video_id, lae.orientation, NULL AS stack_id FROM local_asset_entity AS lae WHERE NOT EXISTS (SELECT 1 FROM remote_asset_entity AS rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN ($expandeduserIds)) AND EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 0) AND NOT EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 2) ORDER BY created_at DESC ${generatedlimit.sql}',
|
'SELECT rae.id AS remote_id, (SELECT lae.id FROM local_asset_entity AS lae WHERE lae.checksum = rae.checksum OR lae.cloud_id = rae.cloud_id LIMIT 1) AS local_id, rae.name, rae.type, rae.created_at AS created_at, rae.updated_at, rae.width, rae.height, rae.duration_in_seconds, rae.is_favorite, rae.thumb_hash, rae.checksum, rae.owner_id, rae.live_photo_video_id, 0 AS orientation, rae.stack_id FROM remote_asset_entity AS rae LEFT JOIN stack_entity AS se ON rae.stack_id = se.id WHERE rae.deleted_at IS NULL AND rae.visibility = 0 AND rae.owner_id IN ($expandeduserIds) AND(rae.stack_id IS NULL OR rae.id = se.primary_asset_id)UNION ALL SELECT NULL AS remote_id, lae.id AS local_id, lae.name, lae.type, lae.created_at AS created_at, lae.updated_at, lae.width, lae.height, lae.duration_in_seconds, lae.is_favorite, NULL AS thumb_hash, lae.checksum, NULL AS owner_id, NULL AS live_photo_video_id, lae.orientation, NULL AS stack_id FROM local_asset_entity AS lae WHERE NOT EXISTS (SELECT 1 FROM remote_asset_entity AS rae WHERE(rae.checksum = lae.checksum OR rae.cloud_id = lae.cloud_id)AND rae.owner_id IN ($expandeduserIds)) AND EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 0) AND NOT EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 2) ORDER BY created_at DESC ${generatedlimit.sql}',
|
||||||
variables: [
|
variables: [
|
||||||
for (var $ in userIds) i0.Variable<String>($),
|
for (var $ in userIds) i0.Variable<String>($),
|
||||||
...generatedlimit.introducedVariables,
|
...generatedlimit.introducedVariables,
|
||||||
@ -74,7 +74,7 @@ class MergedAssetDrift extends i1.ModularAccessor {
|
|||||||
final expandeduserIds = $expandVar($arrayStartIndex, userIds.length);
|
final expandeduserIds = $expandVar($arrayStartIndex, userIds.length);
|
||||||
$arrayStartIndex += userIds.length;
|
$arrayStartIndex += userIds.length;
|
||||||
return customSelect(
|
return customSelect(
|
||||||
'SELECT COUNT(*) AS asset_count, CASE WHEN ?1 = 0 THEN STRFTIME(\'%Y-%m-%d\', created_at, \'localtime\') WHEN ?1 = 1 THEN STRFTIME(\'%Y-%m\', created_at, \'localtime\') END AS bucket_date FROM (SELECT rae.created_at FROM remote_asset_entity AS rae LEFT JOIN stack_entity AS se ON rae.stack_id = se.id WHERE rae.deleted_at IS NULL AND rae.visibility = 0 AND rae.owner_id IN ($expandeduserIds) AND(rae.stack_id IS NULL OR rae.id = se.primary_asset_id)UNION ALL SELECT lae.created_at FROM local_asset_entity AS lae WHERE NOT EXISTS (SELECT 1 FROM remote_asset_entity AS rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN ($expandeduserIds)) AND EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 0) AND NOT EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 2)) GROUP BY bucket_date ORDER BY bucket_date DESC',
|
'SELECT COUNT(*) AS asset_count, CASE WHEN ?1 = 0 THEN STRFTIME(\'%Y-%m-%d\', created_at, \'localtime\') WHEN ?1 = 1 THEN STRFTIME(\'%Y-%m\', created_at, \'localtime\') END AS bucket_date FROM (SELECT rae.created_at FROM remote_asset_entity AS rae LEFT JOIN stack_entity AS se ON rae.stack_id = se.id WHERE rae.deleted_at IS NULL AND rae.visibility = 0 AND rae.owner_id IN ($expandeduserIds) AND(rae.stack_id IS NULL OR rae.id = se.primary_asset_id)UNION ALL SELECT lae.created_at FROM local_asset_entity AS lae WHERE NOT EXISTS (SELECT 1 FROM remote_asset_entity AS rae WHERE(rae.checksum = lae.checksum OR rae.cloud_id = lae.cloud_id)AND rae.owner_id IN ($expandeduserIds)) AND EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 0) AND NOT EXISTS (SELECT 1 FROM local_album_asset_entity AS laa INNER JOIN local_album_entity AS la ON laa.album_id = la.id WHERE laa.asset_id = lae.id AND la.backup_selection = 2)) GROUP BY bucket_date ORDER BY bucket_date DESC',
|
||||||
variables: [
|
variables: [
|
||||||
i0.Variable<int>(groupBy),
|
i0.Variable<int>(groupBy),
|
||||||
for (var $ in userIds) i0.Variable<String>($),
|
for (var $ in userIds) i0.Variable<String>($),
|
||||||
|
|||||||
@ -19,6 +19,7 @@ ON remote_asset_entity (owner_id, library_id, checksum)
|
|||||||
WHERE (library_id IS NOT NULL);
|
WHERE (library_id IS NOT NULL);
|
||||||
''')
|
''')
|
||||||
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)')
|
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)')
|
||||||
|
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_remote_asset_cloud_id ON remote_asset_entity (cloud_id);')
|
||||||
class RemoteAssetEntity extends Table with DriftDefaultsMixin, AssetEntityMixin {
|
class RemoteAssetEntity extends Table with DriftDefaultsMixin, AssetEntityMixin {
|
||||||
const RemoteAssetEntity();
|
const RemoteAssetEntity();
|
||||||
|
|
||||||
@ -44,6 +45,8 @@ class RemoteAssetEntity extends Table with DriftDefaultsMixin, AssetEntityMixin
|
|||||||
|
|
||||||
TextColumn get libraryId => text().nullable()();
|
TextColumn get libraryId => text().nullable()();
|
||||||
|
|
||||||
|
TextColumn get cloudId => text().nullable()();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Set<Column> get primaryKey => {id};
|
Set<Column> get primaryKey => {id};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ typedef $$RemoteAssetEntityTableCreateCompanionBuilder =
|
|||||||
required i2.AssetVisibility visibility,
|
required i2.AssetVisibility visibility,
|
||||||
i0.Value<String?> stackId,
|
i0.Value<String?> stackId,
|
||||||
i0.Value<String?> libraryId,
|
i0.Value<String?> libraryId,
|
||||||
|
i0.Value<String?> cloudId,
|
||||||
});
|
});
|
||||||
typedef $$RemoteAssetEntityTableUpdateCompanionBuilder =
|
typedef $$RemoteAssetEntityTableUpdateCompanionBuilder =
|
||||||
i1.RemoteAssetEntityCompanion Function({
|
i1.RemoteAssetEntityCompanion Function({
|
||||||
@ -52,6 +53,7 @@ typedef $$RemoteAssetEntityTableUpdateCompanionBuilder =
|
|||||||
i0.Value<i2.AssetVisibility> visibility,
|
i0.Value<i2.AssetVisibility> visibility,
|
||||||
i0.Value<String?> stackId,
|
i0.Value<String?> stackId,
|
||||||
i0.Value<String?> libraryId,
|
i0.Value<String?> libraryId,
|
||||||
|
i0.Value<String?> cloudId,
|
||||||
});
|
});
|
||||||
|
|
||||||
final class $$RemoteAssetEntityTableReferences
|
final class $$RemoteAssetEntityTableReferences
|
||||||
@ -196,6 +198,11 @@ class $$RemoteAssetEntityTableFilterComposer
|
|||||||
builder: (column) => i0.ColumnFilters(column),
|
builder: (column) => i0.ColumnFilters(column),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
i0.ColumnFilters<String> get cloudId => $composableBuilder(
|
||||||
|
column: $table.cloudId,
|
||||||
|
builder: (column) => i0.ColumnFilters(column),
|
||||||
|
);
|
||||||
|
|
||||||
i5.$$UserEntityTableFilterComposer get ownerId {
|
i5.$$UserEntityTableFilterComposer get ownerId {
|
||||||
final i5.$$UserEntityTableFilterComposer composer = $composerBuilder(
|
final i5.$$UserEntityTableFilterComposer composer = $composerBuilder(
|
||||||
composer: this,
|
composer: this,
|
||||||
@ -318,6 +325,11 @@ class $$RemoteAssetEntityTableOrderingComposer
|
|||||||
builder: (column) => i0.ColumnOrderings(column),
|
builder: (column) => i0.ColumnOrderings(column),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
i0.ColumnOrderings<String> get cloudId => $composableBuilder(
|
||||||
|
column: $table.cloudId,
|
||||||
|
builder: (column) => i0.ColumnOrderings(column),
|
||||||
|
);
|
||||||
|
|
||||||
i5.$$UserEntityTableOrderingComposer get ownerId {
|
i5.$$UserEntityTableOrderingComposer get ownerId {
|
||||||
final i5.$$UserEntityTableOrderingComposer composer = $composerBuilder(
|
final i5.$$UserEntityTableOrderingComposer composer = $composerBuilder(
|
||||||
composer: this,
|
composer: this,
|
||||||
@ -417,6 +429,9 @@ class $$RemoteAssetEntityTableAnnotationComposer
|
|||||||
i0.GeneratedColumn<String> get libraryId =>
|
i0.GeneratedColumn<String> get libraryId =>
|
||||||
$composableBuilder(column: $table.libraryId, builder: (column) => column);
|
$composableBuilder(column: $table.libraryId, builder: (column) => column);
|
||||||
|
|
||||||
|
i0.GeneratedColumn<String> get cloudId =>
|
||||||
|
$composableBuilder(column: $table.cloudId, builder: (column) => column);
|
||||||
|
|
||||||
i5.$$UserEntityTableAnnotationComposer get ownerId {
|
i5.$$UserEntityTableAnnotationComposer get ownerId {
|
||||||
final i5.$$UserEntityTableAnnotationComposer composer = $composerBuilder(
|
final i5.$$UserEntityTableAnnotationComposer composer = $composerBuilder(
|
||||||
composer: this,
|
composer: this,
|
||||||
@ -497,6 +512,7 @@ class $$RemoteAssetEntityTableTableManager
|
|||||||
const i0.Value.absent(),
|
const i0.Value.absent(),
|
||||||
i0.Value<String?> stackId = const i0.Value.absent(),
|
i0.Value<String?> stackId = const i0.Value.absent(),
|
||||||
i0.Value<String?> libraryId = const i0.Value.absent(),
|
i0.Value<String?> libraryId = const i0.Value.absent(),
|
||||||
|
i0.Value<String?> cloudId = const i0.Value.absent(),
|
||||||
}) => i1.RemoteAssetEntityCompanion(
|
}) => i1.RemoteAssetEntityCompanion(
|
||||||
name: name,
|
name: name,
|
||||||
type: type,
|
type: type,
|
||||||
@ -516,6 +532,7 @@ class $$RemoteAssetEntityTableTableManager
|
|||||||
visibility: visibility,
|
visibility: visibility,
|
||||||
stackId: stackId,
|
stackId: stackId,
|
||||||
libraryId: libraryId,
|
libraryId: libraryId,
|
||||||
|
cloudId: cloudId,
|
||||||
),
|
),
|
||||||
createCompanionCallback:
|
createCompanionCallback:
|
||||||
({
|
({
|
||||||
@ -537,6 +554,7 @@ class $$RemoteAssetEntityTableTableManager
|
|||||||
required i2.AssetVisibility visibility,
|
required i2.AssetVisibility visibility,
|
||||||
i0.Value<String?> stackId = const i0.Value.absent(),
|
i0.Value<String?> stackId = const i0.Value.absent(),
|
||||||
i0.Value<String?> libraryId = const i0.Value.absent(),
|
i0.Value<String?> libraryId = const i0.Value.absent(),
|
||||||
|
i0.Value<String?> cloudId = const i0.Value.absent(),
|
||||||
}) => i1.RemoteAssetEntityCompanion.insert(
|
}) => i1.RemoteAssetEntityCompanion.insert(
|
||||||
name: name,
|
name: name,
|
||||||
type: type,
|
type: type,
|
||||||
@ -556,6 +574,7 @@ class $$RemoteAssetEntityTableTableManager
|
|||||||
visibility: visibility,
|
visibility: visibility,
|
||||||
stackId: stackId,
|
stackId: stackId,
|
||||||
libraryId: libraryId,
|
libraryId: libraryId,
|
||||||
|
cloudId: cloudId,
|
||||||
),
|
),
|
||||||
withReferenceMapper: (p0) => p0
|
withReferenceMapper: (p0) => p0
|
||||||
.map(
|
.map(
|
||||||
@ -844,6 +863,17 @@ class $RemoteAssetEntityTable extends i3.RemoteAssetEntity
|
|||||||
type: i0.DriftSqlType.string,
|
type: i0.DriftSqlType.string,
|
||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
);
|
);
|
||||||
|
static const i0.VerificationMeta _cloudIdMeta = const i0.VerificationMeta(
|
||||||
|
'cloudId',
|
||||||
|
);
|
||||||
|
@override
|
||||||
|
late final i0.GeneratedColumn<String> cloudId = i0.GeneratedColumn<String>(
|
||||||
|
'cloud_id',
|
||||||
|
aliasedName,
|
||||||
|
true,
|
||||||
|
type: i0.DriftSqlType.string,
|
||||||
|
requiredDuringInsert: false,
|
||||||
|
);
|
||||||
@override
|
@override
|
||||||
List<i0.GeneratedColumn> get $columns => [
|
List<i0.GeneratedColumn> get $columns => [
|
||||||
name,
|
name,
|
||||||
@ -864,6 +894,7 @@ class $RemoteAssetEntityTable extends i3.RemoteAssetEntity
|
|||||||
visibility,
|
visibility,
|
||||||
stackId,
|
stackId,
|
||||||
libraryId,
|
libraryId,
|
||||||
|
cloudId,
|
||||||
];
|
];
|
||||||
@override
|
@override
|
||||||
String get aliasedName => _alias ?? actualTableName;
|
String get aliasedName => _alias ?? actualTableName;
|
||||||
@ -987,6 +1018,12 @@ class $RemoteAssetEntityTable extends i3.RemoteAssetEntity
|
|||||||
libraryId.isAcceptableOrUnknown(data['library_id']!, _libraryIdMeta),
|
libraryId.isAcceptableOrUnknown(data['library_id']!, _libraryIdMeta),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (data.containsKey('cloud_id')) {
|
||||||
|
context.handle(
|
||||||
|
_cloudIdMeta,
|
||||||
|
cloudId.isAcceptableOrUnknown(data['cloud_id']!, _cloudIdMeta),
|
||||||
|
);
|
||||||
|
}
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1075,6 +1112,10 @@ class $RemoteAssetEntityTable extends i3.RemoteAssetEntity
|
|||||||
i0.DriftSqlType.string,
|
i0.DriftSqlType.string,
|
||||||
data['${effectivePrefix}library_id'],
|
data['${effectivePrefix}library_id'],
|
||||||
),
|
),
|
||||||
|
cloudId: attachedDatabase.typeMapping.read(
|
||||||
|
i0.DriftSqlType.string,
|
||||||
|
data['${effectivePrefix}cloud_id'],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1115,6 +1156,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
final i2.AssetVisibility visibility;
|
final i2.AssetVisibility visibility;
|
||||||
final String? stackId;
|
final String? stackId;
|
||||||
final String? libraryId;
|
final String? libraryId;
|
||||||
|
final String? cloudId;
|
||||||
const RemoteAssetEntityData({
|
const RemoteAssetEntityData({
|
||||||
required this.name,
|
required this.name,
|
||||||
required this.type,
|
required this.type,
|
||||||
@ -1134,6 +1176,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
required this.visibility,
|
required this.visibility,
|
||||||
this.stackId,
|
this.stackId,
|
||||||
this.libraryId,
|
this.libraryId,
|
||||||
|
this.cloudId,
|
||||||
});
|
});
|
||||||
@override
|
@override
|
||||||
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
||||||
@ -1182,6 +1225,9 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
if (!nullToAbsent || libraryId != null) {
|
if (!nullToAbsent || libraryId != null) {
|
||||||
map['library_id'] = i0.Variable<String>(libraryId);
|
map['library_id'] = i0.Variable<String>(libraryId);
|
||||||
}
|
}
|
||||||
|
if (!nullToAbsent || cloudId != null) {
|
||||||
|
map['cloud_id'] = i0.Variable<String>(cloudId);
|
||||||
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1213,6 +1259,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
),
|
),
|
||||||
stackId: serializer.fromJson<String?>(json['stackId']),
|
stackId: serializer.fromJson<String?>(json['stackId']),
|
||||||
libraryId: serializer.fromJson<String?>(json['libraryId']),
|
libraryId: serializer.fromJson<String?>(json['libraryId']),
|
||||||
|
cloudId: serializer.fromJson<String?>(json['cloudId']),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
@ -1241,6 +1288,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
),
|
),
|
||||||
'stackId': serializer.toJson<String?>(stackId),
|
'stackId': serializer.toJson<String?>(stackId),
|
||||||
'libraryId': serializer.toJson<String?>(libraryId),
|
'libraryId': serializer.toJson<String?>(libraryId),
|
||||||
|
'cloudId': serializer.toJson<String?>(cloudId),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1263,6 +1311,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
i2.AssetVisibility? visibility,
|
i2.AssetVisibility? visibility,
|
||||||
i0.Value<String?> stackId = const i0.Value.absent(),
|
i0.Value<String?> stackId = const i0.Value.absent(),
|
||||||
i0.Value<String?> libraryId = const i0.Value.absent(),
|
i0.Value<String?> libraryId = const i0.Value.absent(),
|
||||||
|
i0.Value<String?> cloudId = const i0.Value.absent(),
|
||||||
}) => i1.RemoteAssetEntityData(
|
}) => i1.RemoteAssetEntityData(
|
||||||
name: name ?? this.name,
|
name: name ?? this.name,
|
||||||
type: type ?? this.type,
|
type: type ?? this.type,
|
||||||
@ -1288,6 +1337,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
visibility: visibility ?? this.visibility,
|
visibility: visibility ?? this.visibility,
|
||||||
stackId: stackId.present ? stackId.value : this.stackId,
|
stackId: stackId.present ? stackId.value : this.stackId,
|
||||||
libraryId: libraryId.present ? libraryId.value : this.libraryId,
|
libraryId: libraryId.present ? libraryId.value : this.libraryId,
|
||||||
|
cloudId: cloudId.present ? cloudId.value : this.cloudId,
|
||||||
);
|
);
|
||||||
RemoteAssetEntityData copyWithCompanion(i1.RemoteAssetEntityCompanion data) {
|
RemoteAssetEntityData copyWithCompanion(i1.RemoteAssetEntityCompanion data) {
|
||||||
return RemoteAssetEntityData(
|
return RemoteAssetEntityData(
|
||||||
@ -1319,6 +1369,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
: this.visibility,
|
: this.visibility,
|
||||||
stackId: data.stackId.present ? data.stackId.value : this.stackId,
|
stackId: data.stackId.present ? data.stackId.value : this.stackId,
|
||||||
libraryId: data.libraryId.present ? data.libraryId.value : this.libraryId,
|
libraryId: data.libraryId.present ? data.libraryId.value : this.libraryId,
|
||||||
|
cloudId: data.cloudId.present ? data.cloudId.value : this.cloudId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1342,7 +1393,8 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
..write('livePhotoVideoId: $livePhotoVideoId, ')
|
..write('livePhotoVideoId: $livePhotoVideoId, ')
|
||||||
..write('visibility: $visibility, ')
|
..write('visibility: $visibility, ')
|
||||||
..write('stackId: $stackId, ')
|
..write('stackId: $stackId, ')
|
||||||
..write('libraryId: $libraryId')
|
..write('libraryId: $libraryId, ')
|
||||||
|
..write('cloudId: $cloudId')
|
||||||
..write(')'))
|
..write(')'))
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
@ -1367,6 +1419,7 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
visibility,
|
visibility,
|
||||||
stackId,
|
stackId,
|
||||||
libraryId,
|
libraryId,
|
||||||
|
cloudId,
|
||||||
);
|
);
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
@ -1389,7 +1442,8 @@ class RemoteAssetEntityData extends i0.DataClass
|
|||||||
other.livePhotoVideoId == this.livePhotoVideoId &&
|
other.livePhotoVideoId == this.livePhotoVideoId &&
|
||||||
other.visibility == this.visibility &&
|
other.visibility == this.visibility &&
|
||||||
other.stackId == this.stackId &&
|
other.stackId == this.stackId &&
|
||||||
other.libraryId == this.libraryId);
|
other.libraryId == this.libraryId &&
|
||||||
|
other.cloudId == this.cloudId);
|
||||||
}
|
}
|
||||||
|
|
||||||
class RemoteAssetEntityCompanion
|
class RemoteAssetEntityCompanion
|
||||||
@ -1412,6 +1466,7 @@ class RemoteAssetEntityCompanion
|
|||||||
final i0.Value<i2.AssetVisibility> visibility;
|
final i0.Value<i2.AssetVisibility> visibility;
|
||||||
final i0.Value<String?> stackId;
|
final i0.Value<String?> stackId;
|
||||||
final i0.Value<String?> libraryId;
|
final i0.Value<String?> libraryId;
|
||||||
|
final i0.Value<String?> cloudId;
|
||||||
const RemoteAssetEntityCompanion({
|
const RemoteAssetEntityCompanion({
|
||||||
this.name = const i0.Value.absent(),
|
this.name = const i0.Value.absent(),
|
||||||
this.type = const i0.Value.absent(),
|
this.type = const i0.Value.absent(),
|
||||||
@ -1431,6 +1486,7 @@ class RemoteAssetEntityCompanion
|
|||||||
this.visibility = const i0.Value.absent(),
|
this.visibility = const i0.Value.absent(),
|
||||||
this.stackId = const i0.Value.absent(),
|
this.stackId = const i0.Value.absent(),
|
||||||
this.libraryId = const i0.Value.absent(),
|
this.libraryId = const i0.Value.absent(),
|
||||||
|
this.cloudId = const i0.Value.absent(),
|
||||||
});
|
});
|
||||||
RemoteAssetEntityCompanion.insert({
|
RemoteAssetEntityCompanion.insert({
|
||||||
required String name,
|
required String name,
|
||||||
@ -1451,6 +1507,7 @@ class RemoteAssetEntityCompanion
|
|||||||
required i2.AssetVisibility visibility,
|
required i2.AssetVisibility visibility,
|
||||||
this.stackId = const i0.Value.absent(),
|
this.stackId = const i0.Value.absent(),
|
||||||
this.libraryId = const i0.Value.absent(),
|
this.libraryId = const i0.Value.absent(),
|
||||||
|
this.cloudId = const i0.Value.absent(),
|
||||||
}) : name = i0.Value(name),
|
}) : name = i0.Value(name),
|
||||||
type = i0.Value(type),
|
type = i0.Value(type),
|
||||||
id = i0.Value(id),
|
id = i0.Value(id),
|
||||||
@ -1476,6 +1533,7 @@ class RemoteAssetEntityCompanion
|
|||||||
i0.Expression<int>? visibility,
|
i0.Expression<int>? visibility,
|
||||||
i0.Expression<String>? stackId,
|
i0.Expression<String>? stackId,
|
||||||
i0.Expression<String>? libraryId,
|
i0.Expression<String>? libraryId,
|
||||||
|
i0.Expression<String>? cloudId,
|
||||||
}) {
|
}) {
|
||||||
return i0.RawValuesInsertable({
|
return i0.RawValuesInsertable({
|
||||||
if (name != null) 'name': name,
|
if (name != null) 'name': name,
|
||||||
@ -1496,6 +1554,7 @@ class RemoteAssetEntityCompanion
|
|||||||
if (visibility != null) 'visibility': visibility,
|
if (visibility != null) 'visibility': visibility,
|
||||||
if (stackId != null) 'stack_id': stackId,
|
if (stackId != null) 'stack_id': stackId,
|
||||||
if (libraryId != null) 'library_id': libraryId,
|
if (libraryId != null) 'library_id': libraryId,
|
||||||
|
if (cloudId != null) 'cloud_id': cloudId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1518,6 +1577,7 @@ class RemoteAssetEntityCompanion
|
|||||||
i0.Value<i2.AssetVisibility>? visibility,
|
i0.Value<i2.AssetVisibility>? visibility,
|
||||||
i0.Value<String?>? stackId,
|
i0.Value<String?>? stackId,
|
||||||
i0.Value<String?>? libraryId,
|
i0.Value<String?>? libraryId,
|
||||||
|
i0.Value<String?>? cloudId,
|
||||||
}) {
|
}) {
|
||||||
return i1.RemoteAssetEntityCompanion(
|
return i1.RemoteAssetEntityCompanion(
|
||||||
name: name ?? this.name,
|
name: name ?? this.name,
|
||||||
@ -1538,6 +1598,7 @@ class RemoteAssetEntityCompanion
|
|||||||
visibility: visibility ?? this.visibility,
|
visibility: visibility ?? this.visibility,
|
||||||
stackId: stackId ?? this.stackId,
|
stackId: stackId ?? this.stackId,
|
||||||
libraryId: libraryId ?? this.libraryId,
|
libraryId: libraryId ?? this.libraryId,
|
||||||
|
cloudId: cloudId ?? this.cloudId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1602,6 +1663,9 @@ class RemoteAssetEntityCompanion
|
|||||||
if (libraryId.present) {
|
if (libraryId.present) {
|
||||||
map['library_id'] = i0.Variable<String>(libraryId.value);
|
map['library_id'] = i0.Variable<String>(libraryId.value);
|
||||||
}
|
}
|
||||||
|
if (cloudId.present) {
|
||||||
|
map['cloud_id'] = i0.Variable<String>(cloudId.value);
|
||||||
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1625,7 +1689,8 @@ class RemoteAssetEntityCompanion
|
|||||||
..write('livePhotoVideoId: $livePhotoVideoId, ')
|
..write('livePhotoVideoId: $livePhotoVideoId, ')
|
||||||
..write('visibility: $visibility, ')
|
..write('visibility: $visibility, ')
|
||||||
..write('stackId: $stackId, ')
|
..write('stackId: $stackId, ')
|
||||||
..write('libraryId: $libraryId')
|
..write('libraryId: $libraryId, ')
|
||||||
|
..write('cloudId: $cloudId')
|
||||||
..write(')'))
|
..write(')'))
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
@ -1643,3 +1708,7 @@ i0.Index get idxRemoteAssetChecksum => i0.Index(
|
|||||||
'idx_remote_asset_checksum',
|
'idx_remote_asset_checksum',
|
||||||
'CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)',
|
'CREATE INDEX IF NOT EXISTS idx_remote_asset_checksum ON remote_asset_entity (checksum)',
|
||||||
);
|
);
|
||||||
|
i0.Index get idxRemoteAssetCloudId => i0.Index(
|
||||||
|
'idx_remote_asset_cloud_id',
|
||||||
|
'CREATE INDEX IF NOT EXISTS idx_remote_asset_cloud_id ON remote_asset_entity (cloud_id)',
|
||||||
|
);
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
import 'package:drift/drift.dart';
|
|
||||||
import 'package:drift/extensions/json1.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();
|
|
||||||
|
|
||||||
TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)();
|
|
||||||
|
|
||||||
TextColumn get key => text()();
|
|
||||||
|
|
||||||
BlobColumn get value => blob().map(assetMetadataConverter)();
|
|
||||||
|
|
||||||
TextColumn get cloudId => text().generatedAs(value.jsonExtract(r'$.iCloudId'), stored: true).nullable()();
|
|
||||||
|
|
||||||
@override
|
|
||||||
Set<Column> get primaryKey => {assetId, key};
|
|
||||||
}
|
|
||||||
|
|
||||||
final JsonTypeConverter2<Map<String, Object?>, Uint8List, Object?> assetMetadataConverter = TypeConverter.jsonb(
|
|
||||||
fromJson: (json) => json as Map<String, Object?>,
|
|
||||||
);
|
|
||||||
@ -1,671 +0,0 @@
|
|||||||
// dart format width=80
|
|
||||||
// ignore_for_file: type=lint
|
|
||||||
import 'package:drift/drift.dart' as i0;
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.drift.dart'
|
|
||||||
as i1;
|
|
||||||
import 'dart:typed_data' as i2;
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.dart'
|
|
||||||
as i3;
|
|
||||||
import 'package:drift/extensions/json1.dart' as i4;
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart'
|
|
||||||
as i5;
|
|
||||||
import 'package:drift/internal/modular.dart' as i6;
|
|
||||||
|
|
||||||
typedef $$RemoteAssetMetadataEntityTableCreateCompanionBuilder =
|
|
||||||
i1.RemoteAssetMetadataEntityCompanion Function({
|
|
||||||
required String assetId,
|
|
||||||
required String key,
|
|
||||||
required Map<String, Object?> value,
|
|
||||||
});
|
|
||||||
typedef $$RemoteAssetMetadataEntityTableUpdateCompanionBuilder =
|
|
||||||
i1.RemoteAssetMetadataEntityCompanion Function({
|
|
||||||
i0.Value<String> assetId,
|
|
||||||
i0.Value<String> key,
|
|
||||||
i0.Value<Map<String, Object?>> value,
|
|
||||||
});
|
|
||||||
|
|
||||||
final class $$RemoteAssetMetadataEntityTableReferences
|
|
||||||
extends
|
|
||||||
i0.BaseReferences<
|
|
||||||
i0.GeneratedDatabase,
|
|
||||||
i1.$RemoteAssetMetadataEntityTable,
|
|
||||||
i1.RemoteAssetMetadataEntityData
|
|
||||||
> {
|
|
||||||
$$RemoteAssetMetadataEntityTableReferences(
|
|
||||||
super.$_db,
|
|
||||||
super.$_table,
|
|
||||||
super.$_typedResult,
|
|
||||||
);
|
|
||||||
|
|
||||||
static i5.$RemoteAssetEntityTable _assetIdTable(i0.GeneratedDatabase db) =>
|
|
||||||
i6.ReadDatabaseContainer(db)
|
|
||||||
.resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity')
|
|
||||||
.createAlias(
|
|
||||||
i0.$_aliasNameGenerator(
|
|
||||||
i6.ReadDatabaseContainer(db)
|
|
||||||
.resultSet<i1.$RemoteAssetMetadataEntityTable>(
|
|
||||||
'remote_asset_metadata_entity',
|
|
||||||
)
|
|
||||||
.assetId,
|
|
||||||
i6.ReadDatabaseContainer(
|
|
||||||
db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity').id,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
i5.$$RemoteAssetEntityTableProcessedTableManager get assetId {
|
|
||||||
final $_column = $_itemColumn<String>('asset_id')!;
|
|
||||||
|
|
||||||
final manager = i5
|
|
||||||
.$$RemoteAssetEntityTableTableManager(
|
|
||||||
$_db,
|
|
||||||
i6.ReadDatabaseContainer(
|
|
||||||
$_db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
)
|
|
||||||
.filter((f) => f.id.sqlEquals($_column));
|
|
||||||
final item = $_typedResult.readTableOrNull(_assetIdTable($_db));
|
|
||||||
if (item == null) return manager;
|
|
||||||
return i0.ProcessedTableManager(
|
|
||||||
manager.$state.copyWith(prefetchedData: [item]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class $$RemoteAssetMetadataEntityTableFilterComposer
|
|
||||||
extends
|
|
||||||
i0.Composer<i0.GeneratedDatabase, i1.$RemoteAssetMetadataEntityTable> {
|
|
||||||
$$RemoteAssetMetadataEntityTableFilterComposer({
|
|
||||||
required super.$db,
|
|
||||||
required super.$table,
|
|
||||||
super.joinBuilder,
|
|
||||||
super.$addJoinBuilderToRootComposer,
|
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
|
||||||
});
|
|
||||||
i0.ColumnFilters<String> get key => $composableBuilder(
|
|
||||||
column: $table.key,
|
|
||||||
builder: (column) => i0.ColumnFilters(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i0.ColumnWithTypeConverterFilters<
|
|
||||||
Map<String, Object?>,
|
|
||||||
Map<String, Object>,
|
|
||||||
i2.Uint8List
|
|
||||||
>
|
|
||||||
get value => $composableBuilder(
|
|
||||||
column: $table.value,
|
|
||||||
builder: (column) => i0.ColumnWithTypeConverterFilters(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i0.ColumnFilters<String> get cloudId => $composableBuilder(
|
|
||||||
column: $table.cloudId,
|
|
||||||
builder: (column) => i0.ColumnFilters(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i5.$$RemoteAssetEntityTableFilterComposer get assetId {
|
|
||||||
final i5.$$RemoteAssetEntityTableFilterComposer composer = $composerBuilder(
|
|
||||||
composer: this,
|
|
||||||
getCurrentColumn: (t) => t.assetId,
|
|
||||||
referencedTable: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
getReferencedColumn: (t) => t.id,
|
|
||||||
builder:
|
|
||||||
(
|
|
||||||
joinBuilder, {
|
|
||||||
$addJoinBuilderToRootComposer,
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
}) => i5.$$RemoteAssetEntityTableFilterComposer(
|
|
||||||
$db: $db,
|
|
||||||
$table: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
|
||||||
joinBuilder: joinBuilder,
|
|
||||||
$removeJoinBuilderFromRootComposer:
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return composer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class $$RemoteAssetMetadataEntityTableOrderingComposer
|
|
||||||
extends
|
|
||||||
i0.Composer<i0.GeneratedDatabase, i1.$RemoteAssetMetadataEntityTable> {
|
|
||||||
$$RemoteAssetMetadataEntityTableOrderingComposer({
|
|
||||||
required super.$db,
|
|
||||||
required super.$table,
|
|
||||||
super.joinBuilder,
|
|
||||||
super.$addJoinBuilderToRootComposer,
|
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
|
||||||
});
|
|
||||||
i0.ColumnOrderings<String> get key => $composableBuilder(
|
|
||||||
column: $table.key,
|
|
||||||
builder: (column) => i0.ColumnOrderings(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i0.ColumnOrderings<i2.Uint8List> get value => $composableBuilder(
|
|
||||||
column: $table.value,
|
|
||||||
builder: (column) => i0.ColumnOrderings(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i0.ColumnOrderings<String> get cloudId => $composableBuilder(
|
|
||||||
column: $table.cloudId,
|
|
||||||
builder: (column) => i0.ColumnOrderings(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i5.$$RemoteAssetEntityTableOrderingComposer get assetId {
|
|
||||||
final i5.$$RemoteAssetEntityTableOrderingComposer composer =
|
|
||||||
$composerBuilder(
|
|
||||||
composer: this,
|
|
||||||
getCurrentColumn: (t) => t.assetId,
|
|
||||||
referencedTable: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
getReferencedColumn: (t) => t.id,
|
|
||||||
builder:
|
|
||||||
(
|
|
||||||
joinBuilder, {
|
|
||||||
$addJoinBuilderToRootComposer,
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
}) => i5.$$RemoteAssetEntityTableOrderingComposer(
|
|
||||||
$db: $db,
|
|
||||||
$table: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
|
||||||
joinBuilder: joinBuilder,
|
|
||||||
$removeJoinBuilderFromRootComposer:
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return composer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class $$RemoteAssetMetadataEntityTableAnnotationComposer
|
|
||||||
extends
|
|
||||||
i0.Composer<i0.GeneratedDatabase, i1.$RemoteAssetMetadataEntityTable> {
|
|
||||||
$$RemoteAssetMetadataEntityTableAnnotationComposer({
|
|
||||||
required super.$db,
|
|
||||||
required super.$table,
|
|
||||||
super.joinBuilder,
|
|
||||||
super.$addJoinBuilderToRootComposer,
|
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
|
||||||
});
|
|
||||||
i0.GeneratedColumn<String> get key =>
|
|
||||||
$composableBuilder(column: $table.key, builder: (column) => column);
|
|
||||||
|
|
||||||
i0.GeneratedColumnWithTypeConverter<Map<String, Object?>, i2.Uint8List>
|
|
||||||
get value =>
|
|
||||||
$composableBuilder(column: $table.value, builder: (column) => column);
|
|
||||||
|
|
||||||
i0.GeneratedColumn<String> get cloudId =>
|
|
||||||
$composableBuilder(column: $table.cloudId, builder: (column) => column);
|
|
||||||
|
|
||||||
i5.$$RemoteAssetEntityTableAnnotationComposer get assetId {
|
|
||||||
final i5.$$RemoteAssetEntityTableAnnotationComposer composer =
|
|
||||||
$composerBuilder(
|
|
||||||
composer: this,
|
|
||||||
getCurrentColumn: (t) => t.assetId,
|
|
||||||
referencedTable: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
getReferencedColumn: (t) => t.id,
|
|
||||||
builder:
|
|
||||||
(
|
|
||||||
joinBuilder, {
|
|
||||||
$addJoinBuilderToRootComposer,
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
}) => i5.$$RemoteAssetEntityTableAnnotationComposer(
|
|
||||||
$db: $db,
|
|
||||||
$table: i6.ReadDatabaseContainer(
|
|
||||||
$db,
|
|
||||||
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
|
||||||
joinBuilder: joinBuilder,
|
|
||||||
$removeJoinBuilderFromRootComposer:
|
|
||||||
$removeJoinBuilderFromRootComposer,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return composer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class $$RemoteAssetMetadataEntityTableTableManager
|
|
||||||
extends
|
|
||||||
i0.RootTableManager<
|
|
||||||
i0.GeneratedDatabase,
|
|
||||||
i1.$RemoteAssetMetadataEntityTable,
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableFilterComposer,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableOrderingComposer,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableAnnotationComposer,
|
|
||||||
$$RemoteAssetMetadataEntityTableCreateCompanionBuilder,
|
|
||||||
$$RemoteAssetMetadataEntityTableUpdateCompanionBuilder,
|
|
||||||
(
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableReferences,
|
|
||||||
),
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i0.PrefetchHooks Function({bool assetId})
|
|
||||||
> {
|
|
||||||
$$RemoteAssetMetadataEntityTableTableManager(
|
|
||||||
i0.GeneratedDatabase db,
|
|
||||||
i1.$RemoteAssetMetadataEntityTable table,
|
|
||||||
) : super(
|
|
||||||
i0.TableManagerState(
|
|
||||||
db: db,
|
|
||||||
table: table,
|
|
||||||
createFilteringComposer: () =>
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableFilterComposer(
|
|
||||||
$db: db,
|
|
||||||
$table: table,
|
|
||||||
),
|
|
||||||
createOrderingComposer: () =>
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableOrderingComposer(
|
|
||||||
$db: db,
|
|
||||||
$table: table,
|
|
||||||
),
|
|
||||||
createComputedFieldComposer: () =>
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableAnnotationComposer(
|
|
||||||
$db: db,
|
|
||||||
$table: table,
|
|
||||||
),
|
|
||||||
updateCompanionCallback:
|
|
||||||
({
|
|
||||||
i0.Value<String> assetId = const i0.Value.absent(),
|
|
||||||
i0.Value<String> key = const i0.Value.absent(),
|
|
||||||
i0.Value<Map<String, Object?>> value = const i0.Value.absent(),
|
|
||||||
}) => i1.RemoteAssetMetadataEntityCompanion(
|
|
||||||
assetId: assetId,
|
|
||||||
key: key,
|
|
||||||
value: value,
|
|
||||||
),
|
|
||||||
createCompanionCallback:
|
|
||||||
({
|
|
||||||
required String assetId,
|
|
||||||
required String key,
|
|
||||||
required Map<String, Object?> value,
|
|
||||||
}) => i1.RemoteAssetMetadataEntityCompanion.insert(
|
|
||||||
assetId: assetId,
|
|
||||||
key: key,
|
|
||||||
value: value,
|
|
||||||
),
|
|
||||||
withReferenceMapper: (p0) => p0
|
|
||||||
.map(
|
|
||||||
(e) => (
|
|
||||||
e.readTable(table),
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableReferences(db, table, e),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.toList(),
|
|
||||||
prefetchHooksCallback: ({assetId = false}) {
|
|
||||||
return i0.PrefetchHooks(
|
|
||||||
db: db,
|
|
||||||
explicitlyWatchedTables: [],
|
|
||||||
addJoins:
|
|
||||||
<
|
|
||||||
T extends i0.TableManagerState<
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic,
|
|
||||||
dynamic
|
|
||||||
>
|
|
||||||
>(state) {
|
|
||||||
if (assetId) {
|
|
||||||
state =
|
|
||||||
state.withJoin(
|
|
||||||
currentTable: table,
|
|
||||||
currentColumn: table.assetId,
|
|
||||||
referencedTable: i1
|
|
||||||
.$$RemoteAssetMetadataEntityTableReferences
|
|
||||||
._assetIdTable(db),
|
|
||||||
referencedColumn: i1
|
|
||||||
.$$RemoteAssetMetadataEntityTableReferences
|
|
||||||
._assetIdTable(db)
|
|
||||||
.id,
|
|
||||||
)
|
|
||||||
as T;
|
|
||||||
}
|
|
||||||
|
|
||||||
return state;
|
|
||||||
},
|
|
||||||
getPrefetchedDataCallback: (items) async {
|
|
||||||
return [];
|
|
||||||
},
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef $$RemoteAssetMetadataEntityTableProcessedTableManager =
|
|
||||||
i0.ProcessedTableManager<
|
|
||||||
i0.GeneratedDatabase,
|
|
||||||
i1.$RemoteAssetMetadataEntityTable,
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableFilterComposer,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableOrderingComposer,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableAnnotationComposer,
|
|
||||||
$$RemoteAssetMetadataEntityTableCreateCompanionBuilder,
|
|
||||||
$$RemoteAssetMetadataEntityTableUpdateCompanionBuilder,
|
|
||||||
(
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i1.$$RemoteAssetMetadataEntityTableReferences,
|
|
||||||
),
|
|
||||||
i1.RemoteAssetMetadataEntityData,
|
|
||||||
i0.PrefetchHooks Function({bool assetId})
|
|
||||||
>;
|
|
||||||
i0.Index get uQRemoteAssetMetadataCloudId => i0.Index(
|
|
||||||
'UQ_remote_asset_metadata_cloud_id',
|
|
||||||
'CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_asset_metadata_cloud_id ON remote_asset_metadata_entity (cloud_id) WHERE("key" = \'mobile-app\')',
|
|
||||||
);
|
|
||||||
|
|
||||||
class $RemoteAssetMetadataEntityTable extends i3.RemoteAssetMetadataEntity
|
|
||||||
with
|
|
||||||
i0.TableInfo<
|
|
||||||
$RemoteAssetMetadataEntityTable,
|
|
||||||
i1.RemoteAssetMetadataEntityData
|
|
||||||
> {
|
|
||||||
@override
|
|
||||||
final i0.GeneratedDatabase attachedDatabase;
|
|
||||||
final String? _alias;
|
|
||||||
$RemoteAssetMetadataEntityTable(this.attachedDatabase, [this._alias]);
|
|
||||||
static const i0.VerificationMeta _assetIdMeta = const i0.VerificationMeta(
|
|
||||||
'assetId',
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
late final i0.GeneratedColumn<String> assetId = i0.GeneratedColumn<String>(
|
|
||||||
'asset_id',
|
|
||||||
aliasedName,
|
|
||||||
false,
|
|
||||||
type: i0.DriftSqlType.string,
|
|
||||||
requiredDuringInsert: true,
|
|
||||||
defaultConstraints: i0.GeneratedColumn.constraintIsAlways(
|
|
||||||
'REFERENCES remote_asset_entity (id) ON DELETE CASCADE',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
static const i0.VerificationMeta _keyMeta = const i0.VerificationMeta('key');
|
|
||||||
@override
|
|
||||||
late final i0.GeneratedColumn<String> key = i0.GeneratedColumn<String>(
|
|
||||||
'key',
|
|
||||||
aliasedName,
|
|
||||||
false,
|
|
||||||
type: i0.DriftSqlType.string,
|
|
||||||
requiredDuringInsert: true,
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
late final i0.GeneratedColumnWithTypeConverter<
|
|
||||||
Map<String, Object?>,
|
|
||||||
i2.Uint8List
|
|
||||||
>
|
|
||||||
value =
|
|
||||||
i0.GeneratedColumn<i2.Uint8List>(
|
|
||||||
'value',
|
|
||||||
aliasedName,
|
|
||||||
false,
|
|
||||||
type: i0.DriftSqlType.blob,
|
|
||||||
requiredDuringInsert: true,
|
|
||||||
).withConverter<Map<String, Object?>>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue,
|
|
||||||
);
|
|
||||||
static const i0.VerificationMeta _cloudIdMeta = const i0.VerificationMeta(
|
|
||||||
'cloudId',
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
late final i0.GeneratedColumn<String> cloudId = i0.GeneratedColumn<String>(
|
|
||||||
'cloud_id',
|
|
||||||
aliasedName,
|
|
||||||
true,
|
|
||||||
generatedAs: i0.GeneratedAs(
|
|
||||||
i4.JsonbExtensions(value).jsonExtract(r'$.iCloudId'),
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
type: i0.DriftSqlType.string,
|
|
||||||
requiredDuringInsert: false,
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
List<i0.GeneratedColumn> get $columns => [assetId, key, value, cloudId];
|
|
||||||
@override
|
|
||||||
String get aliasedName => _alias ?? actualTableName;
|
|
||||||
@override
|
|
||||||
String get actualTableName => $name;
|
|
||||||
static const String $name = 'remote_asset_metadata_entity';
|
|
||||||
@override
|
|
||||||
i0.VerificationContext validateIntegrity(
|
|
||||||
i0.Insertable<i1.RemoteAssetMetadataEntityData> instance, {
|
|
||||||
bool isInserting = false,
|
|
||||||
}) {
|
|
||||||
final context = i0.VerificationContext();
|
|
||||||
final data = instance.toColumns(true);
|
|
||||||
if (data.containsKey('asset_id')) {
|
|
||||||
context.handle(
|
|
||||||
_assetIdMeta,
|
|
||||||
assetId.isAcceptableOrUnknown(data['asset_id']!, _assetIdMeta),
|
|
||||||
);
|
|
||||||
} else if (isInserting) {
|
|
||||||
context.missing(_assetIdMeta);
|
|
||||||
}
|
|
||||||
if (data.containsKey('key')) {
|
|
||||||
context.handle(
|
|
||||||
_keyMeta,
|
|
||||||
key.isAcceptableOrUnknown(data['key']!, _keyMeta),
|
|
||||||
);
|
|
||||||
} else if (isInserting) {
|
|
||||||
context.missing(_keyMeta);
|
|
||||||
}
|
|
||||||
if (data.containsKey('cloud_id')) {
|
|
||||||
context.handle(
|
|
||||||
_cloudIdMeta,
|
|
||||||
cloudId.isAcceptableOrUnknown(data['cloud_id']!, _cloudIdMeta),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Set<i0.GeneratedColumn> get $primaryKey => {assetId, key};
|
|
||||||
@override
|
|
||||||
i1.RemoteAssetMetadataEntityData map(
|
|
||||||
Map<String, dynamic> data, {
|
|
||||||
String? tablePrefix,
|
|
||||||
}) {
|
|
||||||
final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
|
|
||||||
return i1.RemoteAssetMetadataEntityData(
|
|
||||||
assetId: attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.string,
|
|
||||||
data['${effectivePrefix}asset_id'],
|
|
||||||
)!,
|
|
||||||
key: attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.string,
|
|
||||||
data['${effectivePrefix}key'],
|
|
||||||
)!,
|
|
||||||
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromSql(
|
|
||||||
attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.blob,
|
|
||||||
data['${effectivePrefix}value'],
|
|
||||||
)!,
|
|
||||||
),
|
|
||||||
cloudId: attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.string,
|
|
||||||
data['${effectivePrefix}cloud_id'],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
$RemoteAssetMetadataEntityTable createAlias(String alias) {
|
|
||||||
return $RemoteAssetMetadataEntityTable(attachedDatabase, alias);
|
|
||||||
}
|
|
||||||
|
|
||||||
static i0.JsonTypeConverter2<Map<String, Object?>, i2.Uint8List, Object?>
|
|
||||||
$convertervalue = i3.assetMetadataConverter;
|
|
||||||
@override
|
|
||||||
bool get withoutRowId => true;
|
|
||||||
@override
|
|
||||||
bool get isStrict => true;
|
|
||||||
}
|
|
||||||
|
|
||||||
class RemoteAssetMetadataEntityData extends i0.DataClass
|
|
||||||
implements i0.Insertable<i1.RemoteAssetMetadataEntityData> {
|
|
||||||
final String assetId;
|
|
||||||
final String key;
|
|
||||||
final Map<String, Object?> value;
|
|
||||||
final String? cloudId;
|
|
||||||
const RemoteAssetMetadataEntityData({
|
|
||||||
required this.assetId,
|
|
||||||
required this.key,
|
|
||||||
required this.value,
|
|
||||||
this.cloudId,
|
|
||||||
});
|
|
||||||
@override
|
|
||||||
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
|
||||||
final map = <String, i0.Expression>{};
|
|
||||||
map['asset_id'] = i0.Variable<String>(assetId);
|
|
||||||
map['key'] = i0.Variable<String>(key);
|
|
||||||
{
|
|
||||||
map['value'] = i0.Variable<i2.Uint8List>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
factory RemoteAssetMetadataEntityData.fromJson(
|
|
||||||
Map<String, dynamic> json, {
|
|
||||||
i0.ValueSerializer? serializer,
|
|
||||||
}) {
|
|
||||||
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
|
||||||
return RemoteAssetMetadataEntityData(
|
|
||||||
assetId: serializer.fromJson<String>(json['assetId']),
|
|
||||||
key: serializer.fromJson<String>(json['key']),
|
|
||||||
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromJson(
|
|
||||||
serializer.fromJson<Object?>(json['value']),
|
|
||||||
),
|
|
||||||
cloudId: serializer.fromJson<String?>(json['cloudId']),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@override
|
|
||||||
Map<String, dynamic> toJson({i0.ValueSerializer? serializer}) {
|
|
||||||
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
|
||||||
return <String, dynamic>{
|
|
||||||
'assetId': serializer.toJson<String>(assetId),
|
|
||||||
'key': serializer.toJson<String>(key),
|
|
||||||
'value': serializer.toJson<Object?>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toJson(value),
|
|
||||||
),
|
|
||||||
'cloudId': serializer.toJson<String?>(cloudId),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
i1.RemoteAssetMetadataEntityData copyWith({
|
|
||||||
String? assetId,
|
|
||||||
String? key,
|
|
||||||
Map<String, Object?>? value,
|
|
||||||
i0.Value<String?> cloudId = const i0.Value.absent(),
|
|
||||||
}) => i1.RemoteAssetMetadataEntityData(
|
|
||||||
assetId: assetId ?? this.assetId,
|
|
||||||
key: key ?? this.key,
|
|
||||||
value: value ?? this.value,
|
|
||||||
cloudId: cloudId.present ? cloudId.value : this.cloudId,
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return (StringBuffer('RemoteAssetMetadataEntityData(')
|
|
||||||
..write('assetId: $assetId, ')
|
|
||||||
..write('key: $key, ')
|
|
||||||
..write('value: $value, ')
|
|
||||||
..write('cloudId: $cloudId')
|
|
||||||
..write(')'))
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode => Object.hash(assetId, key, value, cloudId);
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) =>
|
|
||||||
identical(this, other) ||
|
|
||||||
(other is i1.RemoteAssetMetadataEntityData &&
|
|
||||||
other.assetId == this.assetId &&
|
|
||||||
other.key == this.key &&
|
|
||||||
other.value == this.value &&
|
|
||||||
other.cloudId == this.cloudId);
|
|
||||||
}
|
|
||||||
|
|
||||||
class RemoteAssetMetadataEntityCompanion
|
|
||||||
extends i0.UpdateCompanion<i1.RemoteAssetMetadataEntityData> {
|
|
||||||
final i0.Value<String> assetId;
|
|
||||||
final i0.Value<String> key;
|
|
||||||
final i0.Value<Map<String, Object?>> value;
|
|
||||||
const RemoteAssetMetadataEntityCompanion({
|
|
||||||
this.assetId = const i0.Value.absent(),
|
|
||||||
this.key = const i0.Value.absent(),
|
|
||||||
this.value = const i0.Value.absent(),
|
|
||||||
});
|
|
||||||
RemoteAssetMetadataEntityCompanion.insert({
|
|
||||||
required String assetId,
|
|
||||||
required String key,
|
|
||||||
required Map<String, Object?> value,
|
|
||||||
}) : assetId = i0.Value(assetId),
|
|
||||||
key = i0.Value(key),
|
|
||||||
value = i0.Value(value);
|
|
||||||
static i0.Insertable<i1.RemoteAssetMetadataEntityData> custom({
|
|
||||||
i0.Expression<String>? assetId,
|
|
||||||
i0.Expression<String>? key,
|
|
||||||
i0.Expression<i2.Uint8List>? value,
|
|
||||||
}) {
|
|
||||||
return i0.RawValuesInsertable({
|
|
||||||
if (assetId != null) 'asset_id': assetId,
|
|
||||||
if (key != null) 'key': key,
|
|
||||||
if (value != null) 'value': value,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
i1.RemoteAssetMetadataEntityCompanion copyWith({
|
|
||||||
i0.Value<String>? assetId,
|
|
||||||
i0.Value<String>? key,
|
|
||||||
i0.Value<Map<String, Object?>>? value,
|
|
||||||
}) {
|
|
||||||
return i1.RemoteAssetMetadataEntityCompanion(
|
|
||||||
assetId: assetId ?? this.assetId,
|
|
||||||
key: key ?? this.key,
|
|
||||||
value: value ?? this.value,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
|
||||||
final map = <String, i0.Expression>{};
|
|
||||||
if (assetId.present) {
|
|
||||||
map['asset_id'] = i0.Variable<String>(assetId.value);
|
|
||||||
}
|
|
||||||
if (key.present) {
|
|
||||||
map['key'] = i0.Variable<String>(key.value);
|
|
||||||
}
|
|
||||||
if (value.present) {
|
|
||||||
map['value'] = i0.Variable<i2.Uint8List>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value.value),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return (StringBuffer('RemoteAssetMetadataEntityCompanion(')
|
|
||||||
..write('assetId: $assetId, ')
|
|
||||||
..write('key: $key, ')
|
|
||||||
..write('value: $value')
|
|
||||||
..write(')'))
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -64,7 +64,8 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.remoteAssetEntity,
|
_db.remoteAssetEntity,
|
||||||
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) &
|
(_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId)) &
|
||||||
_db.remoteAssetEntity.ownerId.equals(userId),
|
_db.remoteAssetEntity.ownerId.equals(userId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
@ -94,7 +95,8 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
innerJoin(
|
innerJoin(
|
||||||
_db.remoteAssetEntity,
|
_db.remoteAssetEntity,
|
||||||
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
@ -116,7 +118,7 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
final query = _db.localAssetEntity.select()
|
final query = _db.localAssetEntity.select()
|
||||||
..where(
|
..where(
|
||||||
(lae) =>
|
(lae) =>
|
||||||
lae.checksum.isNotNull() &
|
(lae.checksum.isNotNull() | lae.cloudId.isNotNull()) &
|
||||||
existsQuery(
|
existsQuery(
|
||||||
_db.localAlbumAssetEntity.selectOnly()
|
_db.localAlbumAssetEntity.selectOnly()
|
||||||
..addColumns([_db.localAlbumAssetEntity.assetId])
|
..addColumns([_db.localAlbumAssetEntity.assetId])
|
||||||
@ -129,7 +131,9 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
_db.remoteAssetEntity.selectOnly()
|
_db.remoteAssetEntity.selectOnly()
|
||||||
..addColumns([_db.remoteAssetEntity.checksum])
|
..addColumns([_db.remoteAssetEntity.checksum])
|
||||||
..where(
|
..where(
|
||||||
_db.remoteAssetEntity.checksum.equalsExp(lae.checksum) & _db.remoteAssetEntity.ownerId.equals(userId),
|
(_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId)) &
|
||||||
|
_db.remoteAssetEntity.ownerId.equals(userId),
|
||||||
),
|
),
|
||||||
) &
|
) &
|
||||||
lae.id.isNotInQuery(_getExcludedSubquery()),
|
lae.id.isNotInQuery(_getExcludedSubquery()),
|
||||||
|
|||||||
@ -17,7 +17,6 @@ import 'package:immich_mobile/infrastructure/entities/remote_album.entity.dart';
|
|||||||
import 'package:immich_mobile/infrastructure/entities/remote_album_asset.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_album_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_album_user.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_album_user.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.dart';
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/stack.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/stack.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
|
||||||
@ -51,7 +50,6 @@ class IsarDatabaseRepository implements IDatabaseRepository {
|
|||||||
LocalAssetEntity,
|
LocalAssetEntity,
|
||||||
LocalAlbumAssetEntity,
|
LocalAlbumAssetEntity,
|
||||||
RemoteAssetEntity,
|
RemoteAssetEntity,
|
||||||
RemoteAssetMetadataEntity,
|
|
||||||
RemoteExifEntity,
|
RemoteExifEntity,
|
||||||
RemoteAlbumEntity,
|
RemoteAlbumEntity,
|
||||||
RemoteAlbumAssetEntity,
|
RemoteAlbumAssetEntity,
|
||||||
@ -129,9 +127,9 @@ class Drift extends $Drift implements IDatabaseRepository {
|
|||||||
// Add cloudId column to local_asset_entity
|
// Add cloudId column to local_asset_entity
|
||||||
await m.addColumn(v9.localAssetEntity, v9.localAssetEntity.cloudId);
|
await m.addColumn(v9.localAssetEntity, v9.localAssetEntity.cloudId);
|
||||||
await m.createIndex(v9.idxLocalAssetCloudId);
|
await m.createIndex(v9.idxLocalAssetCloudId);
|
||||||
// Create new table
|
// Add cloudId column to remote_asset_entity
|
||||||
await m.createTable(v9.remoteAssetMetadataEntity);
|
await m.addColumn(v9.remoteAssetEntity, v9.remoteAssetEntity.cloudId);
|
||||||
await m.createIndex(v9.uQRemoteAssetMetadataCloudId);
|
await m.createIndex(v9.idxRemoteAssetCloudId);
|
||||||
},
|
},
|
||||||
from8To9: (m, v9) async {
|
from8To9: (m, v9) async {
|
||||||
await m.addColumn(v9.localAlbumEntity, v9.localAlbumEntity.linkedRemoteAlbumId);
|
await m.addColumn(v9.localAlbumEntity, v9.localAlbumEntity.linkedRemoteAlbumId);
|
||||||
|
|||||||
@ -13,7 +13,8 @@ class DriftLocalAssetRepository extends DriftDatabaseRepository {
|
|||||||
final query = _db.localAssetEntity.select().addColumns([_db.remoteAssetEntity.id]).join([
|
final query = _db.localAssetEntity.select().addColumns([_db.remoteAssetEntity.id]).join([
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.remoteAssetEntity,
|
_db.remoteAssetEntity,
|
||||||
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])..where(_db.localAssetEntity.id.equals(id));
|
])..where(_db.localAssetEntity.id.equals(id));
|
||||||
|
|||||||
@ -34,7 +34,8 @@ class RemoteAssetRepository extends DriftDatabaseRepository {
|
|||||||
_db.remoteAssetEntity.select().addColumns([_db.localAssetEntity.id]).join([
|
_db.remoteAssetEntity.select().addColumns([_db.localAssetEntity.id]).join([
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.localAssetEntity,
|
_db.localAssetEntity,
|
||||||
_db.remoteAssetEntity.checksum.equalsExp(_db.localAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
|
|||||||
@ -15,14 +15,13 @@ import 'package:immich_mobile/infrastructure/entities/remote_album.entity.drift.
|
|||||||
import 'package:immich_mobile/infrastructure/entities/remote_album_asset.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_album_asset.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_album_user.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_album_user.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.drift.dart';
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/stack.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/stack.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/user.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/user.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/user_metadata.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/user_metadata.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:openapi/api.dart' as api show AssetVisibility, AlbumUserRole, UserMetadataKey;
|
import 'package:openapi/api.dart' as api show AssetVisibility, AlbumUserRole, UserMetadataKey;
|
||||||
import 'package:openapi/api.dart' hide AssetVisibility, AlbumUserRole, UserMetadataKey, AssetMetadataKey;
|
import 'package:openapi/api.dart' hide AssetVisibility, AlbumUserRole, UserMetadataKey;
|
||||||
|
|
||||||
class SyncStreamRepository extends DriftDatabaseRepository {
|
class SyncStreamRepository extends DriftDatabaseRepository {
|
||||||
final Logger _logger = Logger('DriftSyncStreamRepository');
|
final Logger _logger = Logger('DriftSyncStreamRepository');
|
||||||
@ -183,11 +182,14 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
try {
|
try {
|
||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
for (final metadata in data) {
|
for (final metadata in data) {
|
||||||
batch.deleteWhere(
|
if (metadata.key == AssetMetadataKey.mobileApp) {
|
||||||
_db.remoteAssetMetadataEntity,
|
batch.update(
|
||||||
(row) => row.assetId.equals(metadata.assetId) & row.key.equals(metadata.key.value),
|
_db.remoteAssetEntity,
|
||||||
|
const RemoteAssetEntityCompanion(cloudId: Value(null)),
|
||||||
|
where: (row) => row.id.equals(metadata.assetId),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} catch (error, stack) {
|
} catch (error, stack) {
|
||||||
_logger.severe('Error: deleteAssetsMetadataV1', error, stack);
|
_logger.severe('Error: deleteAssetsMetadataV1', error, stack);
|
||||||
@ -199,17 +201,15 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
try {
|
try {
|
||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
for (final metadata in data) {
|
for (final metadata in data) {
|
||||||
final companion = RemoteAssetMetadataEntityCompanion(
|
if (metadata.key == AssetMetadataKey.mobileApp) {
|
||||||
key: Value(metadata.key.value),
|
final map = metadata.value as Map<String, Object?>;
|
||||||
value: Value(metadata.value as Map<String, Object?>),
|
batch.update(
|
||||||
);
|
_db.remoteAssetEntity,
|
||||||
|
RemoteAssetEntityCompanion(cloudId: Value(map['iCloudId']?.toString())),
|
||||||
batch.insert(
|
where: (row) => row.id.equals(metadata.assetId),
|
||||||
_db.remoteAssetMetadataEntity,
|
|
||||||
companion.copyWith(assetId: Value(metadata.assetId)),
|
|
||||||
onConflict: DoUpdate((_) => companion),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} catch (error, stack) {
|
} catch (error, stack) {
|
||||||
_logger.severe('Error: updateAssetsMetadataV1', error, stack);
|
_logger.severe('Error: updateAssetsMetadataV1', error, stack);
|
||||||
|
|||||||
@ -117,7 +117,8 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.remoteAssetEntity,
|
_db.remoteAssetEntity,
|
||||||
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
@ -143,7 +144,8 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.remoteAssetEntity,
|
_db.remoteAssetEntity,
|
||||||
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
@ -538,7 +540,8 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
_db.remoteAssetEntity.select().join([
|
_db.remoteAssetEntity.select().join([
|
||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
_db.localAssetEntity,
|
_db.localAssetEntity,
|
||||||
_db.remoteAssetEntity.checksum.equalsExp(_db.localAssetEntity.checksum),
|
_db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum) |
|
||||||
|
_db.localAssetEntity.cloudId.equalsExp(_db.remoteAssetEntity.cloudId),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user