diff --git a/mobile/openapi/lib/api/assets_api.dart b/mobile/openapi/lib/api/assets_api.dart index 06965e1f8..db6a2e78a 100644 Binary files a/mobile/openapi/lib/api/assets_api.dart and b/mobile/openapi/lib/api/assets_api.dart differ diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index 831875629..4ef9ad0bd 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -9401,6 +9401,9 @@ "format": "date-time", "type": "string" }, + "filename": { + "type": "string" + }, "isFavorite": { "type": "boolean" }, @@ -9451,6 +9454,9 @@ "fileModifiedAt": { "format": "date-time", "type": "string" + }, + "filename": { + "type": "string" } }, "required": [ diff --git a/open-api/typescript-sdk/src/fetch-client.ts b/open-api/typescript-sdk/src/fetch-client.ts index 8dced8039..e9dccc9cc 100644 --- a/open-api/typescript-sdk/src/fetch-client.ts +++ b/open-api/typescript-sdk/src/fetch-client.ts @@ -444,6 +444,7 @@ export type AssetMediaCreateDto = { duration?: string; fileCreatedAt: string; fileModifiedAt: string; + filename?: string; isFavorite?: boolean; livePhotoVideoId?: string; sidecarData?: Blob; @@ -510,6 +511,7 @@ export type AssetMediaReplaceDto = { duration?: string; fileCreatedAt: string; fileModifiedAt: string; + filename?: string; }; export type SignUpDto = { email: string; diff --git a/server/src/dtos/asset-media.dto.ts b/server/src/dtos/asset-media.dto.ts index a647b4515..92e130286 100644 --- a/server/src/dtos/asset-media.dto.ts +++ b/server/src/dtos/asset-media.dto.ts @@ -46,6 +46,10 @@ class AssetMediaBase { @IsString() duration?: string; + @Optional() + @IsString() + filename?: string; + // The properties below are added to correctly generate the API docs // and client SDKs. Validation should be handled in the controller. @ApiProperty({ type: 'string', format: 'binary' }) diff --git a/server/src/services/asset-media.service.ts b/server/src/services/asset-media.service.ts index 87d617ede..b56641947 100644 --- a/server/src/services/asset-media.service.ts +++ b/server/src/services/asset-media.service.ts @@ -418,7 +418,7 @@ export class AssetMediaService extends BaseService { duration: dto.duration || null, visibility: dto.visibility ?? AssetVisibility.TIMELINE, livePhotoVideoId: dto.livePhotoVideoId, - originalFileName: file.originalName, + originalFileName: dto.filename || file.originalName, sidecarPath: sidecarFile?.originalPath, });