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