mc_gallery/lib/features/home/data/models/image_model.dart

50 lines
1.1 KiB
Dart
Raw Normal View History

2022-12-25 00:55:53 +00:00
import '../dtos/image_model_dto.dart';
2022-12-20 20:52:24 +00:00
class ImageModel {
2022-12-20 19:29:46 +00:00
const ImageModel({
required this.uri,
2022-12-20 20:52:24 +00:00
required this.imageIndex,
2022-12-20 19:29:46 +00:00
required this.imageName,
2022-12-25 00:55:53 +00:00
required this.isFavourite,
2022-12-20 19:29:46 +00:00
});
/// An image's target [Uri].
///
/// Storing an image's [ByteData] is more expensive, memory-wise.
final Uri uri;
/// A unique identifier that can be used for indexing the image.
2022-12-20 20:52:24 +00:00
final int imageIndex;
2022-12-20 19:29:46 +00:00
/// Given name of the image.
final String imageName;
2022-12-25 00:55:53 +00:00
/// Whether the image was 'Starred' ot not.
final bool isFavourite;
factory ImageModel.fromDto({
required ImageModelDTO imageModelDto,
required bool isFavourite,
}) =>
ImageModel(
uri: imageModelDto.uri,
imageIndex: imageModelDto.imageIndex,
imageName: imageModelDto.imageName,
isFavourite: isFavourite,
);
2022-12-25 00:55:53 +00:00
ImageModel copyWith({
Uri? uri,
int? imageIndex,
String? imageName,
bool? isFavourite,
}) {
return ImageModel(
uri: uri ?? this.uri,
imageIndex: imageIndex ?? this.imageIndex,
imageName: imageName ?? this.imageName,
isFavourite: isFavourite ?? this.isFavourite,
);
}
2022-12-20 19:29:46 +00:00
}