fix types
This commit is contained in:
@@ -6,33 +6,33 @@ enum RemoteAssetMetadataKey {
|
|||||||
final String key;
|
final String key;
|
||||||
|
|
||||||
const RemoteAssetMetadataKey(this.key);
|
const RemoteAssetMetadataKey(this.key);
|
||||||
|
|
||||||
factory RemoteAssetMetadataKey.fromKey(String key) {
|
|
||||||
switch (key) {
|
|
||||||
case "mobile-app":
|
|
||||||
return RemoteAssetMetadataKey.mobileApp;
|
|
||||||
default:
|
|
||||||
throw ArgumentError("Unknown AssetMetadataKey key: $key");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class RemoteAssetMetadata {
|
class RemoteAssetMetadataItem {
|
||||||
final String? cloudId;
|
final RemoteAssetMetadataKey key;
|
||||||
|
final Object value;
|
||||||
|
|
||||||
const RemoteAssetMetadata({this.cloudId});
|
const RemoteAssetMetadataItem({required this.key, required this.value});
|
||||||
|
|
||||||
Map<String, dynamic> toMap() {
|
Map<String, Object?> toMap() {
|
||||||
final mobileAppValue = {};
|
return {'key': key.key, 'value': value};
|
||||||
if (cloudId != null) {
|
}
|
||||||
mobileAppValue["iCloudId"] = cloudId;
|
|
||||||
}
|
String toJson() => json.encode(toMap());
|
||||||
|
}
|
||||||
return {
|
|
||||||
"metadata": [
|
class RemoteAssetMobileAppMetadata {
|
||||||
{"key": RemoteAssetMetadataKey.mobileApp.key, "value": mobileAppValue},
|
final String? cloudId;
|
||||||
],
|
|
||||||
};
|
const RemoteAssetMobileAppMetadata({this.cloudId});
|
||||||
|
|
||||||
|
Map<String, Object?> toMap() {
|
||||||
|
final map = <String, Object?>{};
|
||||||
|
if (cloudId != null) {
|
||||||
|
map["iCloudId"] = cloudId;
|
||||||
|
}
|
||||||
|
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
String toJson() => json.encode(toMap());
|
String toJson() => json.encode(toMap());
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Future<void> migrateCloudIds(ProviderContainer ref) async {
|
|||||||
for (final mapping in mappingsToUpdate) {
|
for (final mapping in mappingsToUpdate) {
|
||||||
final mobileMeta = AssetMetadataUpsertItemDto(
|
final mobileMeta = AssetMetadataUpsertItemDto(
|
||||||
key: AssetMetadataKey.mobileApp,
|
key: AssetMetadataKey.mobileApp,
|
||||||
value: {"iCloudId": mapping.cloudId},
|
value: RemoteAssetMobileAppMetadata(cloudId: mapping.cloudId).toMap(),
|
||||||
);
|
);
|
||||||
await assetApi.updateAssetMetadata(mapping.assetId, AssetMetadataUpsertDto(items: [mobileMeta]));
|
await assetApi.updateAssetMetadata(mapping.assetId, AssetMetadataUpsertDto(items: [mobileMeta]));
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ Future<List<_CloudIdMapping>> _fetchCloudIdMappings(Drift drift) async {
|
|||||||
leftOuterJoin(
|
leftOuterJoin(
|
||||||
drift.remoteAssetMetadataEntity,
|
drift.remoteAssetMetadataEntity,
|
||||||
drift.remoteAssetMetadataEntity.assetId.equalsExp(drift.remoteAssetEntity.id) &
|
drift.remoteAssetMetadataEntity.assetId.equalsExp(drift.remoteAssetEntity.id) &
|
||||||
drift.remoteAssetMetadataEntity.key.equalsValue(RemoteAssetMetadataKey.mobileApp),
|
drift.remoteAssetMetadataEntity.key.equals(RemoteAssetMetadataKey.mobileApp.key),
|
||||||
useColumns: false,
|
useColumns: false,
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:drift/drift.dart';
|
import 'package:drift/drift.dart';
|
||||||
import 'package:drift/extensions/json1.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/entities/remote_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
|
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
|
||||||
|
|
||||||
@@ -12,26 +13,17 @@ class RemoteAssetMetadataEntity extends Table with DriftDefaultsMixin {
|
|||||||
|
|
||||||
TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)();
|
TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)();
|
||||||
|
|
||||||
TextColumn get key => text().map(const RemoteAssetMetadataKeyConverter())();
|
TextColumn get key => text()();
|
||||||
|
|
||||||
TextColumn get cloudId => text().generatedAs(key.jsonExtract(r'$.iCloudId'), stored: true)();
|
|
||||||
|
|
||||||
BlobColumn get value => blob().map(assetMetadataConverter)();
|
BlobColumn get value => blob().map(assetMetadataConverter)();
|
||||||
|
|
||||||
|
TextColumn get cloudId => text().generatedAs(key.jsonExtract(r'$.iCloudId'), stored: true)();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Set<Column> get primaryKey => {assetId, key};
|
Set<Column> get primaryKey => {assetId, key};
|
||||||
}
|
}
|
||||||
|
|
||||||
class RemoteAssetMetadataKeyConverter extends TypeConverter<RemoteAssetMetadataKey, String> {
|
|
||||||
const RemoteAssetMetadataKeyConverter();
|
|
||||||
|
|
||||||
@override
|
|
||||||
RemoteAssetMetadataKey fromSql(String fromDb) => RemoteAssetMetadataKey.fromKey(fromDb);
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toSql(RemoteAssetMetadataKey value) => value.key;
|
|
||||||
}
|
|
||||||
|
|
||||||
final JsonTypeConverter2<Map<String, Object?>, Uint8List, Object?> assetMetadataConverter = TypeConverter.jsonb(
|
final JsonTypeConverter2<Map<String, Object?>, Uint8List, Object?> assetMetadataConverter = TypeConverter.jsonb(
|
||||||
fromJson: (json) => json as Map<String, Object?>,
|
fromJson: (json) => json as Map<String, Object?>,
|
||||||
|
toJson: (value) => jsonEncode(value),
|
||||||
);
|
);
|
||||||
|
|||||||
+120
-137
@@ -3,26 +3,24 @@
|
|||||||
import 'package:drift/drift.dart' as i0;
|
import 'package:drift/drift.dart' as i0;
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.drift.dart'
|
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.drift.dart'
|
||||||
as i1;
|
as i1;
|
||||||
import 'package:immich_mobile/domain/models/asset/asset_metadata.model.dart'
|
import 'dart:typed_data' as i2;
|
||||||
as i2;
|
|
||||||
import 'dart:typed_data' as i3;
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.dart'
|
import 'package:immich_mobile/infrastructure/entities/remote_asset_metadata.entity.dart'
|
||||||
as i4;
|
as i3;
|
||||||
import 'package:drift/extensions/json1.dart' as i5;
|
import 'package:drift/extensions/json1.dart' as i4;
|
||||||
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart'
|
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart'
|
||||||
as i6;
|
as i5;
|
||||||
import 'package:drift/internal/modular.dart' as i7;
|
import 'package:drift/internal/modular.dart' as i6;
|
||||||
|
|
||||||
typedef $$RemoteAssetMetadataEntityTableCreateCompanionBuilder =
|
typedef $$RemoteAssetMetadataEntityTableCreateCompanionBuilder =
|
||||||
i1.RemoteAssetMetadataEntityCompanion Function({
|
i1.RemoteAssetMetadataEntityCompanion Function({
|
||||||
required String assetId,
|
required String assetId,
|
||||||
required i2.RemoteAssetMetadataKey key,
|
required String key,
|
||||||
required Map<String, Object?> value,
|
required Map<String, Object?> value,
|
||||||
});
|
});
|
||||||
typedef $$RemoteAssetMetadataEntityTableUpdateCompanionBuilder =
|
typedef $$RemoteAssetMetadataEntityTableUpdateCompanionBuilder =
|
||||||
i1.RemoteAssetMetadataEntityCompanion Function({
|
i1.RemoteAssetMetadataEntityCompanion Function({
|
||||||
i0.Value<String> assetId,
|
i0.Value<String> assetId,
|
||||||
i0.Value<i2.RemoteAssetMetadataKey> key,
|
i0.Value<String> key,
|
||||||
i0.Value<Map<String, Object?>> value,
|
i0.Value<Map<String, Object?>> value,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -39,31 +37,31 @@ final class $$RemoteAssetMetadataEntityTableReferences
|
|||||||
super.$_typedResult,
|
super.$_typedResult,
|
||||||
);
|
);
|
||||||
|
|
||||||
static i6.$RemoteAssetEntityTable _assetIdTable(i0.GeneratedDatabase db) =>
|
static i5.$RemoteAssetEntityTable _assetIdTable(i0.GeneratedDatabase db) =>
|
||||||
i7.ReadDatabaseContainer(db)
|
i6.ReadDatabaseContainer(db)
|
||||||
.resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity')
|
.resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity')
|
||||||
.createAlias(
|
.createAlias(
|
||||||
i0.$_aliasNameGenerator(
|
i0.$_aliasNameGenerator(
|
||||||
i7.ReadDatabaseContainer(db)
|
i6.ReadDatabaseContainer(db)
|
||||||
.resultSet<i1.$RemoteAssetMetadataEntityTable>(
|
.resultSet<i1.$RemoteAssetMetadataEntityTable>(
|
||||||
'remote_asset_metadata_entity',
|
'remote_asset_metadata_entity',
|
||||||
)
|
)
|
||||||
.assetId,
|
.assetId,
|
||||||
i7.ReadDatabaseContainer(
|
i6.ReadDatabaseContainer(
|
||||||
db,
|
db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity').id,
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity').id,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
i6.$$RemoteAssetEntityTableProcessedTableManager get assetId {
|
i5.$$RemoteAssetEntityTableProcessedTableManager get assetId {
|
||||||
final $_column = $_itemColumn<String>('asset_id')!;
|
final $_column = $_itemColumn<String>('asset_id')!;
|
||||||
|
|
||||||
final manager = i6
|
final manager = i5
|
||||||
.$$RemoteAssetEntityTableTableManager(
|
.$$RemoteAssetEntityTableTableManager(
|
||||||
$_db,
|
$_db,
|
||||||
i7.ReadDatabaseContainer(
|
i6.ReadDatabaseContainer(
|
||||||
$_db,
|
$_db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
)
|
)
|
||||||
.filter((f) => f.id.sqlEquals($_column));
|
.filter((f) => f.id.sqlEquals($_column));
|
||||||
final item = $_typedResult.readTableOrNull(_assetIdTable($_db));
|
final item = $_typedResult.readTableOrNull(_assetIdTable($_db));
|
||||||
@@ -84,13 +82,18 @@ class $$RemoteAssetMetadataEntityTableFilterComposer
|
|||||||
super.$addJoinBuilderToRootComposer,
|
super.$addJoinBuilderToRootComposer,
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
super.$removeJoinBuilderFromRootComposer,
|
||||||
});
|
});
|
||||||
i0.ColumnWithTypeConverterFilters<
|
i0.ColumnFilters<String> get key => $composableBuilder(
|
||||||
i2.RemoteAssetMetadataKey,
|
|
||||||
i2.RemoteAssetMetadataKey,
|
|
||||||
String
|
|
||||||
>
|
|
||||||
get key => $composableBuilder(
|
|
||||||
column: $table.key,
|
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),
|
builder: (column) => i0.ColumnWithTypeConverterFilters(column),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -99,34 +102,24 @@ class $$RemoteAssetMetadataEntityTableFilterComposer
|
|||||||
builder: (column) => i0.ColumnFilters(column),
|
builder: (column) => i0.ColumnFilters(column),
|
||||||
);
|
);
|
||||||
|
|
||||||
i0.ColumnWithTypeConverterFilters<
|
i5.$$RemoteAssetEntityTableFilterComposer get assetId {
|
||||||
Map<String, Object?>,
|
final i5.$$RemoteAssetEntityTableFilterComposer composer = $composerBuilder(
|
||||||
Map<String, Object>,
|
|
||||||
i3.Uint8List
|
|
||||||
>
|
|
||||||
get value => $composableBuilder(
|
|
||||||
column: $table.value,
|
|
||||||
builder: (column) => i0.ColumnWithTypeConverterFilters(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i6.$$RemoteAssetEntityTableFilterComposer get assetId {
|
|
||||||
final i6.$$RemoteAssetEntityTableFilterComposer composer = $composerBuilder(
|
|
||||||
composer: this,
|
composer: this,
|
||||||
getCurrentColumn: (t) => t.assetId,
|
getCurrentColumn: (t) => t.assetId,
|
||||||
referencedTable: i7.ReadDatabaseContainer(
|
referencedTable: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
getReferencedColumn: (t) => t.id,
|
getReferencedColumn: (t) => t.id,
|
||||||
builder:
|
builder:
|
||||||
(
|
(
|
||||||
joinBuilder, {
|
joinBuilder, {
|
||||||
$addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer,
|
||||||
$removeJoinBuilderFromRootComposer,
|
$removeJoinBuilderFromRootComposer,
|
||||||
}) => i6.$$RemoteAssetEntityTableFilterComposer(
|
}) => i5.$$RemoteAssetEntityTableFilterComposer(
|
||||||
$db: $db,
|
$db: $db,
|
||||||
$table: i7.ReadDatabaseContainer(
|
$table: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
||||||
joinBuilder: joinBuilder,
|
joinBuilder: joinBuilder,
|
||||||
$removeJoinBuilderFromRootComposer:
|
$removeJoinBuilderFromRootComposer:
|
||||||
@@ -152,35 +145,35 @@ class $$RemoteAssetMetadataEntityTableOrderingComposer
|
|||||||
builder: (column) => i0.ColumnOrderings(column),
|
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(
|
i0.ColumnOrderings<String> get cloudId => $composableBuilder(
|
||||||
column: $table.cloudId,
|
column: $table.cloudId,
|
||||||
builder: (column) => i0.ColumnOrderings(column),
|
builder: (column) => i0.ColumnOrderings(column),
|
||||||
);
|
);
|
||||||
|
|
||||||
i0.ColumnOrderings<i3.Uint8List> get value => $composableBuilder(
|
i5.$$RemoteAssetEntityTableOrderingComposer get assetId {
|
||||||
column: $table.value,
|
final i5.$$RemoteAssetEntityTableOrderingComposer composer =
|
||||||
builder: (column) => i0.ColumnOrderings(column),
|
|
||||||
);
|
|
||||||
|
|
||||||
i6.$$RemoteAssetEntityTableOrderingComposer get assetId {
|
|
||||||
final i6.$$RemoteAssetEntityTableOrderingComposer composer =
|
|
||||||
$composerBuilder(
|
$composerBuilder(
|
||||||
composer: this,
|
composer: this,
|
||||||
getCurrentColumn: (t) => t.assetId,
|
getCurrentColumn: (t) => t.assetId,
|
||||||
referencedTable: i7.ReadDatabaseContainer(
|
referencedTable: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
getReferencedColumn: (t) => t.id,
|
getReferencedColumn: (t) => t.id,
|
||||||
builder:
|
builder:
|
||||||
(
|
(
|
||||||
joinBuilder, {
|
joinBuilder, {
|
||||||
$addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer,
|
||||||
$removeJoinBuilderFromRootComposer,
|
$removeJoinBuilderFromRootComposer,
|
||||||
}) => i6.$$RemoteAssetEntityTableOrderingComposer(
|
}) => i5.$$RemoteAssetEntityTableOrderingComposer(
|
||||||
$db: $db,
|
$db: $db,
|
||||||
$table: i7.ReadDatabaseContainer(
|
$table: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
||||||
joinBuilder: joinBuilder,
|
joinBuilder: joinBuilder,
|
||||||
$removeJoinBuilderFromRootComposer:
|
$removeJoinBuilderFromRootComposer:
|
||||||
@@ -201,36 +194,35 @@ class $$RemoteAssetMetadataEntityTableAnnotationComposer
|
|||||||
super.$addJoinBuilderToRootComposer,
|
super.$addJoinBuilderToRootComposer,
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
super.$removeJoinBuilderFromRootComposer,
|
||||||
});
|
});
|
||||||
i0.GeneratedColumnWithTypeConverter<i2.RemoteAssetMetadataKey, String>
|
i0.GeneratedColumn<String> get key =>
|
||||||
get key =>
|
|
||||||
$composableBuilder(column: $table.key, builder: (column) => column);
|
$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 =>
|
i0.GeneratedColumn<String> get cloudId =>
|
||||||
$composableBuilder(column: $table.cloudId, builder: (column) => column);
|
$composableBuilder(column: $table.cloudId, builder: (column) => column);
|
||||||
|
|
||||||
i0.GeneratedColumnWithTypeConverter<Map<String, Object?>, i3.Uint8List>
|
i5.$$RemoteAssetEntityTableAnnotationComposer get assetId {
|
||||||
get value =>
|
final i5.$$RemoteAssetEntityTableAnnotationComposer composer =
|
||||||
$composableBuilder(column: $table.value, builder: (column) => column);
|
|
||||||
|
|
||||||
i6.$$RemoteAssetEntityTableAnnotationComposer get assetId {
|
|
||||||
final i6.$$RemoteAssetEntityTableAnnotationComposer composer =
|
|
||||||
$composerBuilder(
|
$composerBuilder(
|
||||||
composer: this,
|
composer: this,
|
||||||
getCurrentColumn: (t) => t.assetId,
|
getCurrentColumn: (t) => t.assetId,
|
||||||
referencedTable: i7.ReadDatabaseContainer(
|
referencedTable: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
getReferencedColumn: (t) => t.id,
|
getReferencedColumn: (t) => t.id,
|
||||||
builder:
|
builder:
|
||||||
(
|
(
|
||||||
joinBuilder, {
|
joinBuilder, {
|
||||||
$addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer,
|
||||||
$removeJoinBuilderFromRootComposer,
|
$removeJoinBuilderFromRootComposer,
|
||||||
}) => i6.$$RemoteAssetEntityTableAnnotationComposer(
|
}) => i5.$$RemoteAssetEntityTableAnnotationComposer(
|
||||||
$db: $db,
|
$db: $db,
|
||||||
$table: i7.ReadDatabaseContainer(
|
$table: i6.ReadDatabaseContainer(
|
||||||
$db,
|
$db,
|
||||||
).resultSet<i6.$RemoteAssetEntityTable>('remote_asset_entity'),
|
).resultSet<i5.$RemoteAssetEntityTable>('remote_asset_entity'),
|
||||||
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
$addJoinBuilderToRootComposer: $addJoinBuilderToRootComposer,
|
||||||
joinBuilder: joinBuilder,
|
joinBuilder: joinBuilder,
|
||||||
$removeJoinBuilderFromRootComposer:
|
$removeJoinBuilderFromRootComposer:
|
||||||
@@ -284,8 +276,7 @@ class $$RemoteAssetMetadataEntityTableTableManager
|
|||||||
updateCompanionCallback:
|
updateCompanionCallback:
|
||||||
({
|
({
|
||||||
i0.Value<String> assetId = const i0.Value.absent(),
|
i0.Value<String> assetId = const i0.Value.absent(),
|
||||||
i0.Value<i2.RemoteAssetMetadataKey> key =
|
i0.Value<String> key = const i0.Value.absent(),
|
||||||
const i0.Value.absent(),
|
|
||||||
i0.Value<Map<String, Object?>> value = const i0.Value.absent(),
|
i0.Value<Map<String, Object?>> value = const i0.Value.absent(),
|
||||||
}) => i1.RemoteAssetMetadataEntityCompanion(
|
}) => i1.RemoteAssetMetadataEntityCompanion(
|
||||||
assetId: assetId,
|
assetId: assetId,
|
||||||
@@ -295,7 +286,7 @@ class $$RemoteAssetMetadataEntityTableTableManager
|
|||||||
createCompanionCallback:
|
createCompanionCallback:
|
||||||
({
|
({
|
||||||
required String assetId,
|
required String assetId,
|
||||||
required i2.RemoteAssetMetadataKey key,
|
required String key,
|
||||||
required Map<String, Object?> value,
|
required Map<String, Object?> value,
|
||||||
}) => i1.RemoteAssetMetadataEntityCompanion.insert(
|
}) => i1.RemoteAssetMetadataEntityCompanion.insert(
|
||||||
assetId: assetId,
|
assetId: assetId,
|
||||||
@@ -379,7 +370,7 @@ i0.Index get uQRemoteAssetMetadataCloudId => i0.Index(
|
|||||||
'CREATE UNIQUE INDEX IF NOT EXISTS UQ_remote_asset_metadata_cloud_id ON remote_asset_metadata_entity (cloud_id) WHERE("key" = \'mobile-app\')',
|
'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 i4.RemoteAssetMetadataEntity
|
class $RemoteAssetMetadataEntityTable extends i3.RemoteAssetMetadataEntity
|
||||||
with
|
with
|
||||||
i0.TableInfo<
|
i0.TableInfo<
|
||||||
$RemoteAssetMetadataEntityTable,
|
$RemoteAssetMetadataEntityTable,
|
||||||
@@ -403,20 +394,29 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
'REFERENCES remote_asset_entity (id) ON DELETE CASCADE',
|
'REFERENCES remote_asset_entity (id) ON DELETE CASCADE',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
static const i0.VerificationMeta _keyMeta = const i0.VerificationMeta('key');
|
||||||
@override
|
@override
|
||||||
late final i0.GeneratedColumnWithTypeConverter<
|
late final i0.GeneratedColumn<String> key = i0.GeneratedColumn<String>(
|
||||||
i2.RemoteAssetMetadataKey,
|
|
||||||
String
|
|
||||||
>
|
|
||||||
key =
|
|
||||||
i0.GeneratedColumn<String>(
|
|
||||||
'key',
|
'key',
|
||||||
aliasedName,
|
aliasedName,
|
||||||
false,
|
false,
|
||||||
type: i0.DriftSqlType.string,
|
type: i0.DriftSqlType.string,
|
||||||
requiredDuringInsert: true,
|
requiredDuringInsert: true,
|
||||||
).withConverter<i2.RemoteAssetMetadataKey>(
|
);
|
||||||
i1.$RemoteAssetMetadataEntityTable.$converterkey,
|
@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(
|
static const i0.VerificationMeta _cloudIdMeta = const i0.VerificationMeta(
|
||||||
'cloudId',
|
'cloudId',
|
||||||
@@ -427,29 +427,14 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
aliasedName,
|
aliasedName,
|
||||||
false,
|
false,
|
||||||
generatedAs: i0.GeneratedAs(
|
generatedAs: i0.GeneratedAs(
|
||||||
i5.JsonExtensions(key).jsonExtract(r'$.iCloudId'),
|
i4.JsonExtensions(key).jsonExtract(r'$.iCloudId'),
|
||||||
false,
|
true,
|
||||||
),
|
),
|
||||||
type: i0.DriftSqlType.string,
|
type: i0.DriftSqlType.string,
|
||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
);
|
);
|
||||||
@override
|
@override
|
||||||
late final i0.GeneratedColumnWithTypeConverter<
|
List<i0.GeneratedColumn> get $columns => [assetId, key, value, cloudId];
|
||||||
Map<String, Object?>,
|
|
||||||
i3.Uint8List
|
|
||||||
>
|
|
||||||
value =
|
|
||||||
i0.GeneratedColumn<i3.Uint8List>(
|
|
||||||
'value',
|
|
||||||
aliasedName,
|
|
||||||
false,
|
|
||||||
type: i0.DriftSqlType.blob,
|
|
||||||
requiredDuringInsert: true,
|
|
||||||
).withConverter<Map<String, Object?>>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue,
|
|
||||||
);
|
|
||||||
@override
|
|
||||||
List<i0.GeneratedColumn> get $columns => [assetId, key, cloudId, value];
|
|
||||||
@override
|
@override
|
||||||
String get aliasedName => _alias ?? actualTableName;
|
String get aliasedName => _alias ?? actualTableName;
|
||||||
@override
|
@override
|
||||||
@@ -470,6 +455,14 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_assetIdMeta);
|
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')) {
|
if (data.containsKey('cloud_id')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_cloudIdMeta,
|
_cloudIdMeta,
|
||||||
@@ -492,22 +485,20 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
i0.DriftSqlType.string,
|
i0.DriftSqlType.string,
|
||||||
data['${effectivePrefix}asset_id'],
|
data['${effectivePrefix}asset_id'],
|
||||||
)!,
|
)!,
|
||||||
key: i1.$RemoteAssetMetadataEntityTable.$converterkey.fromSql(
|
key: attachedDatabase.typeMapping.read(
|
||||||
attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.string,
|
i0.DriftSqlType.string,
|
||||||
data['${effectivePrefix}key'],
|
data['${effectivePrefix}key'],
|
||||||
)!,
|
)!,
|
||||||
),
|
|
||||||
cloudId: attachedDatabase.typeMapping.read(
|
|
||||||
i0.DriftSqlType.string,
|
|
||||||
data['${effectivePrefix}cloud_id'],
|
|
||||||
)!,
|
|
||||||
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromSql(
|
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromSql(
|
||||||
attachedDatabase.typeMapping.read(
|
attachedDatabase.typeMapping.read(
|
||||||
i0.DriftSqlType.blob,
|
i0.DriftSqlType.blob,
|
||||||
data['${effectivePrefix}value'],
|
data['${effectivePrefix}value'],
|
||||||
)!,
|
)!,
|
||||||
),
|
),
|
||||||
|
cloudId: attachedDatabase.typeMapping.read(
|
||||||
|
i0.DriftSqlType.string,
|
||||||
|
data['${effectivePrefix}cloud_id'],
|
||||||
|
)!,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,10 +507,8 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
return $RemoteAssetMetadataEntityTable(attachedDatabase, alias);
|
return $RemoteAssetMetadataEntityTable(attachedDatabase, alias);
|
||||||
}
|
}
|
||||||
|
|
||||||
static i0.TypeConverter<i2.RemoteAssetMetadataKey, String> $converterkey =
|
static i0.JsonTypeConverter2<Map<String, Object?>, i2.Uint8List, Object?>
|
||||||
const i4.RemoteAssetMetadataKeyConverter();
|
$convertervalue = i3.assetMetadataConverter;
|
||||||
static i0.JsonTypeConverter2<Map<String, Object?>, i3.Uint8List, Object?>
|
|
||||||
$convertervalue = i4.assetMetadataConverter;
|
|
||||||
@override
|
@override
|
||||||
bool get withoutRowId => true;
|
bool get withoutRowId => true;
|
||||||
@override
|
@override
|
||||||
@@ -529,26 +518,22 @@ class $RemoteAssetMetadataEntityTable extends i4.RemoteAssetMetadataEntity
|
|||||||
class RemoteAssetMetadataEntityData extends i0.DataClass
|
class RemoteAssetMetadataEntityData extends i0.DataClass
|
||||||
implements i0.Insertable<i1.RemoteAssetMetadataEntityData> {
|
implements i0.Insertable<i1.RemoteAssetMetadataEntityData> {
|
||||||
final String assetId;
|
final String assetId;
|
||||||
final i2.RemoteAssetMetadataKey key;
|
final String key;
|
||||||
final String cloudId;
|
|
||||||
final Map<String, Object?> value;
|
final Map<String, Object?> value;
|
||||||
|
final String cloudId;
|
||||||
const RemoteAssetMetadataEntityData({
|
const RemoteAssetMetadataEntityData({
|
||||||
required this.assetId,
|
required this.assetId,
|
||||||
required this.key,
|
required this.key,
|
||||||
required this.cloudId,
|
|
||||||
required this.value,
|
required this.value,
|
||||||
|
required this.cloudId,
|
||||||
});
|
});
|
||||||
@override
|
@override
|
||||||
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
Map<String, i0.Expression> toColumns(bool nullToAbsent) {
|
||||||
final map = <String, i0.Expression>{};
|
final map = <String, i0.Expression>{};
|
||||||
map['asset_id'] = i0.Variable<String>(assetId);
|
map['asset_id'] = i0.Variable<String>(assetId);
|
||||||
|
map['key'] = i0.Variable<String>(key);
|
||||||
{
|
{
|
||||||
map['key'] = i0.Variable<String>(
|
map['value'] = i0.Variable<i2.Uint8List>(
|
||||||
i1.$RemoteAssetMetadataEntityTable.$converterkey.toSql(key),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
map['value'] = i0.Variable<i3.Uint8List>(
|
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value),
|
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -562,11 +547,11 @@ class RemoteAssetMetadataEntityData extends i0.DataClass
|
|||||||
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
||||||
return RemoteAssetMetadataEntityData(
|
return RemoteAssetMetadataEntityData(
|
||||||
assetId: serializer.fromJson<String>(json['assetId']),
|
assetId: serializer.fromJson<String>(json['assetId']),
|
||||||
key: serializer.fromJson<i2.RemoteAssetMetadataKey>(json['key']),
|
key: serializer.fromJson<String>(json['key']),
|
||||||
cloudId: serializer.fromJson<String>(json['cloudId']),
|
|
||||||
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromJson(
|
value: i1.$RemoteAssetMetadataEntityTable.$convertervalue.fromJson(
|
||||||
serializer.fromJson<Object?>(json['value']),
|
serializer.fromJson<Object?>(json['value']),
|
||||||
),
|
),
|
||||||
|
cloudId: serializer.fromJson<String>(json['cloudId']),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
@@ -574,52 +559,52 @@ class RemoteAssetMetadataEntityData extends i0.DataClass
|
|||||||
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
serializer ??= i0.driftRuntimeOptions.defaultSerializer;
|
||||||
return <String, dynamic>{
|
return <String, dynamic>{
|
||||||
'assetId': serializer.toJson<String>(assetId),
|
'assetId': serializer.toJson<String>(assetId),
|
||||||
'key': serializer.toJson<i2.RemoteAssetMetadataKey>(key),
|
'key': serializer.toJson<String>(key),
|
||||||
'cloudId': serializer.toJson<String>(cloudId),
|
|
||||||
'value': serializer.toJson<Object?>(
|
'value': serializer.toJson<Object?>(
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toJson(value),
|
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toJson(value),
|
||||||
),
|
),
|
||||||
|
'cloudId': serializer.toJson<String>(cloudId),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
i1.RemoteAssetMetadataEntityData copyWith({
|
i1.RemoteAssetMetadataEntityData copyWith({
|
||||||
String? assetId,
|
String? assetId,
|
||||||
i2.RemoteAssetMetadataKey? key,
|
String? key,
|
||||||
String? cloudId,
|
|
||||||
Map<String, Object?>? value,
|
Map<String, Object?>? value,
|
||||||
|
String? cloudId,
|
||||||
}) => i1.RemoteAssetMetadataEntityData(
|
}) => i1.RemoteAssetMetadataEntityData(
|
||||||
assetId: assetId ?? this.assetId,
|
assetId: assetId ?? this.assetId,
|
||||||
key: key ?? this.key,
|
key: key ?? this.key,
|
||||||
cloudId: cloudId ?? this.cloudId,
|
|
||||||
value: value ?? this.value,
|
value: value ?? this.value,
|
||||||
|
cloudId: cloudId ?? this.cloudId,
|
||||||
);
|
);
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return (StringBuffer('RemoteAssetMetadataEntityData(')
|
return (StringBuffer('RemoteAssetMetadataEntityData(')
|
||||||
..write('assetId: $assetId, ')
|
..write('assetId: $assetId, ')
|
||||||
..write('key: $key, ')
|
..write('key: $key, ')
|
||||||
..write('cloudId: $cloudId, ')
|
..write('value: $value, ')
|
||||||
..write('value: $value')
|
..write('cloudId: $cloudId')
|
||||||
..write(')'))
|
..write(')'))
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(assetId, key, cloudId, value);
|
int get hashCode => Object.hash(assetId, key, value, cloudId);
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) ||
|
||||||
(other is i1.RemoteAssetMetadataEntityData &&
|
(other is i1.RemoteAssetMetadataEntityData &&
|
||||||
other.assetId == this.assetId &&
|
other.assetId == this.assetId &&
|
||||||
other.key == this.key &&
|
other.key == this.key &&
|
||||||
other.cloudId == this.cloudId &&
|
other.value == this.value &&
|
||||||
other.value == this.value);
|
other.cloudId == this.cloudId);
|
||||||
}
|
}
|
||||||
|
|
||||||
class RemoteAssetMetadataEntityCompanion
|
class RemoteAssetMetadataEntityCompanion
|
||||||
extends i0.UpdateCompanion<i1.RemoteAssetMetadataEntityData> {
|
extends i0.UpdateCompanion<i1.RemoteAssetMetadataEntityData> {
|
||||||
final i0.Value<String> assetId;
|
final i0.Value<String> assetId;
|
||||||
final i0.Value<i2.RemoteAssetMetadataKey> key;
|
final i0.Value<String> key;
|
||||||
final i0.Value<Map<String, Object?>> value;
|
final i0.Value<Map<String, Object?>> value;
|
||||||
const RemoteAssetMetadataEntityCompanion({
|
const RemoteAssetMetadataEntityCompanion({
|
||||||
this.assetId = const i0.Value.absent(),
|
this.assetId = const i0.Value.absent(),
|
||||||
@@ -628,7 +613,7 @@ class RemoteAssetMetadataEntityCompanion
|
|||||||
});
|
});
|
||||||
RemoteAssetMetadataEntityCompanion.insert({
|
RemoteAssetMetadataEntityCompanion.insert({
|
||||||
required String assetId,
|
required String assetId,
|
||||||
required i2.RemoteAssetMetadataKey key,
|
required String key,
|
||||||
required Map<String, Object?> value,
|
required Map<String, Object?> value,
|
||||||
}) : assetId = i0.Value(assetId),
|
}) : assetId = i0.Value(assetId),
|
||||||
key = i0.Value(key),
|
key = i0.Value(key),
|
||||||
@@ -636,7 +621,7 @@ class RemoteAssetMetadataEntityCompanion
|
|||||||
static i0.Insertable<i1.RemoteAssetMetadataEntityData> custom({
|
static i0.Insertable<i1.RemoteAssetMetadataEntityData> custom({
|
||||||
i0.Expression<String>? assetId,
|
i0.Expression<String>? assetId,
|
||||||
i0.Expression<String>? key,
|
i0.Expression<String>? key,
|
||||||
i0.Expression<i3.Uint8List>? value,
|
i0.Expression<i2.Uint8List>? value,
|
||||||
}) {
|
}) {
|
||||||
return i0.RawValuesInsertable({
|
return i0.RawValuesInsertable({
|
||||||
if (assetId != null) 'asset_id': assetId,
|
if (assetId != null) 'asset_id': assetId,
|
||||||
@@ -647,7 +632,7 @@ class RemoteAssetMetadataEntityCompanion
|
|||||||
|
|
||||||
i1.RemoteAssetMetadataEntityCompanion copyWith({
|
i1.RemoteAssetMetadataEntityCompanion copyWith({
|
||||||
i0.Value<String>? assetId,
|
i0.Value<String>? assetId,
|
||||||
i0.Value<i2.RemoteAssetMetadataKey>? key,
|
i0.Value<String>? key,
|
||||||
i0.Value<Map<String, Object?>>? value,
|
i0.Value<Map<String, Object?>>? value,
|
||||||
}) {
|
}) {
|
||||||
return i1.RemoteAssetMetadataEntityCompanion(
|
return i1.RemoteAssetMetadataEntityCompanion(
|
||||||
@@ -664,12 +649,10 @@ class RemoteAssetMetadataEntityCompanion
|
|||||||
map['asset_id'] = i0.Variable<String>(assetId.value);
|
map['asset_id'] = i0.Variable<String>(assetId.value);
|
||||||
}
|
}
|
||||||
if (key.present) {
|
if (key.present) {
|
||||||
map['key'] = i0.Variable<String>(
|
map['key'] = i0.Variable<String>(key.value);
|
||||||
i1.$RemoteAssetMetadataEntityTable.$converterkey.toSql(key.value),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
if (value.present) {
|
if (value.present) {
|
||||||
map['value'] = i0.Variable<i3.Uint8List>(
|
map['value'] = i0.Variable<i2.Uint8List>(
|
||||||
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value.value),
|
i1.$RemoteAssetMetadataEntityTable.$convertervalue.toSql(value.value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import 'dart:convert';
|
|||||||
|
|
||||||
import 'package:drift/drift.dart';
|
import 'package:drift/drift.dart';
|
||||||
import 'package:immich_mobile/domain/models/album/album.model.dart';
|
import 'package:immich_mobile/domain/models/album/album.model.dart';
|
||||||
import 'package:immich_mobile/domain/models/asset/asset_metadata.model.dart';
|
|
||||||
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
||||||
import 'package:immich_mobile/domain/models/memory.model.dart';
|
import 'package:immich_mobile/domain/models/memory.model.dart';
|
||||||
import 'package:immich_mobile/domain/models/user_metadata.model.dart';
|
import 'package:immich_mobile/domain/models/user_metadata.model.dart';
|
||||||
@@ -22,7 +21,7 @@ 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, AssetMetadataKey;
|
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, AssetMetadataKey;
|
||||||
|
|
||||||
class SyncStreamRepository extends DriftDatabaseRepository {
|
class SyncStreamRepository extends DriftDatabaseRepository {
|
||||||
@@ -201,8 +200,8 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
for (final metadata in data) {
|
for (final metadata in data) {
|
||||||
final companion = RemoteAssetMetadataEntityCompanion(
|
final companion = RemoteAssetMetadataEntityCompanion(
|
||||||
key: Value(metadata.key.toRemoteAssetMetadataKey()),
|
key: Value(metadata.key.value),
|
||||||
value: Value(jsonDecode(metadata.value as String)),
|
value: Value(metadata.value as Map<String, Object?>),
|
||||||
);
|
);
|
||||||
|
|
||||||
batch.insert(
|
batch.insert(
|
||||||
@@ -613,10 +612,3 @@ extension on String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension on api.AssetMetadataKey {
|
|
||||||
RemoteAssetMetadataKey toRemoteAssetMetadataKey() => switch (this) {
|
|
||||||
api.AssetMetadataKey.mobileApp => RemoteAssetMetadataKey.mobileApp,
|
|
||||||
_ => throw Exception('Unknown AssetMetadataKey value: $this'),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -365,7 +365,12 @@ class UploadService {
|
|||||||
'fileModifiedAt': modifiedAt.toUtc().toIso8601String(),
|
'fileModifiedAt': modifiedAt.toUtc().toIso8601String(),
|
||||||
'isFavorite': isFavorite?.toString() ?? 'false',
|
'isFavorite': isFavorite?.toString() ?? 'false',
|
||||||
'duration': '0',
|
'duration': '0',
|
||||||
'metadata': RemoteAssetMetadata(cloudId: cloudId).toJson(),
|
'metadata': jsonEncode([
|
||||||
|
RemoteAssetMetadataItem(
|
||||||
|
key: RemoteAssetMetadataKey.mobileApp,
|
||||||
|
value: RemoteAssetMobileAppMetadata(cloudId: cloudId).toMap(),
|
||||||
|
),
|
||||||
|
]),
|
||||||
if (fields != null) ...fields,
|
if (fields != null) ...fields,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user