hunk.code_window:     });
     }
     findLivePhotoMatch(livePhotoCID: string, otherAssetId: string, type: AssetType): Promise<AssetEntity | null> {
       return this.repository.findOne({
         where: {
           id: Not(otherAssetId),
  
hunk.labels: keep keep keep replace keep keep keep
hunk.after_edit:   findLivePhotoMatch(options: LivePhotoSearchOptions): Promise<AssetEntity | null> {
       const { ownerId, otherAssetId, livePhotoCID, type } = options;
  
hunk.file_path: server/libs/infra/src/repositories/asset.repository.ts
hunk.type: replace
file: import { Type } from 'class-transformer';
  import { IsNumber, IsOptional, IsPositive, IsString } from 'class-validator';
  
  export class DownloadDto {
    @IsOptional()
    @IsString()
    name = '';
  
    @IsOptional()
    @IsPositive()
    @IsNumber()
    @Type(() => Number)
    skip?: number;
  }
  