diff --git a/backend-node/prisma/schema.prisma b/backend-node/prisma/schema.prisma index 34099936..1f68eda9 100644 --- a/backend-node/prisma/schema.prisma +++ b/backend-node/prisma/schema.prisma @@ -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") }