From 6ef301a9f7f29d0901ad85c55bded59c9ded1f2b Mon Sep 17 00:00:00 2001 From: Michelle Brier Date: Fri, 9 Aug 2024 14:33:50 -0700 Subject: [PATCH 1/3] add is_custom_musical_key --- .../ddl/migrations/0088_add_musical_key_edit_flag.sql | 5 +++++ .../integration_tests/tasks/entity_manager/test_utils.py | 1 + .../discovery-provider/plugins/notifications/src/types/dn.ts | 1 + .../plugins/pedalboard/packages/storage/src/index.ts | 1 + packages/discovery-provider/src/api/v1/models/tracks.py | 1 + packages/discovery-provider/src/models/tracks/track.py | 1 + packages/discovery-provider/src/schemas/track_schema.json | 4 ++++ packages/discovery-provider/src/tasks/metadata.py | 2 ++ packages/libs/src/api/Track.ts | 2 ++ .../src/services/schemaValidator/schemas/trackSchema.json | 4 ++++ packages/libs/src/utils/types.ts | 1 + 11 files changed, 23 insertions(+) create mode 100644 packages/discovery-provider/ddl/migrations/0088_add_musical_key_edit_flag.sql diff --git a/packages/discovery-provider/ddl/migrations/0088_add_musical_key_edit_flag.sql b/packages/discovery-provider/ddl/migrations/0088_add_musical_key_edit_flag.sql new file mode 100644 index 00000000000..2aa0d5cddfd --- /dev/null +++ b/packages/discovery-provider/ddl/migrations/0088_add_musical_key_edit_flag.sql @@ -0,0 +1,5 @@ +begin; + +alter table tracks add column if not exists is_custom_musical_key boolean default false; + +commit; diff --git a/packages/discovery-provider/integration_tests/tasks/entity_manager/test_utils.py b/packages/discovery-provider/integration_tests/tasks/entity_manager/test_utils.py index 9220b93df72..a392e59f801 100644 --- a/packages/discovery-provider/integration_tests/tasks/entity_manager/test_utils.py +++ b/packages/discovery-provider/integration_tests/tasks/entity_manager/test_utils.py @@ -198,6 +198,7 @@ def test_valid_parse_metadata(app): "bpm": None, "is_custom_bpm": False, "musical_key": None, + "is_custom_musical_key": False, "audio_analysis_error_count": 0, }, "QmUpdatePlaylist1": { diff --git a/packages/discovery-provider/plugins/notifications/src/types/dn.ts b/packages/discovery-provider/plugins/notifications/src/types/dn.ts index 8ccbc76f072..2a867f11690 100644 --- a/packages/discovery-provider/plugins/notifications/src/types/dn.ts +++ b/packages/discovery-provider/plugins/notifications/src/types/dn.ts @@ -657,6 +657,7 @@ export interface TrackRow { bpm?: number | null is_custom_bpm?: boolean | null musical_key?: string | null + is_custom_musical_key?: boolean | null audio_analysis_error_count?: number } export interface TrendingParamRow { diff --git a/packages/discovery-provider/plugins/pedalboard/packages/storage/src/index.ts b/packages/discovery-provider/plugins/pedalboard/packages/storage/src/index.ts index 50b274fba7d..334c370f2c6 100644 --- a/packages/discovery-provider/plugins/pedalboard/packages/storage/src/index.ts +++ b/packages/discovery-provider/plugins/pedalboard/packages/storage/src/index.ts @@ -1006,6 +1006,7 @@ export type Tracks = { bpm: number | null; is_custom_bpm: boolean | null; musical_key: string | null; + is_custom_musical_key: boolean | null; audio_analysis_error_count: number; }; diff --git a/packages/discovery-provider/src/api/v1/models/tracks.py b/packages/discovery-provider/src/api/v1/models/tracks.py index d476ebf1de2..631575080be 100644 --- a/packages/discovery-provider/src/api/v1/models/tracks.py +++ b/packages/discovery-provider/src/api/v1/models/tracks.py @@ -176,6 +176,7 @@ "bpm": fields.Float, "is_custom_bpm": fields.Boolean, "musical_key": fields.String, + "is_custom_musical_key": fields.Boolean, "audio_analysis_error_count": fields.Integer, # DDEX fields "ddex_release_ids": fields.Raw(allow_null=True), diff --git a/packages/discovery-provider/src/models/tracks/track.py b/packages/discovery-provider/src/models/tracks/track.py index ec3bd999a50..15f5382a1f7 100644 --- a/packages/discovery-provider/src/models/tracks/track.py +++ b/packages/discovery-provider/src/models/tracks/track.py @@ -102,6 +102,7 @@ class Track(Base, RepresentableMixin): bpm = Column(Float) is_custom_bpm = Column(Boolean, server_default=text("false")) musical_key = Column(String) + is_custom_musical_key = Column(Boolean, server_default=text("false")) audio_analysis_error_count = Column( Integer, nullable=False, server_default=text("0") ) diff --git a/packages/discovery-provider/src/schemas/track_schema.json b/packages/discovery-provider/src/schemas/track_schema.json index d356d65f9f0..c55fbf72ffb 100644 --- a/packages/discovery-provider/src/schemas/track_schema.json +++ b/packages/discovery-provider/src/schemas/track_schema.json @@ -376,6 +376,10 @@ ], "default": null }, + "is_custom_musical_key": { + "type": ["boolean"], + "default": false + }, "audio_analysis_error_count": { "type": [ "integer" diff --git a/packages/discovery-provider/src/tasks/metadata.py b/packages/discovery-provider/src/tasks/metadata.py index f1e13a6c7ae..01b364037c6 100644 --- a/packages/discovery-provider/src/tasks/metadata.py +++ b/packages/discovery-provider/src/tasks/metadata.py @@ -136,6 +136,7 @@ class TrackMetadata(TypedDict): bpm: Optional[float] is_custom_bpm: Optional[bool] musical_key: Optional[str] + is_custom_musical_key: Optional[bool] audio_analysis_error_count: Optional[int] @@ -192,6 +193,7 @@ class TrackMetadata(TypedDict): "bpm": None, "is_custom_bpm": False, "musical_key": None, + "is_custom_musical_key": False, "audio_analysis_error_count": 0, } diff --git a/packages/libs/src/api/Track.ts b/packages/libs/src/api/Track.ts index a80bb05576f..19e6c2f69a9 100644 --- a/packages/libs/src/api/Track.ts +++ b/packages/libs/src/api/Track.ts @@ -656,6 +656,7 @@ export class Track extends Base { bpm, is_custom_bpm, musical_key, + is_custom_musical_key, audio_analysis_error_count, field_visibility, ...other @@ -715,6 +716,7 @@ export class Track extends Base { bpm, is_custom_bpm, musical_key, + is_custom_musical_key, audio_analysis_error_count, field_visibility } diff --git a/packages/libs/src/services/schemaValidator/schemas/trackSchema.json b/packages/libs/src/services/schemaValidator/schemas/trackSchema.json index 6f03af9df2b..1083814da4e 100644 --- a/packages/libs/src/services/schemaValidator/schemas/trackSchema.json +++ b/packages/libs/src/services/schemaValidator/schemas/trackSchema.json @@ -369,6 +369,10 @@ ], "default": null }, + "is_custom_musical_key": { + "type": ["boolean"], + "default": false + }, "audio_analysis_error_count": { "type": [ "integer" diff --git a/packages/libs/src/utils/types.ts b/packages/libs/src/utils/types.ts index 28934ecd1c8..3e0bf1f404b 100644 --- a/packages/libs/src/utils/types.ts +++ b/packages/libs/src/utils/types.ts @@ -219,6 +219,7 @@ export type TrackMetadata = { bpm?: Nullable is_custom_bpm?: boolean musical_key?: Nullable + is_custom_musical_key?: boolean audio_analysis_error_count?: number field_visibility?: FieldVisibility } From 9fcd75abae0a6e89915520ac180b793ede62d036 Mon Sep 17 00:00:00 2001 From: Michelle Brier Date: Fri, 9 Aug 2024 14:34:44 -0700 Subject: [PATCH 2/3] regen sdk types --- .../libs/src/sdk/api/generated/full/models/TrackFull.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/libs/src/sdk/api/generated/full/models/TrackFull.ts b/packages/libs/src/sdk/api/generated/full/models/TrackFull.ts index bb43c42ac5d..2b5dd0f58be 100644 --- a/packages/libs/src/sdk/api/generated/full/models/TrackFull.ts +++ b/packages/libs/src/sdk/api/generated/full/models/TrackFull.ts @@ -423,6 +423,12 @@ export interface TrackFull { * @memberof TrackFull */ musicalKey?: string; + /** + * + * @type {boolean} + * @memberof TrackFull + */ + isCustomMusicalKey?: boolean; /** * * @type {number} @@ -610,6 +616,7 @@ export function TrackFullFromJSONTyped(json: any, ignoreDiscriminator: boolean): 'bpm': !exists(json, 'bpm') ? undefined : json['bpm'], 'isCustomBpm': !exists(json, 'is_custom_bpm') ? undefined : json['is_custom_bpm'], 'musicalKey': !exists(json, 'musical_key') ? undefined : json['musical_key'], + 'isCustomMusicalKey': !exists(json, 'is_custom_musical_key') ? undefined : json['is_custom_musical_key'], 'audioAnalysisErrorCount': !exists(json, 'audio_analysis_error_count') ? undefined : json['audio_analysis_error_count'], 'ddexReleaseIds': !exists(json, 'ddex_release_ids') ? undefined : json['ddex_release_ids'], 'artists': !exists(json, 'artists') ? undefined : json['artists'], @@ -691,6 +698,7 @@ export function TrackFullToJSON(value?: TrackFull | null): any { 'bpm': value.bpm, 'is_custom_bpm': value.isCustomBpm, 'musical_key': value.musicalKey, + 'is_custom_musical_key': value.isCustomMusicalKey, 'audio_analysis_error_count': value.audioAnalysisErrorCount, 'ddex_release_ids': value.ddexReleaseIds, 'artists': value.artists, From a0d88d912b607d67d0f8641bf839c3c9be6d16d4 Mon Sep 17 00:00:00 2001 From: Michelle Brier Date: Fri, 9 Aug 2024 14:37:57 -0700 Subject: [PATCH 3/3] missed file --- packages/libs/src/sdk/api/tracks/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/libs/src/sdk/api/tracks/types.ts b/packages/libs/src/sdk/api/tracks/types.ts index a88a025de44..00942bbe919 100644 --- a/packages/libs/src/sdk/api/tracks/types.ts +++ b/packages/libs/src/sdk/api/tracks/types.ts @@ -173,6 +173,7 @@ export const createUploadTrackMetadataSchema = () => bpm: z.optional(z.number().nullable()), isCustomBpm: z.optional(z.boolean()), musicalKey: z.optional(z.string().nullable()), + isCustomMusicalKey: z.optional(z.boolean()), audioAnalysisErrorCount: z.optional(z.number()) })