feat(web): manual face tagging and deletion (#16062)

This commit is contained in:
Alex
2025-02-21 09:58:25 -06:00
committed by GitHub
parent 94c0e8253a
commit 007eaaceb9
35 changed files with 2054 additions and 106 deletions

View File

@@ -20,8 +20,9 @@ export const faceStub = {
imageWidth: 1024,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId1', embedding: '[1, 2, 3, 4]' },
deletedAt: new Date(),
}),
primaryFace1: Object.freeze<NonNullableProperty<AssetFaceEntity>>({
primaryFace1: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId2',
assetId: assetStub.image.id,
asset: assetStub.image,
@@ -35,8 +36,9 @@ export const faceStub = {
imageWidth: 1024,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId2', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
mergeFace1: Object.freeze<NonNullableProperty<AssetFaceEntity>>({
mergeFace1: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId3',
assetId: assetStub.image.id,
asset: assetStub.image,
@@ -50,8 +52,9 @@ export const faceStub = {
imageWidth: 1024,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId3', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
start: Object.freeze<NonNullableProperty<AssetFaceEntity>>({
start: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId5',
assetId: assetStub.image.id,
asset: assetStub.image,
@@ -65,8 +68,9 @@ export const faceStub = {
imageWidth: 2160,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId5', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
middle: Object.freeze<NonNullableProperty<AssetFaceEntity>>({
middle: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId6',
assetId: assetStub.image.id,
asset: assetStub.image,
@@ -80,8 +84,9 @@ export const faceStub = {
imageWidth: 400,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId6', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
end: Object.freeze<NonNullableProperty<AssetFaceEntity>>({
end: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId7',
assetId: assetStub.image.id,
asset: assetStub.image,
@@ -95,6 +100,7 @@ export const faceStub = {
imageWidth: 500,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId7', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
noPerson1: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId8',
@@ -110,6 +116,7 @@ export const faceStub = {
imageWidth: 1024,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId8', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
noPerson2: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId9',
@@ -125,6 +132,7 @@ export const faceStub = {
imageWidth: 1024,
sourceType: SourceType.MACHINE_LEARNING,
faceSearch: { faceId: 'assetFaceId9', embedding: '[1, 2, 3, 4]' },
deletedAt: null,
}),
fromExif1: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId9',
@@ -139,6 +147,7 @@ export const faceStub = {
imageHeight: 500,
imageWidth: 400,
sourceType: SourceType.EXIF,
deletedAt: null,
}),
fromExif2: Object.freeze<AssetFaceEntity>({
id: 'assetFaceId9',
@@ -153,5 +162,6 @@ export const faceStub = {
imageHeight: 1024,
imageWidth: 1024,
sourceType: SourceType.EXIF,
deletedAt: null,
}),
};

View File

@@ -33,5 +33,9 @@ export const newPersonRepositoryMock = (): Mocked<RepositoryInterface<PersonRepo
getFaceByIdWithAssets: vitest.fn(),
getNumberOfPeople: vitest.fn(),
getLatestFaceDate: vitest.fn(),
createAssetFace: vitest.fn(),
deleteAssetFace: vitest.fn(),
softDeleteAssetFaces: vitest.fn(),
};
};