101 lines
2.4 KiB
Plaintext
101 lines
2.4 KiB
Plaintext
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
|
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
|
|
// https://github.com/pantharshit00/prisma-docs-generator
|
|
generator docs {
|
|
provider = "node node_modules/prisma-docs-generator"
|
|
output = "../docs"
|
|
}
|
|
|
|
// https://github.com/notiz-dev/prisma-dbml-generator
|
|
// Viewer: https://dbdiagram.io/d
|
|
generator dbml {
|
|
provider = "prisma-dbml-generator"
|
|
output = "../docs"
|
|
outputName = "schema.dbml"
|
|
projectName = "AssetFlow"
|
|
}
|
|
|
|
|
|
enum contentType {
|
|
voice_alarm
|
|
voice_explainer
|
|
voice_acknowledgement
|
|
voice_ending
|
|
}
|
|
|
|
enum alertType {
|
|
generic
|
|
fire
|
|
fault
|
|
intrusion
|
|
clear
|
|
}
|
|
|
|
|
|
model AlarmContacts {
|
|
id Int @id @unique @default(autoincrement())
|
|
name String
|
|
phone String @unique
|
|
comment String?
|
|
Prios Priorities[]
|
|
}
|
|
|
|
model Priorities {
|
|
id Int @id @unique @default(autoincrement())
|
|
Contact AlarmContacts @relation(fields: [contactId], references: [id])
|
|
contactId Int
|
|
priority Int
|
|
actionplan ActionPlan @relation(fields: [actionplanId], references: [id])
|
|
actionplanId Int
|
|
|
|
@@unique([priority, actionplanId]) // TODO: Does this work with sqlite???
|
|
}
|
|
|
|
model ActionPlan {
|
|
id Int @id @unique @default(autoincrement())
|
|
name String
|
|
comment String?
|
|
prio Priorities[]
|
|
content Content[] // aka. all voice files
|
|
Alerts Alerts[]
|
|
}
|
|
|
|
model Content {
|
|
id Int @id @unique @default(autoincrement())
|
|
type contentType
|
|
name String
|
|
filename String
|
|
actionplan ActionPlan[]
|
|
}
|
|
|
|
model Alerts {
|
|
id Int @id @unique @default(autoincrement())
|
|
type alertType
|
|
message String?
|
|
actionplan ActionPlan? @relation(fields: [actionplanId], references: [id])
|
|
actionplanId Int?
|
|
// TODO: TBD
|
|
// Quelle: BMA / EMA
|
|
// Date
|
|
// Date (Clear) ???
|
|
}
|
|
|
|
// https://spacecdn.de/file/bma_stoe_v1.mp3
|
|
// https://spacecdn.de/file/quittiert_v1.mp3
|
|
// https://spacecdn.de/file/angenehmen_tag_v1.mp3
|
|
// https://spacecdn.de/file/erklaerung_v1.mp3
|