194 lines
4.9 KiB
Plaintext
194 lines
4.9 KiB
Plaintext
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
enum EquipmentStatus {
|
|
Active
|
|
Repair
|
|
Reserve
|
|
WriteOff
|
|
}
|
|
|
|
enum RepairOrderStatus {
|
|
Draft
|
|
Approved
|
|
InWork
|
|
Done
|
|
Cancelled
|
|
}
|
|
|
|
enum RepairKind {
|
|
TO
|
|
TR
|
|
TRE
|
|
KR
|
|
AR
|
|
MP
|
|
}
|
|
|
|
enum laborOperation {
|
|
Manual
|
|
MachineManual
|
|
Machine
|
|
}
|
|
|
|
enum EnumPeriodicityTO {
|
|
Ежедневное
|
|
Еженедельное
|
|
Ежемесячное
|
|
Полугодовое
|
|
Годовое
|
|
}
|
|
|
|
enum Role {
|
|
Исполнитель
|
|
Подписант
|
|
Пользователь
|
|
}
|
|
|
|
enum CategoryPart {
|
|
Расходник
|
|
Запчасть
|
|
Инструмент
|
|
Спецодежда
|
|
}
|
|
|
|
enum EquipmentType {
|
|
Производственное
|
|
Энергетическое
|
|
Насосное
|
|
Компрессорное
|
|
}
|
|
|
|
model Equipment {
|
|
id String @id @default(uuid())
|
|
name String
|
|
serialNumber String
|
|
inventoryNumber String @unique
|
|
equipmentType EquipmentType
|
|
dateOfInspection DateTime? @db.Date
|
|
periodicityTO EnumPeriodicityTO
|
|
location String?
|
|
status EquipmentStatus
|
|
commissionedAt DateTime? @db.Date
|
|
totalEngineHours Decimal?
|
|
engineHoursSinceLastRepair Decimal?
|
|
lastRepairAt DateTime? @db.Date
|
|
notes String?
|
|
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?
|
|
|
|
// Self-referential relation for boss/subordinates
|
|
bossId String?
|
|
boss Employee? @relation("EmployeeHierarchy", fields: [bossId], references: [code])
|
|
subordinates Employee[] @relation("EmployeeHierarchy")
|
|
|
|
// Relations
|
|
categoryResources CategoryResource[]
|
|
confirmationDocuments ConfirmationDocument[]
|
|
}
|
|
|
|
model Part {
|
|
id String @id @default(uuid())
|
|
name String
|
|
categories CategoryPart?
|
|
price Float?
|
|
description String?
|
|
serialNumber String?
|
|
|
|
// Relations
|
|
categoryResources CategoryResource[]
|
|
}
|
|
|
|
model CategoryResource {
|
|
id String @id @default(uuid())
|
|
|
|
// Relations to Part and Employee (mutually exclusive)
|
|
partId String?
|
|
part Part? @relation(fields: [partId], references: [id])
|
|
|
|
employeeCode String?
|
|
employee Employee? @relation(fields: [employeeCode], references: [code])
|
|
}
|
|
|
|
model RepairOrder {
|
|
id String @id @default(uuid())
|
|
number String @unique
|
|
date DateTime @unique @db.Date
|
|
equipmentId String
|
|
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
|
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
|
|
confirmationDocuments ConfirmationDocument[]
|
|
}
|
|
|
|
model ChangeEquipmentStatus {
|
|
id String @id @default(uuid())
|
|
equipmentId String
|
|
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
|
newStatus EquipmentStatus
|
|
number String?
|
|
comment String?
|
|
date DateTime @db.Date
|
|
responsible String?
|
|
document String? // File path or reference
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model ConfirmationDocument {
|
|
id String @id @default(uuid())
|
|
number String?
|
|
date DateTime @db.Date
|
|
managerCode String?
|
|
manager Employee? @relation(fields: [managerCode], references: [code])
|
|
orderId String
|
|
order RepairOrder @relation(fields: [orderId], references: [id])
|
|
confirmed Boolean?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model ConsumptionRegistration {
|
|
id String @id @default(uuid())
|
|
number String?
|
|
date DateTime @db.Date
|
|
equipmentId String
|
|
equipment Equipment @relation(fields: [equipmentId], references: [id])
|
|
totalEngineHours Decimal?
|
|
fuelConsumption Decimal?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|