feat: add generated code

This commit is contained in:
aid-orchestrator
2026-04-25 13:53:55 +00:00
parent 011fbe8ef3
commit c05e6941b3
119 changed files with 2989 additions and 0 deletions

View File

@@ -0,0 +1,241 @@
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?
// Relations
repairOrders RepairOrder[]
changeEquipmentStatuses ChangeEquipmentStatus[]
consumptionRegistrations ConsumptionRegistration[]
maintenancePlannings MaintenancePlanning[]
// Indexes
@@index([inventoryNumber])
@@index([serialNumber])
@@index([equipmentType])
@@index([status])
@@index([dateOfInspection])
}
model Employee {
code String @id
fullName String
role Role
position String
price Float?
phoneNumber Float?
// Self-referential relations for hierarchy
boss Employee? @relation("EmployeeHierarchy", fields: [bossCode], references: [code])
bossCode String?
subordinates Employee[] @relation("EmployeeHierarchy")
// Relations to other models
confirmationDocuments ConfirmationDocument[]
resourceNeeds ResourceNeeds[]
categoryResources CategoryResource[]
}
model Part {
id String @id @default(uuid())
name String
categories CategoryPart?
price Float?
description String?
serialNumber String?
// Relations
resourceNeeds ResourceNeeds[]
categoryResources CategoryResource[]
}
model CategoryResource {
id String @id @default(uuid())
// Relations
part Part? @relation(fields: [partId], references: [id])
partId String?
employee Employee? @relation(fields: [employeeCode], references: [code])
employeeCode String?
}
model PriceList {
id String @id @default(uuid())
costOfWorkingHours Float?
partPrice Float?
}
model RepairOrder {
id String @id @default(uuid())
number String @unique
date DateTime @db.Date
equipment Equipment @relation(fields: [equipmentId], references: [id])
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?
// Relations
confirmationDocuments ConfirmationDocument[]
// Indexes
@@index([date])
@@index([plannedAt])
@@index([status])
}
model ChangeEquipmentStatus {
id String @id @default(uuid())
equipment Equipment @relation(fields: [equipmentId], references: [id])
equipmentId String
newStatus EquipmentStatus
number String?
comment String?
date DateTime @db.Date
responsible String?
document String? // Storing file path or reference
// Indexes
@@index([date])
@@index([newStatus])
}
model ConfirmationDocument {
id String @id @default(uuid())
number String?
date DateTime @db.Date
manager Employee @relation(fields: [managerCode], references: [code])
managerCode String
order RepairOrder @relation(fields: [orderId], references: [id])
orderId String
confirmed Boolean?
// Indexes
@@index([date])
@@index([confirmed])
}
model ConsumptionRegistration {
id String @id @default(uuid())
number String?
date DateTime @db.Date
equipment Equipment @relation(fields: [equipmentId], references: [id])
equipmentId String
totalEngineHours Decimal?
fuelConsumption Float?
// Indexes
@@index([date])
}
model MaintenancePlanning {
id String @id @default(uuid())
date DateTime @db.Date
equipment Equipment @relation(fields: [equipmentId], references: [id])
equipmentId String
repairKind RepairKind
// Indexes
@@index([date])
@@index([repairKind])
}
model ResourceNeeds {
id String @id @default(uuid())
// Many-to-many relations
employees Employee[]
parts Part[]
}
model MoneyNeeds {
id String @id @default(uuid())
employees Float?
part Float?
}