add ai migration
This commit is contained in:
parent
0b7a32423b
commit
f6445e01ff
107
plans_migration.ts
Normal file
107
plans_migration.ts
Normal file
@ -0,0 +1,107 @@
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// 1. Подключение к базе данных и генерация клиента
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
datasource db {
|
||||
provider = "postgresql" // можно заменить на mysql, sqlite и др.
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// 2. Модели
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
// Метаданные приложения (верхняя часть JSON‑файла)
|
||||
model AppInfo {
|
||||
id Int @id @default(autoincrement())
|
||||
version String? // "НомерВерсииПриложения"
|
||||
appName String? // "ИмяПриложения"
|
||||
userId String? // "НомерПользователя"
|
||||
userName String? // "ИмяПользователя"
|
||||
fileName String? // "ИмяФайла"
|
||||
protocolNumber String? // "НомПротокСовета"
|
||||
note String? // "Примечание"
|
||||
yearStart String? // "ГодНачалаПодготовки"
|
||||
typeGOS String? // "ТипГОСа"
|
||||
activeOOPCode String? // "КодАктивногоООП"
|
||||
zPerWeek Float? // "ЗЕТвНеделю"
|
||||
precision Float? // "Точность"
|
||||
isDvig Boolean @default(false) // "ДвИГА"
|
||||
isGvig Boolean @default(false) // "ГвИГА"
|
||||
semestersOnCourse Int? // "СеместровНаКурсе"
|
||||
creditsHours Int? // "ЧасовВКредите"
|
||||
isIndividual Boolean @default(false) // "Индивидуальный"
|
||||
fullName String? // "ФИО"
|
||||
isMilitary Boolean @default(false) // "Военные"
|
||||
educationLevel Int? // "КодУровняОбразования"
|
||||
planTypeCode Int? // "КодТипаПлана"
|
||||
loadStatus Int? // "СтатусВНагрузке"
|
||||
studiedHours Int? // "ИзученоКонтЧасов"
|
||||
hideRPD Boolean @default(false) // "СкрытьВРПД"
|
||||
hideOnSite Boolean @default(false) // "СкрытьНаСайте"
|
||||
minAppVersion String? // "MinAppVersion"
|
||||
}
|
||||
|
||||
// Заезды (массив "Заезды")
|
||||
model Ride {
|
||||
id Int @id @default(autoincrement())
|
||||
diffgrId String @map("diffgr:id") // "diffgr:id"
|
||||
rowOrder Int @map("msdata:rowOrder") // "msdata:rowOrder"
|
||||
code Int // "Код"
|
||||
course Int // "Курс"
|
||||
session Int // "Сессия"
|
||||
title String? // "Название"
|
||||
duration Int // "Продолжительность"
|
||||
planCode Int @map("КодПлана") // "КодПлана"
|
||||
|
||||
// При необходимости можно связать заезды с Планом
|
||||
plan Plan? @relation(fields: [planId], references: [id])
|
||||
planId Int?
|
||||
}
|
||||
|
||||
// План компетенций (опциональная справочная модель)
|
||||
model Plan {
|
||||
id Int @id @default(autoincrement())
|
||||
code Int @unique // "Код"
|
||||
oopCode Int? @map("КодООП") // "КодООП"
|
||||
abbreviation String? @map("ШифрКомпетенции") // "ШифрКомпетенции"
|
||||
name String? @map("Наименование") // "Наименование"
|
||||
number String? @map("Номер") // "Номер"
|
||||
type Int? @map("Тип") // (не встречается в примерах, но оставлено)
|
||||
view Int? @map("Вид") // (не встречается в примерах, но оставлено)
|
||||
source String? @map("Источник") // "Источник"
|
||||
category String? @map("Категория") // "Категория"
|
||||
|
||||
// Связанные компетенции и заезды
|
||||
competencies Competency[]
|
||||
rides Ride[]
|
||||
}
|
||||
|
||||
// Планы компетенций (массив "ПланыКомпетенции")
|
||||
model Competency {
|
||||
id Int @id @default(autoincrement())
|
||||
diffgrId String @map("diffgr:id") // "diffgr:id"
|
||||
rowOrder Int @map("msdata:rowOrder") // "msdata:rowOrder"
|
||||
code Int // "Код"
|
||||
oopCode Int? @map("КодООП") // "КодООП"
|
||||
abbreviation String? @map("ШифрКомпетенции") // "ШифрКомпетенции"
|
||||
name String? @map("Наименование") // "Наименование"
|
||||
number String? @map("Номер") // "Номер"
|
||||
planCode Int @map("КодПлана") // "КодПлана"
|
||||
isDeleted Boolean @map("Удалена") @default(false) // "Удалена"
|
||||
source String? @map("Источник") // "Источник"
|
||||
category String? @map("Категория") // "Категория"
|
||||
parentCode Int? @map("КодРодителя") // "КодРодителя"
|
||||
|
||||
// Иерархия «родитель‑дети» (само‑референция)
|
||||
parentId Int?
|
||||
parent Competency? @relation("Children", fields: [parentId], references: [id])
|
||||
children Competency[] @relation("Children")
|
||||
|
||||
// Связь с Планом (если в дальнейшем план будет отдельной сущностью)
|
||||
planId Int?
|
||||
plan Plan? @relation(fields: [planId], references: [id])
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user