ifms-pti/server/prisma/schema.prisma

220 lines
6.4 KiB
Plaintext
Raw Normal View History

2020-11-06 20:34:32 +00:00
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model ResetToken {
id Int @id @default(autoincrement())
token String @unique
expiration DateTime
usedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2022-08-30 11:33:05 +00:00
userId Int
creatorId Int
creator User @relation("resettoken_to_creator", fields: [creatorId], references: [id])
user User @relation("resettoken_to_user", fields: [userId], references: [id])
2020-11-06 20:34:32 +00:00
}
model User {
2022-08-30 11:33:05 +00:00
id Int @id @default(autoincrement())
2020-12-21 15:33:35 +00:00
lastLogin DateTime?
lastLoginPrior DateTime?
2020-11-06 20:34:32 +00:00
roles Json?
groups Json?
2022-08-30 11:33:05 +00:00
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2020-11-06 20:34:32 +00:00
accountExpires String?
2023-10-30 16:38:56 +00:00
badPasswordTime DateTime?
2020-11-06 20:34:32 +00:00
badPwdCount String?
cn String?
department String?
description String?
displayName String?
distinguishedName String?
dn String?
extensionAttribute1 String?
extensionAttribute10 String?
extensionAttribute2 String?
extensionAttribute6 String?
2023-10-30 16:38:56 +00:00
extensionAttribute7 DateTime?
2020-11-06 20:34:32 +00:00
givenName String?
homeDirectory String?
homeDrive String?
lastLogoff String?
2023-10-30 16:38:56 +00:00
lastLogon DateTime?
lastLogonTimestamp DateTime?
lockoutTime DateTime?
2020-11-06 20:34:32 +00:00
logonCount String?
mail String?
name String?
objectCategory String?
objectGUID String?
objectSid String?
primaryGroupID String?
2020-11-10 20:35:54 +00:00
pwdLastSet DateTime?
2022-08-30 11:33:05 +00:00
sAMAccountName String @unique
2020-11-06 20:34:32 +00:00
sAMAccountType String?
sn String?
thumbnailPhoto String?
title String?
userAccountControl String?
userPrincipalName String?
whenChanged String?
whenCreated String?
2022-08-30 11:33:05 +00:00
PAHost PAHost[] @relation("pahost_to_user")
createdTokens ResetToken[] @relation("resettoken_to_creator")
tokens ResetToken[] @relation("resettoken_to_user")
ownedWifiDevices WifiDevice[] @relation("wifidevice_to_owner")
wifiDevices WifiDevice[] @relation("wifidevice_to_user")
2022-08-30 15:12:39 +00:00
@@index([id, sAMAccountName])
2020-11-06 20:34:32 +00:00
}
model WifiDevice {
2022-08-30 11:33:05 +00:00
id Int @id @default(autoincrement())
oui String?
mac String @unique
hostname String?
firstSeen DateTime? @default(now())
lastSeen DateTime?
2022-06-02 17:15:22 +00:00
essid String?
2022-08-30 11:33:05 +00:00
ip String?
2022-06-02 17:15:22 +00:00
apName String?
2022-08-30 11:33:05 +00:00
status Status?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
userId Int?
controller String @default("unknown")
accessPointId Int?
2022-06-02 17:15:22 +00:00
frequency String?
2022-08-30 11:33:05 +00:00
identity String?
name String?
notes String?
ownerId Int?
2022-06-02 17:15:22 +00:00
protocol String?
2022-08-30 11:33:05 +00:00
signalStrength Int?
2022-06-02 17:15:22 +00:00
speed Int?
2022-06-14 13:26:01 +00:00
usage BigInt?
2022-08-30 11:33:05 +00:00
uptime Int?
2022-12-08 14:24:45 +00:00
networkId Int?
network Network? @relation(fields: [networkId], references: [id])
2022-08-30 11:33:05 +00:00
accessPoint AccessPoint? @relation("wifidevice_to_ap", fields: [accessPointId], references: [id])
owner User? @relation("wifidevice_to_owner", fields: [ownerId], references: [id])
user User? @relation("wifidevice_to_user", fields: [userId], references: [id])
2020-11-06 20:34:32 +00:00
}
2020-12-17 17:47:43 +00:00
model Log {
id Int @id @default(autoincrement())
timestamp DateTime @default(now())
level LogLevel @default(LOW)
2021-01-05 18:23:28 +00:00
tags String?
2020-12-17 17:47:43 +00:00
message String
data Json?
2022-08-30 13:07:07 +00:00
@@index([timestamp(sort: Desc)])
2020-12-17 17:47:43 +00:00
}
2021-01-14 19:12:37 +00:00
model PAHost {
2021-01-14 14:07:19 +00:00
id Int @id @default(autoincrement())
2021-01-14 17:04:41 +00:00
user String
2021-01-14 14:07:19 +00:00
description String
2021-01-14 19:12:37 +00:00
cidr String @unique
2021-01-14 14:07:19 +00:00
encryptedKey String
note String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2022-08-30 11:33:05 +00:00
ownerId Int
owner User @relation("pahost_to_user", fields: [ownerId], references: [id])
2021-01-14 14:07:19 +00:00
}
2022-03-24 16:31:56 +00:00
model AccessPoint {
2022-08-30 11:33:05 +00:00
id Int @id @default(autoincrement())
mac String @unique
hostname String @unique
name String?
local String?
notes String?
controller String?
model String?
ip String?
clients Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2022-06-08 18:32:56 +00:00
encryptedSshPassword String?
2022-08-30 11:33:05 +00:00
encryptedSshUser String?
inventoryTag String?
usage BigInt?
uptime Int?
2022-10-06 12:47:43 +00:00
uplinkSpeed Int?
2022-08-30 11:33:05 +00:00
stats AccessPointStats[] @relation("accesspointstats_to_ap")
wifiDevices WifiDevice[] @relation("wifidevice_to_ap")
2023-02-07 19:07:52 +00:00
network Network? @relation(fields: [networkId], references: [id])
networkId Int?
2022-06-02 17:15:22 +00:00
}
model AccessPointStats {
2022-08-30 11:33:05 +00:00
id Int @id @default(autoincrement())
timestamp DateTime @default(now())
clients Int?
2022-06-14 13:26:01 +00:00
avgSignalStrength Int?
minSignalStrength Int?
maxSignalStrength Int?
2022-08-30 11:33:05 +00:00
avgSpeed Int?
minSpeed Int?
maxSpeed Int?
avgClientUptime Int?
maxClientUptime Int?
avgUsage BigInt?
sumUsage BigInt?
accessPointId Int
accessPoint AccessPoint @relation("accesspointstats_to_ap", fields: [accessPointId], references: [id], onDelete: Cascade)
2022-08-30 15:12:39 +00:00
@@index([timestamp(sort: Desc)])
2022-06-02 17:15:22 +00:00
}
2022-12-08 14:24:45 +00:00
model NetworkStats {
2022-08-30 11:33:05 +00:00
id Int @id @default(autoincrement())
2022-12-08 14:24:45 +00:00
timestamp DateTime @default(now())
clients Int?
avgUsage BigInt?
sumUsage BigInt?
networkId Int
network Network @relation(fields: [networkId], references: [id])
@@index([timestamp(sort: Desc)])
}
model Network {
id Int @id @default(autoincrement())
name String @unique
shortName String @unique
cidr String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
NetworkStats NetworkStats[]
WifiDevice WifiDevice[]
2023-02-07 19:07:52 +00:00
AccessPoint AccessPoint[]
2022-08-30 15:12:39 +00:00
@@index([id])
2022-03-24 16:31:56 +00:00
}
2022-08-30 11:33:05 +00:00
enum Status {
ONLINE
RECENT
OFFLINE
}
enum LogLevel {
LOW
INFO
SUCCESS
WARNING
ERROR
}