Files
immich/mobile/lib/domain/models/asset/local_asset.model.dart
T
2025-06-16 12:25:27 -05:00

93 lines
2.4 KiB
Dart

part of 'base_asset.model.dart';
class LocalAsset extends BaseAsset {
final String id;
final String? remoteId;
const LocalAsset({
required this.id,
this.remoteId,
required super.name,
super.checksum,
required super.type,
required super.createdAt,
required super.updatedAt,
super.width,
super.height,
super.durationInSeconds,
super.isFavorite = false,
super.isLivePhoto = false,
super.livePhotoImageUploaded = false,
super.livePhotoVideoUploaded = false,
});
@override
AssetState get storage =>
remoteId == null ? AssetState.local : AssetState.merged;
@override
String toString() {
return '''LocalAsset {
id: $id,
name: $name,
type: $type,
createdAt: $createdAt,
updatedAt: $updatedAt,
width: ${width ?? "<NA>"},
height: ${height ?? "<NA>"},
durationInSeconds: ${durationInSeconds ?? "<NA>"},
remoteId: ${remoteId ?? "<NA>"}
isFavorite: $isFavorite,
isLivePhoto: $isLivePhoto,
livePhotoImageUploaded: $livePhotoImageUploaded,
livePhotoVideoUploaded: $livePhotoVideoUploaded,
}''';
}
@override
bool operator ==(Object other) {
if (other is! LocalAsset) return false;
if (identical(this, other)) return true;
return super == other && id == other.id && remoteId == other.remoteId;
}
@override
int get hashCode => super.hashCode ^ id.hashCode ^ remoteId.hashCode;
LocalAsset copyWith({
String? id,
String? remoteId,
String? name,
String? checksum,
AssetType? type,
DateTime? createdAt,
DateTime? updatedAt,
int? width,
int? height,
int? durationInSeconds,
bool? isFavorite,
bool? isLivePhoto,
bool? livePhotoImageUploaded,
bool? livePhotoVideoUploaded,
}) {
return LocalAsset(
id: id ?? this.id,
remoteId: remoteId ?? this.remoteId,
name: name ?? this.name,
checksum: checksum ?? this.checksum,
type: type ?? this.type,
createdAt: createdAt ?? this.createdAt,
updatedAt: updatedAt ?? this.updatedAt,
width: width ?? this.width,
height: height ?? this.height,
durationInSeconds: durationInSeconds ?? this.durationInSeconds,
isFavorite: isFavorite ?? this.isFavorite,
isLivePhoto: isLivePhoto ?? this.isLivePhoto,
livePhotoImageUploaded:
livePhotoImageUploaded ?? this.livePhotoImageUploaded,
livePhotoVideoUploaded:
livePhotoVideoUploaded ?? this.livePhotoVideoUploaded,
);
}
}