Add plan execution mode, game ID, and version to health endpoint
- Add executionMode and gameId columns to StreamPlan schema - Add migration for new columns - Support executionMode/gameId in plan create and update endpoints - Add version field to health check response from package.json
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "User" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"metaId" TEXT NOT NULL,
|
||||
"displayName" TEXT NOT NULL,
|
||||
"email" TEXT,
|
||||
"avatarUrl" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Session" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"userId" TEXT NOT NULL,
|
||||
"refreshToken" TEXT NOT NULL,
|
||||
"expiresAt" DATETIME NOT NULL,
|
||||
"deviceInfo" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "LinkedAccount" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"userId" TEXT NOT NULL,
|
||||
"serviceId" TEXT NOT NULL,
|
||||
"displayName" TEXT NOT NULL,
|
||||
"accountId" TEXT NOT NULL,
|
||||
"avatarUrl" TEXT,
|
||||
"accessTokenEnc" TEXT NOT NULL,
|
||||
"refreshTokenEnc" TEXT NOT NULL,
|
||||
"tokenExpiresAt" DATETIME NOT NULL,
|
||||
"accessTokenIv" TEXT NOT NULL,
|
||||
"refreshTokenIv" TEXT NOT NULL,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL,
|
||||
CONSTRAINT "LinkedAccount_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "StreamPlan" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"userId" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"status" TEXT NOT NULL DEFAULT 'DRAFT',
|
||||
"executionMode" TEXT NOT NULL DEFAULT 'IN_GAME',
|
||||
"gameId" TEXT NOT NULL DEFAULT '',
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL,
|
||||
CONSTRAINT "StreamPlan_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "StreamDestination" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"planId" TEXT NOT NULL,
|
||||
"serviceId" TEXT NOT NULL,
|
||||
"linkedAccountId" TEXT NOT NULL DEFAULT '',
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL DEFAULT '',
|
||||
"privacyStatus" TEXT NOT NULL DEFAULT 'public',
|
||||
"gameId" TEXT NOT NULL DEFAULT '',
|
||||
"tags" TEXT NOT NULL DEFAULT '',
|
||||
"rtmpUrl" TEXT NOT NULL DEFAULT '',
|
||||
"streamKey" TEXT NOT NULL DEFAULT '',
|
||||
"broadcastId" TEXT NOT NULL DEFAULT '',
|
||||
"status" TEXT NOT NULL DEFAULT 'PENDING',
|
||||
CONSTRAINT "StreamDestination_planId_fkey" FOREIGN KEY ("planId") REFERENCES "StreamPlan" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_metaId_key" ON "User"("metaId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Session_refreshToken_key" ON "Session"("refreshToken");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Session_userId_idx" ON "Session"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "LinkedAccount_userId_idx" ON "LinkedAccount"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LinkedAccount_userId_serviceId_accountId_key" ON "LinkedAccount"("userId", "serviceId", "accountId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "StreamPlan_userId_idx" ON "StreamPlan"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "StreamDestination_planId_idx" ON "StreamDestination"("planId");
|
||||
3
prisma/migrations/migration_lock.toml
Normal file
3
prisma/migrations/migration_lock.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (e.g., Git)
|
||||
provider = "sqlite"
|
||||
@@ -54,14 +54,16 @@ model LinkedAccount {
|
||||
}
|
||||
|
||||
model StreamPlan {
|
||||
id String @id @default(uuid())
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
name String
|
||||
status String @default("DRAFT")
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
destinations StreamDestination[]
|
||||
id String @id @default(uuid())
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
name String
|
||||
status String @default("DRAFT")
|
||||
executionMode String @default("IN_GAME")
|
||||
gameId String @default("")
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
destinations StreamDestination[]
|
||||
|
||||
@@index([userId])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user