입력 폼 저장기능

This commit is contained in:
kjs 2025-09-04 14:22:11 +09:00
parent feb26fa32a
commit d7c41fc35d
1 changed files with 107 additions and 197 deletions

View File

@ -8,7 +8,17 @@ datasource db {
url = env("DATABASE_URL")
}
// 테이블 타입관리 관련 모델은 이미 정의되어 있음 (line 11, 717)
model dynamic_form_data {
id Int @id @default(autoincrement())
screen_id Int
table_name String @db.VarChar(100)
form_data Json
created_at DateTime? @default(now()) @db.Timestamp(6)
updated_at DateTime? @default(now()) @updatedAt @db.Timestamp(6)
created_by String @db.VarChar(50)
updated_by String @db.VarChar(50)
company_code String @db.VarChar(20)
}
model admin_supply_mng {
objid Decimal @id @default(0) @db.Decimal
@ -74,15 +84,12 @@ model approval {
@@ignore
}
model approval_kind {
target_type String @db.VarChar
target_type String @id @db.VarChar
target_name String? @db.VarChar
regdate DateTime? @db.Timestamp(6)
status String? @db.VarChar
@@id([target_type])
@@index([status])
}
@ -135,8 +142,6 @@ model arrival_plan {
@@index([part_objid])
}
model as_mng {
objid Int @id
as_no String? @db.VarChar
@ -247,20 +252,13 @@ model attach_file_info {
@@ignore
}
model authority_master {
objid Decimal @id @default(0) @db.Decimal
auth_name String? @default("NULL::character varying") @db.VarChar(256)
auth_code String? @default("NULL::character varying") @db.VarChar(64)
writer String? @default("NULL::character varying") @db.VarChar(32)
regdate DateTime? @db.Timestamp(6)
status String? @default("NULL::character varying") @db.VarChar(32)
// 관계 설정
objid Decimal @id @default(0) @db.Decimal
auth_name String? @default("NULL::character varying") @db.VarChar(256)
auth_code String? @default("NULL::character varying") @db.VarChar(64)
writer String? @default("NULL::character varying") @db.VarChar(32)
regdate DateTime? @db.Timestamp(6)
status String? @default("NULL::character varying") @db.VarChar(32)
sub_users authority_sub_user[]
}
@ -277,15 +275,12 @@ model authority_master_history {
}
model authority_sub_user {
objid Decimal @id @default(0) @db.Decimal
master_objid Decimal? @db.Decimal
user_id String? @default("NULL::character varying") @db.VarChar(64)
writer String? @default("NULL::character varying") @db.VarChar(64)
regdate DateTime? @db.Timestamp(6)
// 관계 설정
objid Decimal @id @default(0) @db.Decimal
master_objid Decimal? @db.Decimal
user_id String? @default("NULL::character varying") @db.VarChar(64)
writer String? @default("NULL::character varying") @db.VarChar(64)
regdate DateTime? @db.Timestamp(6)
authority_master authority_master? @relation(fields: [master_objid], references: [objid])
user user_info? @relation(fields: [user_id], references: [user_id])
@@index([master_objid])
@@index([user_id])
@ -343,13 +338,6 @@ model bom_part_qty {
@@index([parent_objid])
}
model car_distribute_member {
objid Decimal @db.Decimal
car_objid Decimal @db.Decimal
@ -439,6 +427,7 @@ model column_labels {
column_name String? @db.VarChar(100)
column_label String? @db.VarChar(200)
web_type String? @db.VarChar(50)
input_type String? @default("direct") @db.VarChar(20) // direct, auto
detail_settings String?
description String?
display_order Int? @default(0)
@ -530,9 +519,10 @@ model company_mng {
regdate DateTime? @db.Timestamp(6)
status String? @db.VarChar(32)
// 관계
// 관계 정
menus menu_info[]
}
model contract_mgmt {
objid String @id @db.VarChar
category_cd String? @db.VarChar
@ -599,8 +589,6 @@ model contract_mgmt_option {
@@index([option_objid])
}
model counselingmgmt {
objid String @id @db.VarChar
reg_date String? @db.VarChar
@ -625,8 +613,6 @@ model counselingmgmt {
parent_seq String? @db.VarChar
}
model customer_service_mgmt {
objid String @id @db.VarChar
service_no String? @db.VarChar
@ -1181,8 +1167,6 @@ model inventory_mgmt_in {
@@index([parent_objid])
}
model inventory_mgmt_out {
objid String @id @db.VarChar
parent_objid String? @db.VarChar
@ -1262,6 +1246,7 @@ model invoice_mgmt {
discount_percentage String? @db.VarChar
inv_discount_price String? @db.VarChar
}
model invoice_mgmt_part {
objid String @id @db.VarChar
invoice_objid String? @db.VarChar
@ -1506,7 +1491,7 @@ model menu_info {
lang_key String? @db.VarChar(100)
lang_key_desc String? @db.VarChar(100)
// 관계 설정 (나중에 활용 가능)
// 관계 정의
company company_mng? @relation(fields: [company_code], references: [company_code])
@@index([parent_obj_id])
@ -1537,8 +1522,6 @@ model mold_dev_request_info {
status String? @db.VarChar(50)
}
model multi_lang_key_master {
key_id Int @id @default(autoincrement())
company_code String @default("*") @db.VarChar(20)
@ -1801,7 +1784,6 @@ model order_spec_mng_history {
@@ignore
}
model part_bom_qty {
bom_report_objid Decimal @db.Decimal
objid Decimal @id @db.Decimal
@ -1837,9 +1819,6 @@ model part_bom_report {
@@index([unit_code, contract_objid], map: "part_bom_report_unit_code_idx")
}
model part_distribution_list {
part_objid Decimal @db.Decimal
product_mgmt_objid String? @db.VarChar(100)
@ -2021,9 +2000,6 @@ model part_mng_history {
@@ignore
}
model planning_issue {
objid String @id @db.VarChar
issue_no String @db.VarChar
@ -2221,10 +2197,6 @@ model pms_wbs_task {
@@ignore
}
model pms_wbs_task_confirm {
objid Decimal? @db.Decimal
target_objid Decimal? @db.Decimal
@ -2349,6 +2321,7 @@ model product_group_mng {
@@ignore
}
model product_kind_spec {
objid String @db.VarChar
objid_parent String @db.VarChar
@ -2798,13 +2771,6 @@ model purchase_order_master {
@@index([multi_master_objid])
}
model purchase_order_master_241216 {
objid String? @db.VarChar
purchase_order_no String? @db.VarChar
@ -2920,13 +2886,6 @@ model purchase_order_part {
@@index([purchase_order_master_objid])
}
model ratecal_mgmt {
ratecal_mgmt_objid Decimal @default(0) @db.Decimal
position String? @db.VarChar(100)
@ -2944,8 +2903,6 @@ model ratecal_mgmt {
@@ignore
}
model receive_history {
objid String @id @db.VarChar
part_objid String @db.VarChar
@ -3071,7 +3028,6 @@ model route {
@@ignore
}
model sales_bom_part_qty {
sales_bom_objid String @db.VarChar
objid String @id @db.VarChar
@ -3106,7 +3062,6 @@ model sales_bom_part_qty {
sales_part_code String? @db.VarChar
}
model sales_bom_report {
objid String @id @default("") @db.VarChar
parent_objid String? @unique(map: "sales_bom_report_parent_objid_idx") @db.VarChar
@ -3152,7 +3107,6 @@ model sales_bom_report_part {
@@index([parent_objid])
}
model sales_bom_report_part_241218 {
objid String? @db.VarChar
parent_objid String? @db.VarChar
@ -3193,8 +3147,6 @@ model sales_long_delivery {
price String? @default("0") @db.VarChar
}
model sales_long_delivery_input {
objid String @id(map: "sales_long_delivery_plan_pkey") @db.VarChar
parent_objid String? @db.VarChar
@ -3205,8 +3157,6 @@ model sales_long_delivery_input {
admin_editor String? @db.VarChar
}
model sales_long_delivery_predict {
objid String @id @db.VarChar
parent_objid String? @db.VarChar
@ -3249,7 +3199,6 @@ model sales_request_master {
remark String? @db.VarChar
}
model sales_request_part {
objid String @id @db.VarChar
sales_bom_qty_objid String? @db.VarChar
@ -3309,7 +3258,7 @@ model setup_wbs_task {
}
model setup_wbs_task_standard {
objid String? @unique(map: "setup_wbs_task_standard_objid_key") @db.VarChar
objid String? @unique @db.VarChar
contract_objid String? @db.VarChar
parent_objid String? @db.VarChar
task_category String? @db.VarChar
@ -3808,6 +3757,7 @@ model swpc120a_tbl {
@@id([imitemid, suvndcd], map: "pk_swpc120a_tbl")
}
model swpc130a_tbl {
imitemid String @db.VarChar(15)
suvndcd String @db.VarChar(5)
@ -4566,6 +4516,7 @@ model swsb500a_tbl {
edit_date DateTime? @db.Timestamp(6)
edit_emp String? @db.VarChar(30)
}
model swsb510a_tbl {
frw_req_no String @id(map: "pk_swsb510a_tbl") @db.VarChar(10)
req_date String? @db.VarChar(8)
@ -4874,15 +4825,6 @@ model table_labels {
column_labels column_labels[]
}
model template_mng {
objid Int @id
template_code String? @db.VarChar
@ -4893,12 +4835,6 @@ model template_mng {
template_code_detail String? @db.VarChar
}
model time_sheet {
objid Decimal @default(0) @db.Decimal
project_mgmt_objid Decimal? @db.Decimal
@ -4971,7 +4907,6 @@ model user_info {
user_type String? @db.VarChar(1024)
user_type_name String? @db.VarChar(1024)
regdate DateTime? @db.Timestamp(6)
data_type String? @db.VarChar(64)
status String? @db.VarChar(32)
end_date DateTime? @db.Timestamp(6)
fax_no String? @db.VarChar
@ -4980,9 +4915,7 @@ model user_info {
photo Bytes?
locale String? @db.VarChar
company_code String? @db.VarChar(50)
// 관계 설정
authorities authority_sub_user[]
data_type String? @db.VarChar(64)
}
model user_info_history {
@ -5051,44 +4984,38 @@ model zz_230410_user_info {
@@ignore
}
// 화면관리 시스템 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[]
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?
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())
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)
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)
// 관계
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[]
@ -5096,99 +5023,82 @@ model screen_layouts {
}
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)
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)
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?
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)
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])
}
// =====================================================
// 공통코드 관리 시스템 모델
// =====================================================
/// 공통코드 카테고리 테이블
model code_category {
category_code String @id @db.VarChar(50)
category_name String @db.VarChar(100)
category_name_eng String? @db.VarChar(100)
description String? @db.Text
sort_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)
updated_date DateTime? @default(now()) @db.Timestamp(6)
updated_by String? @db.VarChar(50)
// 관계 - 코드 상세 정보
codes code_info[]
@@index([is_active])
@@index([sort_order])
category_code String @id @db.VarChar(50)
category_name String @db.VarChar(100)
category_name_eng String? @db.VarChar(100)
description String?
sort_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)
updated_date DateTime? @default(now()) @db.Timestamp(6)
updated_by String? @db.VarChar(50)
codes code_info[]
}
/// 공통코드 상세 정보 테이블
model code_info {
code_category String @db.VarChar(50)
code_value String @db.VarChar(50)
code_name String @db.VarChar(100)
code_name_eng String? @db.VarChar(100)
description String? @db.Text
sort_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)
updated_date DateTime? @default(now()) @db.Timestamp(6)
updated_by String? @db.VarChar(50)
code_category String @db.VarChar(50)
code_value String @db.VarChar(50)
code_name String @db.VarChar(100)
code_name_eng String? @db.VarChar(100)
description String?
sort_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)
updated_date DateTime? @default(now()) @db.Timestamp(6)
updated_by String? @db.VarChar(50)
category code_category @relation(fields: [code_category], references: [category_code], onDelete: Cascade, map: "fk_code_info_category")
// 관계 - 코드 카테고리
category code_category @relation(fields: [code_category], references: [category_code], onDelete: Cascade, onUpdate: Cascade)
@@id([code_category, code_value])
@@index([code_category])
@@index([is_active])
@@index([code_category, sort_order])
@@id([code_category, code_value], map: "pk_code_info")
@@index([code_category, sort_order], map: "idx_code_info_sort")
}