generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } enum ServerType { STATEFUL STATELESS } enum ReverseProxyServerType { VELOCITY BUNGEECORD } model ReverseProxyServer { id String @id @default(cuid()) type ReverseProxyServerType description String? external_address String external_port Int listen_port Int @default(25565) memory String @default("512M") api_key String @unique env_variables CustomEnvironmentVariable[] @relation("ReverseProxyServerEnvVars") created_at DateTime @default(now()) updated_at DateTime @updatedAt } model Server { id String @id @default(cuid()) type ServerType description String? listen_port Int @default(25565) memory String @default("1G") env_variables CustomEnvironmentVariable[] @relation("ServerEnvVars") api_key String @unique created_at DateTime @default(now()) updated_at DateTime @updatedAt } model User { id String @id @default(cuid()) username String @unique password String sessions Session[] created_at DateTime @default(now()) updated_at DateTime @updatedAt } model Session { id String @id @default(cuid()) token String @unique user_id String user User @relation(fields: [user_id], references: [id]) revoked Boolean @default(false) expires_at DateTime created_at DateTime @default(now()) updated_at DateTime @updatedAt } model CustomEnvironmentVariable { id String @id @default(cuid()) key String value String created_at DateTime @default(now()) updated_at DateTime @updatedAt server_id String? server Server? @relation("ServerEnvVars", fields: [server_id], references: [id], onDelete: Cascade) reverse_proxy_id String? reverse_proxy_server ReverseProxyServer? @relation("ReverseProxyServerEnvVars", fields: [reverse_proxy_id], references: [id], onDelete: Cascade) @@unique([key, server_id]) @@unique([key, reverse_proxy_id]) }