feat: add generated code
This commit is contained in:
193
backend/prisma/schema.prisma
Normal file
193
backend/prisma/schema.prisma
Normal file
@@ -0,0 +1,193 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user