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
+10
View File
@@ -0,0 +1,10 @@
namespace DeepDrftModels.DTOs;
// Mirror of SessionMetadata (Phase 9). No `required` members — BlazorBlocks's Manager<> generic
// constraint requires `new()`, which does not compose with required members. TrackConverter assigns
// every field on the round-trip, so an empty default is never observable.
public class SessionMetadataDto
{
public long ReleaseId { get; set; }
public string HeroImageEntryKey { get; set; } = string.Empty;
}