mirror of
https://github.com/immich-app/immich.git
synced 2025-10-17 03:50:35 -04:00
* wip * album creation * fix: album api repository no invalidating after logging out * add linkedRemoteAlbumId column and migration * link/unlink remote album * logic to find and add new assets to album * pr feedback * add toggle option to backup option page * refactor: provider > service * rename * Handle page pop manually * UI feedback for user creation and sync linked album * uncomment migration * remove unused method
39 lines
1.4 KiB
Dart
39 lines
1.4 KiB
Dart
import 'package:drift/drift.dart';
|
|
import 'package:immich_mobile/domain/models/album/local_album.model.dart';
|
|
import 'package:immich_mobile/infrastructure/entities/local_album.entity.drift.dart';
|
|
import 'package:immich_mobile/infrastructure/entities/remote_album.entity.dart';
|
|
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
|
|
|
|
class LocalAlbumEntity extends Table with DriftDefaultsMixin {
|
|
const LocalAlbumEntity();
|
|
|
|
TextColumn get id => text()();
|
|
TextColumn get name => text()();
|
|
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
|
|
IntColumn get backupSelection => intEnum<BackupSelection>()();
|
|
BoolColumn get isIosSharedAlbum => boolean().withDefault(const Constant(false))();
|
|
|
|
// // Linked album for putting assets to the remote album after finished uploading
|
|
TextColumn get linkedRemoteAlbumId =>
|
|
text().references(RemoteAlbumEntity, #id, onDelete: KeyAction.setNull).nullable()();
|
|
|
|
// Used for mark & sweep
|
|
BoolColumn get marker_ => boolean().nullable()();
|
|
|
|
@override
|
|
Set<Column> get primaryKey => {id};
|
|
}
|
|
|
|
extension LocalAlbumEntityDataHelper on LocalAlbumEntityData {
|
|
LocalAlbum toDto({int assetCount = 0}) {
|
|
return LocalAlbum(
|
|
id: id,
|
|
name: name,
|
|
updatedAt: updatedAt,
|
|
assetCount: assetCount,
|
|
backupSelection: backupSelection,
|
|
linkedRemoteAlbumId: linkedRemoteAlbumId,
|
|
);
|
|
}
|
|
}
|