mirror of
https://github.com/immich-app/immich.git
synced 2026-07-04 03:45:59 -07:00
2ddaf6a611
* fix: periodically execute pragma optimize * fix: indexes on remote_asset_entity * regen files --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex <alex.tran1502@gmail.com>
43 lines
1.5 KiB
Dart
43 lines
1.5 KiB
Dart
import 'package:drift/drift.dart';
|
|
import 'package:immich_mobile/infrastructure/entities/person.entity.dart';
|
|
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.dart';
|
|
import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart';
|
|
|
|
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_asset_face_person_id ON asset_face_entity (person_id)')
|
|
@TableIndex.sql('CREATE INDEX IF NOT EXISTS idx_asset_face_asset_id ON asset_face_entity (asset_id)')
|
|
@TableIndex.sql('''
|
|
CREATE INDEX IF NOT EXISTS idx_asset_face_visible_person
|
|
ON asset_face_entity (person_id, asset_id)
|
|
WHERE is_visible = 1 AND deleted_at IS NULL
|
|
''')
|
|
class AssetFaceEntity extends Table with DriftDefaultsMixin {
|
|
const AssetFaceEntity();
|
|
|
|
TextColumn get id => text()();
|
|
|
|
TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)();
|
|
|
|
TextColumn get personId => text().nullable().references(PersonEntity, #id, onDelete: KeyAction.setNull)();
|
|
|
|
IntColumn get imageWidth => integer()();
|
|
|
|
IntColumn get imageHeight => integer()();
|
|
|
|
IntColumn get boundingBoxX1 => integer()();
|
|
|
|
IntColumn get boundingBoxY1 => integer()();
|
|
|
|
IntColumn get boundingBoxX2 => integer()();
|
|
|
|
IntColumn get boundingBoxY2 => integer()();
|
|
|
|
TextColumn get sourceType => text()();
|
|
|
|
BoolColumn get isVisible => boolean().withDefault(const Constant(true))();
|
|
|
|
DateTimeColumn get deletedAt => dateTime().nullable()();
|
|
|
|
@override
|
|
Set<Column> get primaryKey => {id};
|
|
}
|