60 lines
1.1 KiB
Plaintext
60 lines
1.1 KiB
Plaintext
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
enum EquipmentStatus {
|
|
Active
|
|
Repair
|
|
Reserve
|
|
WriteOff
|
|
}
|
|
|
|
model Equipment {
|
|
id String @id @default(uuid())
|
|
name String
|
|
serialNumber String
|
|
dateOfInspection DateTime?
|
|
commissionedAt DateTime?
|
|
status EquipmentStatus
|
|
|
|
// Relations
|
|
changeEquipmentStatuses ChangeEquipmentStatus[]
|
|
|
|
// Timestamps
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Indexes
|
|
@@unique([serialNumber])
|
|
@@index([status])
|
|
@@index([dateOfInspection])
|
|
@@index([commissionedAt])
|
|
}
|
|
|
|
model ChangeEquipmentStatus {
|
|
equipmentId String
|
|
newStatus EquipmentStatus
|
|
number String?
|
|
date DateTime
|
|
responsible String?
|
|
|
|
// Relations
|
|
equipment Equipment @relation(fields: [equipmentId], references: [id], onDelete: Cascade)
|
|
|
|
// Timestamps
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Composite primary key
|
|
@@id([equipmentId, newStatus])
|
|
// Indexes
|
|
@@index([date])
|
|
@@index([responsible])
|
|
@@index([number])
|
|
}
|