Phase 9 Wave 1: add ReleaseMedium discriminator + Session/Mix metadata

Add ReleaseMedium enum (Cut/Session/Mix) and two 1:1 satellite entities
(SessionMetadata, MixMetadata) with EF configs and an additive migration.
ReleaseDto.ReleaseType is now nullable, nulled for non-Cut at the converter.
Existing releases default to Cut via column default; no data migration.
This commit is contained in:
daniel-c-harvey
2026-06-12 21:47:04 -04:00
parent 6f63fe7d7c
commit 5d6b54d2fc
16 changed files with 767 additions and 4 deletions
+16
View File
@@ -0,0 +1,16 @@
namespace DeepDrftModels.Enums;
/// <summary>
/// The medium of a release — the Phase 9 discriminator that selects which metadata shape applies.
/// </summary>
public enum ReleaseMedium
{
/// <summary>Studio recording. Uses <see cref="ReleaseType"/> (Single/EP/Album). The default.</summary>
Cut,
/// <summary>Single live track plus a hero image. Detail in <c>SessionMetadata</c>.</summary>
Session,
/// <summary>Single long track plus a preprocessed high-resolution waveform datum. Detail in <c>MixMetadata</c>.</summary>
Mix
}