ifms-printer-manager/prisma/schema.prisma
Douglas Barone c2476ba74a Enforce SN
2023-06-26 08:15:20 -04:00

85 lines
1.6 KiB
Plaintext

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
enum Role {
ADMIN // SERTI
INSPECTOR // Fiscal de contrato
USER // Usuário
}
model User {
id Int @id @default(autoincrement())
username String? @unique
mail String?
displayName String?
thumbnailPhoto String?
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
campus String?
roles Role[] @default([USER])
}
model Printer {
id Int @id @default(autoincrement())
friendlyName String?
location String?
serialNumber String @unique
ip String @unique
model String
blackTonerModel String?
cyanTonerModel String?
magentaTonerModel String?
yellowTonerModel String?
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
status PrinterStatus[]
network Network @relation(fields: [networkId], references: [id])
networkId Int
}
model PrinterStatus {
id Int @id @default(autoincrement())
tonerBlackLevel Int
tonerCyanLevel Int?
tonerMagentaLevel Int?
tonerYellowLevel Int?
counter Int
timestamp DateTime @default(now())
printerId Int
printer Printer @relation(fields: [printerId], references: [id], onDelete: Cascade)
@@index([timestamp])
}
model Network {
id Int @id @default(autoincrement())
name String @unique
shortName String @unique
cidr String @unique
printers Printer[]
@@index([id])
}