import 'package:drift/drift.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/infrastructure/entities/exif.entity.drift.dart'; import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:maplibre_gl/maplibre_gl.dart'; class DriftRemoteAssetRepository extends DriftDatabaseRepository { final Drift _db; const DriftRemoteAssetRepository(this._db) : super(_db); Future updateFavorite(List ids, bool isFavorite) { return _db.batch((batch) async { for (final id in ids) { batch.update( _db.remoteAssetEntity, RemoteAssetEntityCompanion(isFavorite: Value(isFavorite)), where: (e) => e.id.equals(id), ); } }); } Future updateVisibility(List ids, AssetVisibility visibility) { return _db.batch((batch) async { for (final id in ids) { batch.update( _db.remoteAssetEntity, RemoteAssetEntityCompanion(visibility: Value(visibility)), where: (e) => e.id.equals(id), ); } }); } Future updateLocation(List ids, LatLng location) { return _db.batch((batch) async { for (final id in ids) { batch.update( _db.remoteExifEntity, RemoteExifEntityCompanion( latitude: Value(location.latitude), longitude: Value(location.longitude), ), where: (e) => e.assetId.equals(id), ); } }); } }