mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05: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.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:drift/drift.dart';
 | 
						|
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
 | 
						|
import 'package:immich_mobile/infrastructure/entities/local_asset.entity.drift.dart';
 | 
						|
import 'package:immich_mobile/infrastructure/utils/asset.mixin.dart';
 | 
						|
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
 | 
						|
 | 
						|
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_local_asset_checksum ON local_asset_entity (checksum)')
 | 
						|
class LocalAssetEntity extends Table with DriftDefaultsMixin, AssetEntityMixin {
 | 
						|
  const LocalAssetEntity();
 | 
						|
 | 
						|
  TextColumn get id => text()();
 | 
						|
  TextColumn get checksum => text().nullable()();
 | 
						|
 | 
						|
  // Only used during backup to mirror the favorite status of the asset in the server
 | 
						|
  BoolColumn get isFavorite => boolean().withDefault(const Constant(false))();
 | 
						|
 | 
						|
  IntColumn get orientation => integer().withDefault(const Constant(0))();
 | 
						|
 | 
						|
  @override
 | 
						|
  Set<Column> get primaryKey => {id};
 | 
						|
}
 | 
						|
 | 
						|
extension LocalAssetEntityDataDomainExtension on LocalAssetEntityData {
 | 
						|
  LocalAsset toDto() => LocalAsset(
 | 
						|
    id: id,
 | 
						|
    name: name,
 | 
						|
    checksum: checksum,
 | 
						|
    type: type,
 | 
						|
    createdAt: createdAt,
 | 
						|
    updatedAt: updatedAt,
 | 
						|
    durationInSeconds: durationInSeconds,
 | 
						|
    isFavorite: isFavorite,
 | 
						|
    height: height,
 | 
						|
    width: width,
 | 
						|
    remoteId: null,
 | 
						|
    orientation: orientation,
 | 
						|
  );
 | 
						|
}
 |