Initial commit
This commit is contained in:
		
							
								
								
									
										100
									
								
								prisma/schema.prisma
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								prisma/schema.prisma
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
// 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 
 | 
			
		||||
		Reference in New Issue
	
	Block a user