From 83b7ebbdd1d9db2d19fbcfd115cbf5454f3e6411 Mon Sep 17 00:00:00 2001 From: Yaros Date: Mon, 2 Feb 2026 12:40:36 +0100 Subject: [PATCH] refactor: refactored query impl suggestions --- .../repositories/people.repository.dart | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/mobile/lib/infrastructure/repositories/people.repository.dart b/mobile/lib/infrastructure/repositories/people.repository.dart index 97b7bab7e3..8f42b15433 100644 --- a/mobile/lib/infrastructure/repositories/people.repository.dart +++ b/mobile/lib/infrastructure/repositories/people.repository.dart @@ -20,28 +20,28 @@ class DriftPeopleRepository extends DriftDatabaseRepository { } Future> getAllPeople() async { + final people = _db.personEntity; + final faces = _db.assetFaceEntity; + final assets = _db.remoteAssetEntity; + final query = - _db.select(_db.personEntity).join([ - innerJoin(_db.assetFaceEntity, _db.assetFaceEntity.personId.equalsExp(_db.personEntity.id)), - innerJoin(_db.remoteAssetEntity, _db.remoteAssetEntity.id.equalsExp(_db.assetFaceEntity.assetId)), + _db.select(people).join([ + innerJoin(faces, faces.personId.equalsExp(people.id)), + innerJoin(assets, assets.id.equalsExp(faces.assetId)), ]) - ..where(_db.personEntity.isHidden.equals(false)) - ..where(_db.remoteAssetEntity.deletedAt.isNull()) - ..where(_db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline)) - ..groupBy( - [_db.personEntity.id], - having: Expression.or([ - _db.assetFaceEntity.id.count().isBiggerOrEqualValue(3), - _db.personEntity.name.equals('').not(), - ]), + ..where( + people.isHidden.equals(false) & + assets.deletedAt.isNull() & + assets.visibility.equalsValue(AssetVisibility.timeline), ) + ..groupBy([people.id], having: faces.id.count().isBiggerOrEqualValue(3) | people.name.equals('').not()) ..orderBy([ - OrderingTerm(expression: _db.personEntity.name.equals('').not(), mode: OrderingMode.desc), - OrderingTerm(expression: _db.assetFaceEntity.id.count(), mode: OrderingMode.desc), + OrderingTerm(expression: people.name.equals('').not(), mode: OrderingMode.desc), + OrderingTerm(expression: faces.id.count(), mode: OrderingMode.desc), ]); return query.map((row) { - final person = row.readTable(_db.personEntity); + final person = row.readTable(people); return person.toDto(); }).get(); }