mirror of
https://github.com/immich-app/immich.git
synced 2025-05-24 01:12:58 -04:00
* refactor: device asset entity to use modified time * chore: cleanup * refactor: remove album media dependency from hashservice * refactor: return updated copy of asset * add hash service tests * chore: rename hash batch constants * chore: log the number of assets processed during migration * chore: more logs * refactor: use lookup and more tests * use sort approach * refactor hash service to use for loop instead * refactor: rename to getByIds --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
37 lines
944 B
Dart
37 lines
944 B
Dart
import 'dart:typed_data';
|
|
|
|
import 'package:immich_mobile/domain/models/device_asset.model.dart';
|
|
import 'package:immich_mobile/utils/hash.dart';
|
|
import 'package:isar/isar.dart';
|
|
|
|
part 'device_asset.entity.g.dart';
|
|
|
|
@Collection(inheritance: false)
|
|
class DeviceAssetEntity {
|
|
Id get id => fastHash(assetId);
|
|
|
|
@Index(replace: true, unique: true, type: IndexType.hash)
|
|
final String assetId;
|
|
@Index(unique: false, type: IndexType.hash)
|
|
final List<byte> hash;
|
|
final DateTime modifiedTime;
|
|
|
|
const DeviceAssetEntity({
|
|
required this.assetId,
|
|
required this.hash,
|
|
required this.modifiedTime,
|
|
});
|
|
|
|
DeviceAsset toModel() => DeviceAsset(
|
|
assetId: assetId,
|
|
hash: Uint8List.fromList(hash),
|
|
modifiedTime: modifiedTime,
|
|
);
|
|
|
|
static DeviceAssetEntity fromDto(DeviceAsset dto) => DeviceAssetEntity(
|
|
assetId: dto.assetId,
|
|
hash: dto.hash,
|
|
modifiedTime: dto.modifiedTime,
|
|
);
|
|
}
|