feat: import redists

This commit is contained in:
DecDuck
2025-08-22 13:48:47 +10:00
parent 322af0b4ca
commit f1957a418c
22 changed files with 715 additions and 806 deletions

View File

@ -0,0 +1,8 @@
-- DropIndex
DROP INDEX "public"."GameTag_name_idx";
-- AlterTable
ALTER TABLE "public"."Library" ADD COLUMN "mode" "public"."LibraryMode" NOT NULL DEFAULT 'Game';
-- CreateIndex
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));

View File

@ -0,0 +1,99 @@
/*
Warnings:
- The values [Addon] on the enum `LibraryMode` will be removed. If these variants are still used in the database, this will fail.
- You are about to drop the column `addonId` on the `Version` table. All the data in the column will be lost.
- You are about to drop the `Addon` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `AddonVersion` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `_AddonVersionToRedistVersion` table. If the table is not empty, all the data it contains will be lost.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "public"."LibraryMode_new" AS ENUM ('Game', 'Redist', 'DLC', 'Mod');
ALTER TABLE "public"."Library" ALTER COLUMN "mode" DROP DEFAULT;
ALTER TABLE "public"."Library" ALTER COLUMN "mode" TYPE "public"."LibraryMode_new" USING ("mode"::text::"public"."LibraryMode_new");
ALTER TYPE "public"."LibraryMode" RENAME TO "LibraryMode_old";
ALTER TYPE "public"."LibraryMode_new" RENAME TO "LibraryMode";
DROP TYPE "public"."LibraryMode_old";
ALTER TABLE "public"."Library" ALTER COLUMN "mode" SET DEFAULT 'Game';
COMMIT;
-- DropForeignKey
ALTER TABLE "public"."Addon" DROP CONSTRAINT "Addon_libraryId_fkey";
-- DropForeignKey
ALTER TABLE "public"."AddonVersion" DROP CONSTRAINT "AddonVersion_versionId_fkey";
-- DropForeignKey
ALTER TABLE "public"."Version" DROP CONSTRAINT "addon_link";
-- DropForeignKey
ALTER TABLE "public"."_AddonVersionToRedistVersion" DROP CONSTRAINT "_AddonVersionToRedistVersion_A_fkey";
-- DropForeignKey
ALTER TABLE "public"."_AddonVersionToRedistVersion" DROP CONSTRAINT "_AddonVersionToRedistVersion_B_fkey";
-- DropIndex
DROP INDEX "public"."GameTag_name_idx";
-- AlterTable
ALTER TABLE "public"."Version" DROP COLUMN "addonId",
ADD COLUMN "dlcId" TEXT;
-- DropTable
DROP TABLE "public"."Addon";
-- DropTable
DROP TABLE "public"."AddonVersion";
-- DropTable
DROP TABLE "public"."_AddonVersionToRedistVersion";
-- CreateTable
CREATE TABLE "public"."DLCVersion" (
"versionId" TEXT NOT NULL,
CONSTRAINT "DLCVersion_pkey" PRIMARY KEY ("versionId")
);
-- CreateTable
CREATE TABLE "public"."DLC" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"iconObjectId" TEXT NOT NULL,
"libraryId" TEXT NOT NULL,
"libraryPath" TEXT NOT NULL,
CONSTRAINT "DLC_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "public"."_DLCVersionToRedistVersion" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL,
CONSTRAINT "_DLCVersionToRedistVersion_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateIndex
CREATE INDEX "_DLCVersionToRedistVersion_B_index" ON "public"."_DLCVersionToRedistVersion"("B");
-- CreateIndex
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
-- AddForeignKey
ALTER TABLE "public"."Version" ADD CONSTRAINT "dlc_link" FOREIGN KEY ("dlcId") REFERENCES "public"."DLC"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "public"."DLCVersion" ADD CONSTRAINT "DLCVersion_versionId_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."Version"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "public"."DLC" ADD CONSTRAINT "DLC_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "public"."Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "public"."_DLCVersionToRedistVersion" ADD CONSTRAINT "_DLCVersionToRedistVersion_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."DLCVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "public"."_DLCVersionToRedistVersion" ADD CONSTRAINT "_DLCVersionToRedistVersion_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."RedistVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@ -24,7 +24,7 @@ enum LibraryBackend {
enum LibraryMode {
Game
Redist
Addon
DLC
Mod
}
@ -34,9 +34,10 @@ model Library {
backend LibraryBackend
options Json
mode LibraryMode @default(Game)
games Game[]
redists Redist[]
addons Addon[]
mods Mod[]
dlcs DLC[]
mods Mod[]
}

View File

@ -14,9 +14,9 @@ model Version {
redist Redist? @relation(fields: [redistId], references: [id], map: "redist_link", onDelete: Cascade, onUpdate: Cascade)
redistVersion RedistVersion?
addonId String?
addon Addon? @relation(fields: [addonId], references: [id], map: "addon_link", onDelete: Cascade, onUpdate: Cascade)
addonVersion AddonVersion?
dlcId String?
dlc DLC? @relation(fields: [dlcId], references: [id], map: "dlc_link", onDelete: Cascade, onUpdate: Cascade)
dlcVersion DLCVersion?
modId String?
mod Mod? @relation(fields: [modId], references: [id], map: "mod_link", onDelete: Cascade, onUpdate: Cascade)
@ -58,7 +58,7 @@ model GameVersionLaunch {
launchArgs String @default("")
}
model AddonVersion {
model DLCVersion {
versionId String @id
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
@ -70,7 +70,7 @@ model RedistVersion {
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
gameDependees GameVersion[]
addonDependees AddonVersion[]
dlcDependees DLCVersion[]
}
model ModVersion {

View File

@ -53,7 +53,7 @@ model Game {
@@unique([libraryId, libraryPath], name: "libraryKey")
}
model Addon {
model DLC {
id String @id @default(uuid())
name String