feat(discovery): DiscoverySuggestion schema + WatchedArtist.lastDiscoveredAt
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "DiscoveryKind" AS ENUM ('artist', 'album');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "SuggestionStatus" AS ENUM ('pending', 'followed', 'wanted', 'dismissed');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "WatchedArtist" ADD COLUMN "lastDiscoveredAt" TIMESTAMP(3);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "DiscoverySuggestion" (
|
||||
"id" TEXT NOT NULL,
|
||||
"kind" "DiscoveryKind" NOT NULL,
|
||||
"artistMbid" TEXT NOT NULL,
|
||||
"artistName" TEXT NOT NULL,
|
||||
"rgMbid" TEXT,
|
||||
"album" TEXT,
|
||||
"primaryType" TEXT,
|
||||
"secondaryTypes" TEXT[],
|
||||
"firstReleaseDate" TEXT,
|
||||
"score" DOUBLE PRECISION NOT NULL,
|
||||
"seedCount" INTEGER NOT NULL,
|
||||
"sources" TEXT[],
|
||||
"status" "SuggestionStatus" NOT NULL DEFAULT 'pending',
|
||||
"dedupeKey" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "DiscoverySuggestion_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "DiscoverySuggestion_dedupeKey_key" ON "DiscoverySuggestion"("dedupeKey");
|
||||
@@ -100,6 +100,7 @@ model WatchedArtist {
|
||||
showAllTypes Boolean @default(false)
|
||||
monitorFrom DateTime @default(now())
|
||||
lastPolledAt DateTime?
|
||||
lastDiscoveredAt DateTime?
|
||||
createdAt DateTime @default(now())
|
||||
releases MonitoredRelease[]
|
||||
}
|
||||
@@ -123,3 +124,34 @@ model MonitoredRelease {
|
||||
createdAt DateTime @default(now())
|
||||
requests Request[]
|
||||
}
|
||||
|
||||
enum DiscoveryKind {
|
||||
artist
|
||||
album
|
||||
}
|
||||
|
||||
enum SuggestionStatus {
|
||||
pending
|
||||
followed
|
||||
wanted
|
||||
dismissed
|
||||
}
|
||||
|
||||
model DiscoverySuggestion {
|
||||
id String @id @default(cuid())
|
||||
kind DiscoveryKind
|
||||
artistMbid String
|
||||
artistName String
|
||||
rgMbid String?
|
||||
album String?
|
||||
primaryType String?
|
||||
secondaryTypes String[]
|
||||
firstReleaseDate String?
|
||||
score Float
|
||||
seedCount Int
|
||||
sources String[]
|
||||
status SuggestionStatus @default(pending)
|
||||
dedupeKey String @unique
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
@@ -15,5 +15,6 @@ beforeEach(async () => {
|
||||
await prisma.libraryItem.deleteMany();
|
||||
await prisma.monitoredRelease.deleteMany();
|
||||
await prisma.watchedArtist.deleteMany();
|
||||
await prisma.discoverySuggestion.deleteMany();
|
||||
await prisma.config.deleteMany();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user