Phase 9 Wave 2: api/release endpoint family — medium-aware reads + metadata writes

Adds ReleaseRepository/ReleaseManager (IReleaseService) for paged medium-filtered
release reads and Session/Mix satellite writes, UnifiedReleaseService orchestrating
vault+SQL, and ReleaseController (5 endpoints). Refactors WaveformProfileService for
configurable bucketCount/vaultName (backward-compatible) and adds the mix-waveforms vault.
Promotes brittle error-string literals to named constants (MixHasNoTrackMessage,
MixTrackNoAudioMessage) on UnifiedReleaseService.
This commit is contained in:
daniel-c-harvey
2026-06-12 22:13:31 -04:00
parent 93dcc59814
commit ca44fc8794
9 changed files with 718 additions and 16 deletions
@@ -20,4 +20,10 @@ public static class VaultConstants
/// from <c>TrackEntity.ImagePath</c>.
/// </summary>
public const string Images = "images";
/// <summary>
/// Vault name for Mix high-resolution waveform datums, keyed by the mix track's EntryKey.
/// Distinct from WaveformProfiles (player-bar low-res); same pipeline at higher resolution.
/// </summary>
public const string MixWaveforms = "mix-waveforms";
}