hunk.code_window:       personMock,
       );
     });
     it('should be defined', () => {
       expect(sut).toBeDefined();
     });
  
hunk.labels: keep keep keep add keep keep keep keep
hunk.after_edit:   afterEach(async () => {
       await sut.teardown();
     });
  
hunk.file_path: server/src/domain/metadata/metadata.service.spec.ts
hunk.type: add
file: export interface IBaseJob {
    force?: boolean;
  }
  
  export interface IAssetFaceJob extends IBaseJob {
    assetId: string;
    personId: string;
  }
  
  export interface IEntityJob extends IBaseJob {
    id: string;
    source?: 'upload';
  }
  
  export interface IAssetDeletionJob extends IEntityJob {
    fromExternal?: boolean;
  }
  
  export interface ILibraryFileJob extends IEntityJob {
    ownerId: string;
    assetPath: string;
  }
  
  export interface ILibraryRefreshJob extends IEntityJob {
    refreshModifiedFiles: boolean;
    refreshAllFiles: boolean;
  }
  
  export interface IBulkEntityJob extends IBaseJob {
    ids: string[];
  }
  
  export interface IDeleteFilesJob extends IBaseJob {
    files: Array<string | null | undefined>;
  }
  