139 lines
4.5 KiB
Plaintext
139 lines
4.5 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 = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Admin {
|
|
id String @id @default(cuid())
|
|
firstName String
|
|
surname String
|
|
email String @unique
|
|
password String
|
|
phone String?
|
|
authLevel String @default("admin")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model ShiftManager {
|
|
id String @id @default(cuid())
|
|
empNo String @unique
|
|
firstName String
|
|
surname String
|
|
email String?
|
|
password String?
|
|
phone String?
|
|
status String @default("active")
|
|
teams Team[]
|
|
shifts Shift[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Worker {
|
|
id String @id @default(cuid())
|
|
empNo String @unique
|
|
firstName String
|
|
surname String
|
|
email String?
|
|
password String?
|
|
phone String?
|
|
jobPosition String
|
|
status String @default("active")
|
|
teamId String?
|
|
team Team? @relation(fields: [teamId], references: [id])
|
|
shiftTeamMembers ShiftTeamMember[]
|
|
machineShiftReports MachineShiftReport[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Team {
|
|
id String @id @default(cuid())
|
|
name String @unique
|
|
shiftManagerId String
|
|
shiftManager ShiftManager @relation(fields: [shiftManagerId], references: [id])
|
|
workers Worker[]
|
|
shiftTeamMembers ShiftTeamMember[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Machine {
|
|
id String @id @default(cuid())
|
|
name String @unique
|
|
status String @default("active")
|
|
machineType String
|
|
bottlesPerMin Int
|
|
shiftTeamMembers ShiftTeamMember[]
|
|
machineShiftReports MachineShiftReport[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Shift {
|
|
id String @id @default(cuid())
|
|
name String
|
|
shiftManagerId String
|
|
shiftManager ShiftManager @relation(fields: [shiftManagerId], references: [id])
|
|
startTime DateTime
|
|
endTime DateTime
|
|
shiftDate DateTime
|
|
status String @default("active")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
shiftTeamMembers ShiftTeamMember[]
|
|
machineShiftReports MachineShiftReport[]
|
|
}
|
|
|
|
model ShiftTeamMember {
|
|
id String @id @default(cuid())
|
|
shiftId String
|
|
shift Shift @relation(fields: [shiftId], references: [id])
|
|
teamId String
|
|
team Team @relation(fields: [teamId], references: [id])
|
|
workerId String
|
|
worker Worker @relation(fields: [workerId], references: [id])
|
|
shiftRole String
|
|
machineId String?
|
|
machine Machine? @relation(fields: [machineId], references: [id])
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model MachineShiftReport {
|
|
id String @id @default(cuid())
|
|
shiftId String
|
|
shift Shift @relation(fields: [shiftId], references: [id])
|
|
machineId String
|
|
machine Machine @relation(fields: [machineId], references: [id])
|
|
workerId String
|
|
worker Worker @relation(fields: [workerId], references: [id])
|
|
wallThickness Json?
|
|
sectionWeights Json?
|
|
station1Weights Json?
|
|
safetyChecklist Json?
|
|
filmDetails Json?
|
|
bottleWeightTracking Json?
|
|
hourlyQualityChecks Json?
|
|
seamLeakTest Json?
|
|
productionParameters Json?
|
|
productionTracking Json?
|
|
averageWeight Float?
|
|
totalBagsMade Int?
|
|
qualityMetrics Json?
|
|
outputMetrics Json?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|