refactor: migrate asset job status entity (#17560)

This commit is contained in:
Daniel Dietzler 2025-04-14 12:21:56 +02:00 committed by GitHub
parent 8b00578c7b
commit 184e142d87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 15 deletions

View File

@ -1,5 +1,5 @@
import { Selectable } from 'kysely'; import { Selectable } from 'kysely';
import { Exif as DatabaseExif } from 'src/db'; import { AssetJobStatus as DatabaseAssetJobStatus, Exif as DatabaseExif } from 'src/db';
import { AssetEntity } from 'src/entities/asset.entity'; import { AssetEntity } from 'src/entities/asset.entity';
import { import {
AlbumUserRole, AlbumUserRole,
@ -249,6 +249,10 @@ export type AssetFace = {
person?: Person | null; person?: Person | null;
}; };
export type AssetJobStatus = Selectable<DatabaseAssetJobStatus> & {
asset: AssetEntity;
};
const userColumns = ['id', 'name', 'email', 'profileImagePath', 'profileChangedAt'] as const; const userColumns = ['id', 'name', 'email', 'profileImagePath', 'profileChangedAt'] as const;
export const columns = { export const columns = {

View File

@ -1,11 +0,0 @@
import { AssetEntity } from 'src/entities/asset.entity';
export class AssetJobStatusEntity {
asset!: AssetEntity;
assetId!: string;
facesRecognizedAt!: Date | null;
metadataExtractedAt!: Date | null;
duplicatesDetectedAt!: Date | null;
previewAt!: Date | null;
thumbnailAt!: Date | null;
}

View File

@ -1,9 +1,8 @@
import { DeduplicateJoinsPlugin, ExpressionBuilder, Kysely, SelectQueryBuilder, sql } from 'kysely'; import { DeduplicateJoinsPlugin, ExpressionBuilder, Kysely, SelectQueryBuilder, sql } from 'kysely';
import { jsonArrayFrom, jsonObjectFrom } from 'kysely/helpers/postgres'; import { jsonArrayFrom, jsonObjectFrom } from 'kysely/helpers/postgres';
import { AssetFace, AssetFile, Exif, Stack, Tag, User } from 'src/database'; import { AssetFace, AssetFile, AssetJobStatus, Exif, Stack, Tag, User } from 'src/database';
import { DB } from 'src/db'; import { DB } from 'src/db';
import { AlbumEntity } from 'src/entities/album.entity'; import { AlbumEntity } from 'src/entities/album.entity';
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity'; import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { AssetFileType, AssetStatus, AssetType } from 'src/enum'; import { AssetFileType, AssetStatus, AssetType } from 'src/enum';
import { TimeBucketSize } from 'src/repositories/asset.repository'; import { TimeBucketSize } from 'src/repositories/asset.repository';
@ -50,7 +49,7 @@ export class AssetEntity {
faces!: AssetFace[]; faces!: AssetFace[];
stackId?: string | null; stackId?: string | null;
stack?: Stack | null; stack?: Stack | null;
jobStatus?: AssetJobStatusEntity; jobStatus?: AssetJobStatus;
duplicateId!: string | null; duplicateId!: string | null;
} }