206 lines
5.1 KiB
Plaintext
206 lines
5.1 KiB
Plaintext
datasource db {
|
||
provider = "postgresql"
|
||
url = env("DATABASE_URL")
|
||
}
|
||
|
||
generator client {
|
||
provider = "prisma-client-js"
|
||
}
|
||
|
||
enum EquipmentStatus {
|
||
Active
|
||
Repair
|
||
Reserve
|
||
WriteOff
|
||
}
|
||
|
||
enum laborOperation {
|
||
Manual
|
||
MachineManual
|
||
Machine
|
||
}
|
||
|
||
enum EnumPeriodicityTO {
|
||
Ежедневное
|
||
Еженедельное
|
||
Ежемесячное
|
||
Полугодовое
|
||
Годовое
|
||
}
|
||
|
||
enum Role {
|
||
Исполнитель
|
||
Подписант
|
||
Пользователь
|
||
}
|
||
|
||
enum CategoryPart {
|
||
Расходник
|
||
Запчасть
|
||
Инструмент
|
||
Спецодежда
|
||
}
|
||
|
||
enum EquipmentType {
|
||
Производственное
|
||
Энергетическое
|
||
Насосное
|
||
Компрессорное
|
||
}
|
||
|
||
enum RepairKind {
|
||
TO
|
||
TR
|
||
TRE
|
||
KR
|
||
AR
|
||
MP
|
||
}
|
||
|
||
enum RepairOrderStatus {
|
||
Draft
|
||
Approved
|
||
InWork
|
||
Done
|
||
Cancelled
|
||
}
|
||
|
||
model Equipment {
|
||
id String @id @default(uuid())
|
||
name String
|
||
serialNumber String
|
||
dateOfInspection DateTime? @db.Date
|
||
inventoryNumber String @unique
|
||
equipmentType EquipmentType
|
||
periodicityTO EnumPeriodicityTO
|
||
status EquipmentStatus @default(Active)
|
||
commissionedAt DateTime? @db.Date
|
||
totalEngineHours Decimal?
|
||
engineHoursSinceLastRepair Decimal?
|
||
lastRepairAt DateTime? @db.Date
|
||
notes String?
|
||
workAsPartOf laborOperation?
|
||
fuelСonsumed Float?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
repairOrders RepairOrder[]
|
||
changeEquipmentStatuses ChangeEquipmentStatus[]
|
||
consumptionRegistrations ConsumptionRegistration[]
|
||
}
|
||
|
||
model Employee {
|
||
code String @id
|
||
fullName String
|
||
role Role
|
||
position String
|
||
price Float?
|
||
phoneNumber Float?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Self-referential relation for boss/subordinates
|
||
bossCode String?
|
||
boss Employee? @relation("EmployeeBoss", fields: [bossCode], references: [code])
|
||
subordinates Employee[] @relation("EmployeeBoss")
|
||
|
||
// Relations
|
||
confirmationDocuments ConfirmationDocument[]
|
||
categoryResources CategoryResource[]
|
||
}
|
||
|
||
model Part {
|
||
id String @id @default(uuid())
|
||
name String
|
||
categories CategoryPart?
|
||
price Float?
|
||
description String?
|
||
serialNumber String?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
categoryResources CategoryResource[]
|
||
}
|
||
|
||
model CategoryResource {
|
||
id String @id @default(uuid())
|
||
partId String?
|
||
employeeCode String?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
part Part? @relation(fields: [partId], references: [id])
|
||
employee Employee? @relation(fields: [employeeCode], references: [code])
|
||
}
|
||
|
||
model RepairOrder {
|
||
id String @id @default(uuid())
|
||
number String @unique
|
||
date DateTime @db.Date
|
||
equipmentId String
|
||
repairKind RepairKind
|
||
status RepairOrderStatus @default(Draft)
|
||
plannedAt DateTime @db.Date
|
||
startedAt DateTime? @db.Date
|
||
completedAt DateTime? @db.Date
|
||
contractor String?
|
||
engineHoursAtRepair Decimal?
|
||
description String?
|
||
notes String?
|
||
confirmed Boolean?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
||
confirmationDocuments ConfirmationDocument[]
|
||
}
|
||
|
||
model ChangeEquipmentStatus {
|
||
id String @id @default(uuid())
|
||
equipmentId String
|
||
newStatus EquipmentStatus
|
||
number String?
|
||
comment String?
|
||
date DateTime @db.Date
|
||
responsible String?
|
||
document String? // Storing file path/URL
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
||
}
|
||
|
||
model ConfirmationDocument {
|
||
id String @id @default(uuid())
|
||
number String?
|
||
date DateTime @db.Date
|
||
managerCode String?
|
||
orderId String
|
||
confirmed Boolean?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
manager Employee? @relation(fields: [managerCode], references: [code])
|
||
order RepairOrder @relation(fields: [orderId], references: [id])
|
||
}
|
||
|
||
model ConsumptionRegistration {
|
||
id String @id @default(uuid())
|
||
number String?
|
||
date DateTime @db.Date
|
||
equipmentId String
|
||
totalEngineHours Decimal?
|
||
fuelConsumption Float?
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
|
||
// Relations
|
||
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
||
}
|