mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05: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,
 | 
						|
      );
 | 
						|
}
 |