import { prisma } from "@/lib/db"; // Owned albums (LibraryItem) enriched with the release-group MBID + year from the matching // MonitoredRelease (joined on artist/album), so the Library grid can show cover art + tracks. export async function GET() { const [items, releases] = await Promise.all([ prisma.libraryItem.findMany({ orderBy: { importedAt: "desc" } }), prisma.monitoredRelease.findMany({ select: { artistName: true, album: true, rgMbid: true, firstReleaseDate: true, primaryType: true, artistMbid: true }, }), ]); const key = (artist: string, album: string) => `${artist}${album}`; const byKey = new Map(releases.map((r) => [key(r.artistName, r.album), r])); return Response.json({ albums: items.map((li) => { const mr = byKey.get(key(li.artist, li.album)); return { id: li.id, artist: li.artist, album: li.album, format: li.format, qualityClass: li.qualityClass, importedAt: li.importedAt, rgMbid: mr?.rgMbid ?? null, year: mr?.firstReleaseDate?.slice(0, 4) ?? null, primaryType: mr?.primaryType ?? null, artistMbid: mr?.artistMbid ?? null, trackNames: li.trackNames, }; }), }); }