feat(release): front int PK with app-minted GUID EntryKey on the public addressing surface (P11 W5, 11.H)
This commit is contained in:
@@ -35,7 +35,7 @@ public class ReleaseDetailViewModel
|
||||
IsLoading = false;
|
||||
}
|
||||
|
||||
public async Task Load(long releaseId)
|
||||
public async Task Load(string entryKey)
|
||||
{
|
||||
IsLoading = true;
|
||||
NotFound = false;
|
||||
@@ -44,7 +44,7 @@ public class ReleaseDetailViewModel
|
||||
|
||||
try
|
||||
{
|
||||
var releaseResult = await _releaseData.GetById(releaseId);
|
||||
var releaseResult = await _releaseData.GetByEntryKey(entryKey);
|
||||
if (releaseResult is not { Success: true, Value: { } release })
|
||||
{
|
||||
NotFound = true;
|
||||
@@ -54,9 +54,11 @@ public class ReleaseDetailViewModel
|
||||
Release = release;
|
||||
|
||||
// Resolve the playable track via the releaseId-filtered track page — an exact join, not a
|
||||
// title string (which collides across same-titled releases and breaks on rename). Session/Mix
|
||||
// releases carry a single track; take the first. A release with no streamable track simply
|
||||
// leaves Track null (the detail page hides the play affordance).
|
||||
// title string (which collides across same-titled releases and breaks on rename). The public
|
||||
// page addresses the release by EntryKey; the track→release join stays on the internal int
|
||||
// FK (Phase 11 §3e leaves internal joins on the int PK), so use the resolved release.Id here.
|
||||
// Session/Mix releases carry a single track; take the first. A release with no streamable
|
||||
// track simply leaves Track null (the detail page hides the play affordance).
|
||||
var trackResult = await _trackData.GetPage(
|
||||
pageNumber: 1, pageSize: 1, releaseId: release.Id);
|
||||
if (trackResult is { Success: true, Value: { Items: { } items } })
|
||||
|
||||
Reference in New Issue
Block a user