137 lines
2.9 KiB
Text
137 lines
2.9 KiB
Text
generator client {
|
|
provider = "cargo prisma"
|
|
output = "../backend/src/prisma.rs"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Universe {
|
|
id String @id @default(uuid())
|
|
|
|
config Json
|
|
|
|
players Player[]
|
|
empires Empire[]
|
|
starSystems StarSystem[]
|
|
planets Planet[]
|
|
Fleet Fleet[]
|
|
StarSystemEdges StarSystemEdges[]
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(uuid())
|
|
email String? @unique
|
|
emailVerified DateTime?
|
|
name String
|
|
image String?
|
|
|
|
accounts Account[]
|
|
sessions Session[]
|
|
}
|
|
|
|
model Player {
|
|
id String @id @default(uuid())
|
|
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
|
|
empire Empire?
|
|
}
|
|
|
|
model Empire {
|
|
id String @id @default(uuid())
|
|
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
|
|
name String
|
|
color String
|
|
|
|
playerId String? @unique
|
|
player Player? @relation(fields: [playerId], references: [id])
|
|
}
|
|
|
|
model StarSystem {
|
|
id String @id @default(uuid())
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
|
|
coordX Float
|
|
coordY Float
|
|
|
|
inbound StarSystemEdges[] @relation("inbound")
|
|
outbound StarSystemEdges[] @relation("outbound")
|
|
}
|
|
|
|
model StarSystemEdges {
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
|
|
fromSystemId String
|
|
from StarSystem @relation(fields: [fromSystemId], references: [id], name: "outbound")
|
|
|
|
toSystemId String
|
|
to StarSystem @relation(fields: [toSystemId], references: [id], name: "inbound")
|
|
|
|
@@id([universeId, fromSystemId, toSystemId])
|
|
}
|
|
|
|
model Planet {
|
|
id String @id @default(uuid())
|
|
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
}
|
|
|
|
model Fleet {
|
|
id String @id @default(uuid())
|
|
|
|
universeId String
|
|
universe Universe @relation(fields: [universeId], references: [id])
|
|
}
|
|
|
|
model Technology {
|
|
name String @id
|
|
description String
|
|
effects Json
|
|
}
|
|
|
|
// SvelteKit Auth
|
|
|
|
model Account {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
type String
|
|
provider String
|
|
providerAccountId String
|
|
refresh_token String? @db.Text
|
|
access_token String? @db.Text
|
|
expires_at Int?
|
|
token_type String?
|
|
scope String?
|
|
id_token String? @db.Text
|
|
session_state String?
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
@@unique([provider, providerAccountId])
|
|
}
|
|
|
|
model Session {
|
|
id String @id @default(cuid())
|
|
sessionToken String @unique
|
|
userId String
|
|
expires DateTime
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
model VerificationToken {
|
|
identifier String
|
|
token String @unique
|
|
expires DateTime
|
|
|
|
@@unique([identifier, token])
|
|
}
|