mirror of
https://github.com/Drop-OSS/drop.git
synced 2026-01-31 15:37:09 +01:00
feat: unified company metadata store
still need to migrate users from old developer and publisher tables
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Company" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"metadataOriginalQuery" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mLogoObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mWebsite" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Company_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "CompanyGameRelation" (
|
||||
"companyId" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
"developer" BOOLEAN NOT NULL DEFAULT false,
|
||||
"publisher" BOOLEAN NOT NULL DEFAULT false
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Company_metadataSource_metadataId_key" ON "Company"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "CompanyGameRelation_companyId_gameId_key" ON "CompanyGameRelation"("companyId", "gameId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" ADD CONSTRAINT "CompanyGameRelation_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" ADD CONSTRAINT "CompanyGameRelation_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -33,9 +33,10 @@ model Game {
|
||||
versions GameVersion[]
|
||||
libraryBasePath String @unique // Base dir for all the game versions
|
||||
|
||||
collections CollectionEntry[]
|
||||
saves SaveSlot[]
|
||||
screenshots Screenshot[]
|
||||
collections CollectionEntry[]
|
||||
saves SaveSlot[]
|
||||
screenshots Screenshot[]
|
||||
companyRelations CompanyGameRelation[]
|
||||
|
||||
@@unique([metadataSource, metadataId], name: "metadataKey")
|
||||
}
|
||||
@@ -102,6 +103,38 @@ model Screenshot {
|
||||
@@index([gameId, userId])
|
||||
}
|
||||
|
||||
model Company {
|
||||
id String @id @default(uuid())
|
||||
|
||||
metadataSource MetadataSource
|
||||
metadataId String
|
||||
metadataOriginalQuery String
|
||||
|
||||
mName String
|
||||
mShortDescription String
|
||||
mDescription String
|
||||
mLogoObjectId String
|
||||
mBannerObjectId String
|
||||
mWebsite String
|
||||
|
||||
gameRelations CompanyGameRelation[]
|
||||
|
||||
@@unique([metadataSource, metadataId], name: "metadataKey")
|
||||
}
|
||||
|
||||
model CompanyGameRelation {
|
||||
companyId String
|
||||
company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
|
||||
gameId String
|
||||
game Game @relation(fields: [gameId], references: [id], onDelete: Cascade)
|
||||
|
||||
// what the company did for the game
|
||||
developer Boolean @default(false)
|
||||
publisher Boolean @default(false)
|
||||
|
||||
@@unique([companyId, gameId], name: "companyGame")
|
||||
}
|
||||
|
||||
model Developer {
|
||||
id String @id @default(uuid())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user