import { AssetFaceId } from '@app/domain'; import { AssetEntity, AssetFaceEntity, PersonEntity } from '@app/infra/entities'; export const IPersonRepository = 'IPersonRepository'; export interface PersonSearchOptions { minimumFaceCount: number; } export interface UpdateFacesData { oldPersonId: string; newPersonId: string; } export interface IPersonRepository { getAll(userId: string, options: PersonSearchOptions): Promise; getAllWithoutFaces(): Promise; getById(userId: string, personId: string): Promise; getAssets(userId: string, personId: string): Promise; prepareReassignFaces(data: UpdateFacesData): Promise; reassignFaces(data: UpdateFacesData): Promise; create(entity: Partial): Promise; update(entity: Partial): Promise; delete(entity: PersonEntity): Promise; deleteAll(): Promise; getFaceById(payload: AssetFaceId): Promise; }