Current state

This commit is contained in:
2025-01-17 23:02:39 +01:00
parent fa06c402e6
commit 534e240eff
24 changed files with 18717 additions and 6974 deletions

View File

@ -5,36 +5,36 @@
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
provider = "mysql"
url = env("DATABASE_URL")
}
// https://github.com/pantharshit00/prisma-docs-generator
generator docs {
provider = "node node_modules/prisma-docs-generator"
output = "../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"
provider = "prisma-dbml-generator"
output = "../docs"
outputName = "schema.dbml"
projectName = "AssetFlow"
}
enum contentType {
voice_alarm
voice_explainer
voice_acknowledgement
voice_ending
voice_alarm
voice_explainer
voice_acknowledgement
voice_ending
}
enum alertType {
@ -45,55 +45,72 @@ enum alertType {
clear
}
model AlarmContacts {
id Int @id @unique @default(autoincrement())
name String
phone String @unique
comment String?
Prios Priorities[]
enum alertState {
incomming // Incomming alerts
running // Started calling
failed // Failed to get acknowledgement of any alertContacts
acknowledged // Some user acknowledged alert
}
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 {
model alerts {
id Int @id @unique @default(autoincrement())
type alertType
message String?
actionplan ActionPlan? @relation(fields: [actionplanId], references: [id])
actionplan actionPlan? @relation(fields: [actionplanId], references: [id])
actionplanId Int?
// TODO: TBD
// Quelle: BMA / EMA
// Date
// Date (Clear) ???
date DateTime
state alertState
acknowledged_by alertContacts[]
acknowledged_at DateTime?
@@fulltext([message])
}
model alertContacts {
id Int @id @unique @default(autoincrement())
name String
phone String @unique
comment String?
prios priorities[]
alerts alerts[]
@@fulltext([name, phone, comment])
}
model actionPlan {
id Int @id @unique @default(autoincrement())
name String
comment String?
alert_hook String @unique
prio priorities[]
content content[] // aka. all voice files
alerts alerts[]
@@fulltext([name, comment])
}
model priorities {
id Int @id @unique @default(autoincrement())
Contact alertContacts @relation(fields: [contactId], references: [id])
contactId Int
priority Int
actionplan actionPlan @relation(fields: [actionplanId], references: [id])
actionplanId Int
@@unique([priority, actionplanId])
}
model content {
id Int @id @unique @default(autoincrement())
type contentType
name String
filename String
actionplan actionPlan[]
@@fulltext([name, filename])
}
// https://spacecdn.de/file/bma_stoe_v1.mp3
// https://spacecdn.de/file/quittiert_v1.mp3
// https://spacecdn.de/file/angenehmen_tag_v1.mp3