// 화면관리 시스템 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]) }