2025-04-04 01:12:35 +05:30
|
|
|
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;
|
|
|
|
|
|
2025-07-29 00:34:03 +05:30
|
|
|
const DeviceAssetEntity({required this.assetId, required this.hash, required this.modifiedTime});
|
2025-04-04 01:12:35 +05:30
|
|
|
|
2025-07-29 00:34:03 +05:30
|
|
|
DeviceAsset toModel() => DeviceAsset(assetId: assetId, hash: Uint8List.fromList(hash), modifiedTime: modifiedTime);
|
2025-04-04 01:12:35 +05:30
|
|
|
|
2025-07-29 00:34:03 +05:30
|
|
|
static DeviceAssetEntity fromDto(DeviceAsset dto) =>
|
|
|
|
|
DeviceAssetEntity(assetId: dto.assetId, hash: dto.hash, modifiedTime: dto.modifiedTime);
|
2025-04-04 01:12:35 +05:30
|
|
|
}
|