mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 14:54:55 +00:00
133 lines
3.2 KiB
Plaintext
133 lines
3.2 KiB
Plaintext
datasource db {
|
|
provider = "sqlite"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(uuid())
|
|
username String @unique
|
|
email String @unique
|
|
role String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
workflows Workflow[]
|
|
luaScripts LuaScript[]
|
|
installedPackages Package[]
|
|
}
|
|
|
|
model Credential {
|
|
id String @id @default(uuid())
|
|
username String @unique
|
|
passwordHash String
|
|
firstLogin Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Session {
|
|
id String @id @default(uuid())
|
|
userId String
|
|
token String @unique
|
|
expiresAt DateTime
|
|
createdAt DateTime @default(now())
|
|
lastActivity DateTime @updatedAt
|
|
|
|
@@index([userId])
|
|
@@index([expiresAt])
|
|
}
|
|
|
|
model PageView {
|
|
id String @id @default(uuid())
|
|
slug String @unique
|
|
title String
|
|
description String?
|
|
level Int
|
|
layout String
|
|
isActive Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
components ComponentHierarchy[]
|
|
|
|
@@index([level])
|
|
@@index([isActive])
|
|
}
|
|
|
|
model ComponentHierarchy {
|
|
id String @id @default(uuid())
|
|
pageId String
|
|
parentId String?
|
|
componentType String
|
|
order Int @default(0)
|
|
props String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
page PageView @relation(fields: [pageId], references: [id], onDelete: Cascade)
|
|
parent ComponentHierarchy? @relation("ParentChild", fields: [parentId], references: [id], onDelete: Cascade)
|
|
children ComponentHierarchy[] @relation("ParentChild")
|
|
|
|
@@index([pageId])
|
|
@@index([parentId])
|
|
@@index([pageId, order])
|
|
}
|
|
|
|
model Workflow {
|
|
id String @id @default(uuid())
|
|
name String @unique
|
|
description String?
|
|
trigger String
|
|
triggerConfig String
|
|
steps String
|
|
isActive Boolean @default(true)
|
|
createdBy String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
creator User @relation(fields: [createdBy], references: [id])
|
|
|
|
@@index([trigger])
|
|
@@index([isActive])
|
|
}
|
|
|
|
model LuaScript {
|
|
id String @id @default(uuid())
|
|
name String @unique
|
|
description String?
|
|
code String
|
|
isSandboxed Boolean @default(true)
|
|
allowedGlobals String
|
|
timeoutMs Int @default(5000)
|
|
createdBy String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
creator User @relation(fields: [createdBy], references: [id])
|
|
|
|
@@index([isSandboxed])
|
|
}
|
|
|
|
model Package {
|
|
id String @id @default(uuid())
|
|
name String
|
|
version String
|
|
description String?
|
|
author String
|
|
manifest String
|
|
isInstalled Boolean @default(false)
|
|
installedAt DateTime?
|
|
installedBy String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
installer User? @relation(fields: [installedBy], references: [id])
|
|
|
|
@@unique([name, version])
|
|
@@index([isInstalled])
|
|
}
|