mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-06 19:19:28 +00:00
39 lines
1 KiB
Dart
39 lines
1 KiB
Dart
import 'package:isar/isar.dart';
|
|
|
|
part 'image.g.dart';
|
|
|
|
/// Represents a cover image for a library item
|
|
///
|
|
/// stores 2 paths, one is thumbnail and the other is the full size image
|
|
/// both are optional
|
|
/// also stores last fetched date for the image
|
|
/// Id is passed as a parameter to the collection annotation (the lib_item_id)
|
|
/// also index the id
|
|
/// This is because the image is a part of the library item and the library item
|
|
/// is the parent of the image
|
|
@Collection(ignore: {'path'})
|
|
@Name('CacheImage')
|
|
class Image {
|
|
@Id()
|
|
int id;
|
|
|
|
String? thumbnailPath;
|
|
String? imagePath;
|
|
DateTime lastSaved;
|
|
|
|
Image({
|
|
required this.id,
|
|
this.thumbnailPath,
|
|
this.imagePath,
|
|
}) : lastSaved = DateTime.now();
|
|
|
|
/// returns the path to the image
|
|
String? get path => thumbnailPath ?? imagePath;
|
|
|
|
/// automatically updates the last fetched date when saving a new path
|
|
void updatePath(String? thumbnailPath, String? imagePath) async {
|
|
this.thumbnailPath = thumbnailPath;
|
|
this.imagePath = imagePath;
|
|
lastSaved = DateTime.now();
|
|
}
|
|
}
|