ERP-node/backend-node/prisma/screen-management.prisma

95 lines
3.1 KiB
Plaintext

// 화면관리 시스템 Prisma 스키마
// 기존 schema.prisma에 추가할 모델들
model screen_definitions {
screen_id Int @id @default(autoincrement())
screen_name String @db.VarChar(100)
screen_code String @unique @db.VarChar(50)
table_name String @db.VarChar(100)
company_code String @db.VarChar(50)
description String? @db.Text
is_active String @default("Y") @db.Char(1)
created_date DateTime @default(now()) @db.Timestamp(6)
created_by String? @db.VarChar(50)
updated_date DateTime @default(now()) @db.Timestamp(6)
updated_by String? @db.VarChar(50)
// 관계
layouts screen_layouts[]
menu_assignments screen_menu_assignments[]
@@index([company_code])
}
model screen_layouts {
layout_id Int @id @default(autoincrement())
screen_id Int
component_type String @db.VarChar(50)
component_id String @unique @db.VarChar(100)
parent_id String? @db.VarChar(100)
position_x Int
position_y Int
width Int
height Int
properties Json?
display_order Int @default(0)
created_date DateTime @default(now()) @db.Timestamp(6)
// 관계
screen screen_definitions @relation(fields: [screen_id], references: [screen_id], onDelete: Cascade)
widgets screen_widgets[]
@@index([screen_id])
}
model screen_widgets {
widget_id Int @id @default(autoincrement())
layout_id Int
table_name String @db.VarChar(100)
column_name String @db.VarChar(100)
widget_type String @db.VarChar(50)
label String? @db.VarChar(200)
placeholder String? @db.VarChar(200)
is_required Boolean @default(false)
is_readonly Boolean @default(false)
validation_rules Json?
display_properties Json?
created_date DateTime @default(now()) @db.Timestamp(6)
// 관계
layout screen_layouts @relation(fields: [layout_id], references: [layout_id], onDelete: Cascade)
@@index([layout_id])
}
model screen_templates {
template_id Int @id @default(autoincrement())
template_name String @db.VarChar(100)
template_type String @db.VarChar(50)
company_code String @db.VarChar(50)
description String? @db.Text
layout_data Json?
is_public Boolean @default(false)
created_by String? @db.VarChar(50)
created_date DateTime @default(now()) @db.Timestamp(6)
@@index([company_code])
}
model screen_menu_assignments {
assignment_id Int @id @default(autoincrement())
screen_id Int
menu_objid Decimal @db.Decimal
company_code String @db.VarChar(50)
display_order Int @default(0)
is_active String @default("Y") @db.Char(1)
created_date DateTime @default(now()) @db.Timestamp(6)
created_by String? @db.VarChar(50)
// 관계
screen screen_definitions @relation(fields: [screen_id], references: [screen_id], onDelete: Cascade)
@@unique([screen_id, menu_objid, company_code])
@@index([company_code])
}