feat: add server side redist patching

This commit is contained in:
DecDuck
2025-08-28 11:14:38 +10:00
parent ca7a89bbcf
commit cf3a458bdf
9 changed files with 218 additions and 71 deletions

View File

@ -0,0 +1,32 @@
/*
Warnings:
- Added the required column `mReleased` to the `Mod` table without a default value. This is not possible if the table is not empty.
*/
-- DropIndex
DROP INDEX "public"."GameTag_name_idx";
-- AlterTable
ALTER TABLE "public"."Mod" ADD COLUMN "mReleased" TIMESTAMP(3) NOT NULL;
-- CreateTable
CREATE TABLE "public"."GameDLCMetadata" (
"id" TEXT NOT NULL,
"mName" TEXT NOT NULL,
"mShortDescription" TEXT NOT NULL,
"mDescription" TEXT NOT NULL,
"mIconObjectId" TEXT NOT NULL,
"mBannerObjectId" TEXT NOT NULL,
"mCoverObjectId" TEXT NOT NULL,
"mImageCarouselObjectIds" TEXT[],
"mImageLibraryObjectIds" TEXT[],
CONSTRAINT "GameDLCMetadata_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
-- AddForeignKey
ALTER TABLE "public"."GameDLCMetadata" ADD CONSTRAINT "GameDLCMetadata_id_fkey" FOREIGN KEY ("id") REFERENCES "public"."DLC"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@ -74,6 +74,8 @@ model LaunchOption {
launchCommand String
launchArgs String @default("")
}
model DLCVersion {

View File

@ -63,6 +63,22 @@ model DLC {
libraryPath String
versions Version[]
metadata GameDLCMetadata?
}
model GameDLCMetadata {
id String @id
dlc DLC @relation(fields: [id], references: [id])
mName String
mShortDescription String
mDescription String
mIconObjectId String // linked to objects in s3
mBannerObjectId String // linked to objects in s3
mCoverObjectId String
mImageCarouselObjectIds String[] // linked to below array
mImageLibraryObjectIds String[] // linked to objects in s3
}
model Redist {
@ -77,7 +93,7 @@ model Redist {
library Library @relation(fields: [libraryId], references: [id], onDelete: Cascade, onUpdate: Cascade)
libraryPath String
versions Version[]
versions Version[]
platform UserPlatform?
@@unique([libraryId, libraryPath], name: "libraryKey")
@ -97,6 +113,8 @@ model Mod {
mShortDescription String
mDescription String
mReleased DateTime
mIconObjectId String // linked to objects in s3
mBannerObjectId String // linked to objects in s3
mCoverObjectId String