diff --git a/packages/common/src/adapters/track.ts b/packages/common/src/adapters/track.ts index 67f3268f7ca..c75dded68be 100644 --- a/packages/common/src/adapters/track.ts +++ b/packages/common/src/adapters/track.ts @@ -280,6 +280,7 @@ export const trackMetadataForUploadToSdk = ( 'is_download_gated', 'is_downloadable', 'is_original_available', + 'is_playlist_upload', 'is_scheduled_release', 'bpm', 'is_custom_bpm', diff --git a/packages/common/src/api/tan-query/upload/usePublishCollection.ts b/packages/common/src/api/tan-query/upload/usePublishCollection.ts index fd1a86d3130..36113085b1b 100644 --- a/packages/common/src/api/tan-query/upload/usePublishCollection.ts +++ b/packages/common/src/api/tan-query/upload/usePublishCollection.ts @@ -239,6 +239,8 @@ function combineMetadata( // Set download & hidden status metadata.is_downloadable = !!collectionMetadata.is_downloadable + // Marks child tracks so backend suppresses per-track follower create notifications. + metadata.is_playlist_upload = true metadata.is_unlisted = !!collectionMetadata.is_private if (collectionMetadata.is_private && collectionMetadata.field_visibility) { // Convert any undefined values to booleans diff --git a/packages/sdk/src/sdk/api/tracks/types.ts b/packages/sdk/src/sdk/api/tracks/types.ts index fd06c2c1423..c28e4d2d0ff 100644 --- a/packages/sdk/src/sdk/api/tracks/types.ts +++ b/packages/sdk/src/sdk/api/tracks/types.ts @@ -194,6 +194,7 @@ export const UploadTrackMetadataSchema = z.object({ coverArtSizes: z.optional(z.string()), isDownloadable: z.optional(z.boolean()), isOriginalAvailable: z.optional(z.boolean()), + isPlaylistUpload: z.optional(z.boolean()), ddexReleaseIds: z.optional(z.record(z.string()).nullable()), ddexApp: z.optional(z.string()).nullable(), artists: z.optional(z.array(DDEXResourceContributor)).nullable(),