ca groundwork

This commit is contained in:
DecDuck
2024-10-07 22:35:54 +11:00
parent 1bd19ad917
commit bfafd2a044
44 changed files with 628 additions and 130 deletions

View File

@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "User" ADD COLUMN "admin" BOOLEAN NOT NULL DEFAULT false;

View File

@ -0,0 +1,15 @@
-- CreateEnum
CREATE TYPE "ClientCapabilities" AS ENUM ('DownloadAggregation');
-- CreateTable
CREATE TABLE "Client" (
"sharedToken" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"endpoint" TEXT NOT NULL,
"capabilities" "ClientCapabilities"[],
CONSTRAINT "Client_pkey" PRIMARY KEY ("sharedToken")
);
-- AddForeignKey
ALTER TABLE "Client" ADD CONSTRAINT "Client_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@ -14,10 +14,12 @@ datasource db {
}
model User {
id String @id @default(uuid())
username String @unique
id String @id @default(uuid())
username String @unique
admin Boolean @default(false)
authMecs LinkedAuthMec[]
clients Client[]
}
enum AuthMec {
@ -35,6 +37,20 @@ model LinkedAuthMec {
@@id([userId, mec])
}
enum ClientCapabilities {
DownloadAggregation
}
// References a device
model Client {
sharedToken String @id @default(uuid())
userId String
user User @relation(fields: [userId], references: [id])
endpoint String
capabilities ClientCapabilities[]
}
enum MetadataSource {
Custom
GiantBomb