summaryrefslogtreecommitdiff
path: root/db/schema
diff options
context:
space:
mode:
Diffstat (limited to 'db/schema')
-rw-r--r--db/schema/MDG/mdg.ts1323
-rw-r--r--db/schema/evaluation.ts314
-rw-r--r--db/schema/evaluationTarget.ts385
-rw-r--r--db/schema/index.ts2
-rw-r--r--db/schema/procurementRFQ.ts11
-rw-r--r--db/schema/users.ts16
6 files changed, 2045 insertions, 6 deletions
diff --git a/db/schema/MDG/mdg.ts b/db/schema/MDG/mdg.ts
new file mode 100644
index 00000000..217f94bb
--- /dev/null
+++ b/db/schema/MDG/mdg.ts
@@ -0,0 +1,1323 @@
+import { relations } from 'drizzle-orm';
+import { timestamp, integer, varchar, pgSchema, unique } from 'drizzle-orm/pg-core';
+
+// MDG 전용 PostgreSQL 스키마 생성
+export const mdgSchema = pgSchema("mdg");
+
+export const BP_HEADER = mdgSchema.table('BP_HEADER', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BP_HEADER: varchar({ length: 255 }), // Business Partner Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ VNDRCD: varchar({ length: 255 }), // VENDOR코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.BP_HEADER),
+]);
+
+// TODO: 물어봐야 함
+// BP_HEADER_ADDRESS 를 upsert 할 때 저장해줘야 하는건지? ADR_NO가 어떤 BP_HEADER에 속하는지 알 방법이 없는 상태임
+// 인터페이스 정의서에서도 안 주는데, XML 객체 구조상에서 파악해야 하는거면, 파싱 단계에서 처리해줘야 해서 할 일이 늘어남
+
+export const BP_HEADER_ADDRESS = mdgSchema.table('BP_HEADER_ADDRESS', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ bp_header_id: integer('bp_header_id').references(() => BP_HEADER.id), // BP_HEADER FK
+ ADR_NO: varchar({ length: 255 }), // 주소번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.ADR_NO),
+]);
+
+export const BP_HEADER_ADDRESS_AD_EMAIL = mdgSchema.table('BP_HEADER_ADDRESS_AD_EMAIL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ address_id: integer('address_id').references(() => BP_HEADER_ADDRESS.id), // BP_HEADER_ADDRESS FK
+ CONSNUMBER: varchar({ length: 255 }), // Sequence number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ DATE_FROM: varchar({ length: 255 }), // Valid-from date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ EMAIL_ADR: varchar({ length: 255 }), // 이메일주소 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REPR_SER: varchar({ length: 255 }), // 대표자순번 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ SMTP_ADDR: varchar({ length: 255 }), // E-Mail Address // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VLD_ST_DT: varchar({ length: 255 }), // 유효시작일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.CONSNUMBER, table.VLD_ST_DT),
+]);
+
+export const BP_HEADER_ADDRESS_AD_FAX = mdgSchema.table('BP_HEADER_ADDRESS_AD_FAX', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CONSNUMBER: varchar({ length: 255 }), // Sequence number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ COUNTRY: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ DATE_FROM: varchar({ length: 255 }), // Valid-from date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ FAXNO: varchar({ length: 255 }), // 팩스번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ FAX_ETS_NO: varchar({ length: 255 }), // 팩스내선번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ FAX_EXTENS: varchar({ length: 255 }), // Fax no.: Extension // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ FAX_NUMBER: varchar({ length: 255 }), // Fax number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NTN_CD: varchar({ length: 255 }), // 국가코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REPR_SER: varchar({ length: 255 }), // 대표자순번 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ VLD_ST_DT: varchar({ length: 255 }), // 유효시작일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_ADDRESS_AD_POSTAL = mdgSchema.table('BP_HEADER_ADDRESS_AD_POSTAL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ADR_1: varchar({ length: 255 }), // 주소1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ADR_2: varchar({ length: 255 }), // 주소2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ADR_TMZ: varchar({ length: 255 }), // 주소시간대 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CITY1: varchar({ length: 255 }), // City // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ CITY2: varchar({ length: 255 }), // District // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ CITY_ZIP_NO: varchar({ length: 255 }), // 도시우편번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ COUNTRY: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ETC_ADR_1: varchar({ length: 255 }), // 기타주소1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ETC_ADR_2: varchar({ length: 255 }), // 기타주소2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ HOUSE_NUM1: varchar({ length: 255 }), // House Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ INTL_ADR_VER_ID: varchar({ length: 255 }), // 국제주소버전ID // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ LANGU: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LANG_KEY: varchar({ length: 255 }), // 언어키 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ NAME1: varchar({ length: 255 }), // Name 1 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NAME2: varchar({ length: 255 }), // Name 2 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NAME3: varchar({ length: 255 }), // Name 3 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NAME4: varchar({ length: 255 }), // Name 4 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NATION: varchar({ length: 255 }), // International address version ID // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ NTN_CD: varchar({ length: 255 }), // 국가코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ POBX: varchar({ length: 255 }), // 사서함 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ POBX_ZIP_NO: varchar({ length: 255 }), // 사서함우편번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ POST_CODE1: varchar({ length: 255 }), // Postal Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ POST_CODE2: varchar({ length: 255 }), // Postal Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ PO_BOX: varchar({ length: 255 }), // PO Box // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ REGION: varchar({ length: 255 }), // Region (State, Province, County) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ REGN_CD: varchar({ length: 255 }), // 지역코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SORT1: varchar({ length: 255 }), // Search Term 1 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ SORT2: varchar({ length: 255 }), // Search Term 2 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STREET: varchar({ length: 255 }), // Street // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TAXJURCODE: varchar({ length: 255 }), // Tax Jurisdiction // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TAX_JRDT_ZONE_CD: varchar({ length: 255 }), // 조세관할구역코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TIME_ZONE: varchar({ length: 255 }), // Time zone // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TITLE: varchar({ length: 255 }), // Title // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TRANSPZONE: varchar({ length: 255 }), // Transportation zone to or from which the goods are // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TRANS_ZONE: varchar({ length: 255 }), // 운송구역 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TTL: varchar({ length: 255 }), // 타이틀 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_1: varchar({ length: 255 }), // VENDOR명1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_2: varchar({ length: 255 }), // VENDOR명2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_3: varchar({ length: 255 }), // VENDOR명3 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_4: varchar({ length: 255 }), // VENDOR명4 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_ABRV_1: varchar({ length: 255 }), // VENDOR명약어1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_ABRV_2: varchar({ length: 255 }), // VENDOR명약어2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_ADDRESS_AD_TEL = mdgSchema.table('BP_HEADER_ADDRESS_AD_TEL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CONSNUMBER: varchar({ length: 255 }), // Sequence number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ COUNTRY: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ DATE_FROM: varchar({ length: 255 }), // Valid-from date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ ETX_NO: varchar({ length: 255 }), // 내선번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ HP_ORDR: varchar({ length: 255 }), // 핸드폰지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ NTN_CD: varchar({ length: 255 }), // 국가코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ R3_USER: varchar({ length: 255 }), // ndicator: Telephone is a Mobile Telephone // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ REPR_SER: varchar({ length: 255 }), // 대표자순번 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ TELNO: varchar({ length: 255 }), // 전화번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TEL_EXTENS: varchar({ length: 255 }), // Telephone no.: Extension // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TEL_NUMBER: varchar({ length: 255 }), // Telephone no.: dialling code+number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VLD_ST_DT: varchar({ length: 255 }), // 유효시작일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_ADDRESS_AD_URL = mdgSchema.table('BP_HEADER_ADDRESS_AD_URL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CONSNUMBER: varchar({ length: 255 }), // Sequence number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ DATE_FROM: varchar({ length: 255 }), // Valid-from date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ REPR_SER: varchar({ length: 255 }), // 대표자순번 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ URI_ADDR: varchar({ length: 255 }), // Universal Resource Identifier (URI) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ URL: varchar({ length: 255 }), // URL // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VLD_ST_DT: varchar({ length: 255 }), // 유효시작일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN = mdgSchema.table('BP_HEADER_BP_CUSGEN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ANRED: varchar({ length: 255 }), // Title // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ AUFSD: varchar({ length: 255 }), // Central order block // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ FAKSD: varchar({ length: 255 }), // Central billing block // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ GFORM: varchar({ length: 255 }), // Legal status // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ JMJAH: varchar({ length: 255 }), // Year for which the number of employees is given // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ JMZAH: varchar({ length: 255 }), // Yearly number of employees // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ J_1KFREPRE: varchar({ length: 255 }), // Name of Representative // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ J_1KFTBUS: varchar({ length: 255 }), // Type of Business // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ J_1KFTIND: varchar({ length: 255 }), // Type of Industry // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KATR1: varchar({ length: 255 }), // Attribute1(발행구분-정발행, 역발행등 계산서 발행구분) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KDKG1: varchar({ length: 255 }), // Condition grp1 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KTOKD: varchar({ length: 255 }), // Account Group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KUNNR: varchar({ length: 255 }), // Customer Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ LIFNR: varchar({ length: 255 }), // Vendor Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LIFSD: varchar({ length: 255 }), // Central delivery block // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LOEVM: varchar({ length: 255 }), // Central Deletion Flag for Master Record // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NIELS: varchar({ length: 255 }), // Customer Type // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ NODEL: varchar({ length: 255 }), // Central deletion block for master record // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ PUGRP: varchar({ length: 255 }), // Customer Group Name // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ SPERR: varchar({ length: 255 }), // Central Posting Block // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STCD1: varchar({ length: 255 }), // Tax Number 1 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STCD2: varchar({ length: 255 }), // Tax Number 2 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STCD3: varchar({ length: 255 }), // Tax Number 3 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STCD4: varchar({ length: 255 }), // Tax Number 4 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ STCEG: varchar({ length: 255 }), // VAT Registration Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ UMJAH: varchar({ length: 255 }), // Year For Which Sales are Given // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ UMSAT: varchar({ length: 255 }), // Annual Sales // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ UWAER: varchar({ length: 255 }), // Currency of Sales figure // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VBUND: varchar({ length: 255 }), // Company ID of Trading Partner // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZAPPDT_C: varchar({ length: 255 }), // Apporval Date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZAPPTM_C: varchar({ length: 255 }), // Apporval Time // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZAPPUS_C: varchar({ length: 255 }), // Apporval User // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZBA: varchar({ length: 255 }), // Business Area(GBM) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZBRSCH_C: varchar({ length: 255 }), // Industry // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZCRMCD: varchar({ length: 255 }), // CRM Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZDOKAR_C: varchar({ length: 255 }), // Document Type // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZDOKNR_C: varchar({ length: 255 }), // Document // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZDOKTL_C: varchar({ length: 255 }), // Document Part // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZDOKVR_C: varchar({ length: 255 }), // Document version // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZDUNS: varchar({ length: 255 }), // DUNS Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTBU: varchar({ length: 255 }), // F-Tree BU Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTBUNM: varchar({ length: 255 }), // F-Tree BU Name // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTDT: varchar({ length: 255 }), // F-Tree DT Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTDTNM: varchar({ length: 255 }), // F-Tree DT Name // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTGT: varchar({ length: 255 }), // F-Tree GT Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZFTGTNM: varchar({ length: 255 }), // F-Tree GT Name // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZINBFLGC: varchar({ length: 255 }), // Inbound Flag // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZLAMDT_C: varchar({ length: 255 }), // Last Modified Date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZLAMTM_C: varchar({ length: 255 }), // Last Modified Time // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZLAMUS_C: varchar({ length: 255 }), // Last Modified User // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZORT01_C: varchar({ length: 255 }), // City // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZORT02_C: varchar({ length: 255 }), // District // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZREASON: varchar({ length: 255 }), // Reason for Duplication // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZREGDT_C: varchar({ length: 255 }), // Registerd Date // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZREGTM_C: varchar({ length: 255 }), // Registerd Time // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZREGUS_C: varchar({ length: 255 }), // Registerd User // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZSTCDT_C: varchar({ length: 255 }), // Tax number type // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZSTRAS_C: varchar({ length: 255 }), // House number and street // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZZSUBSEQ_C: varchar({ length: 255 }), // 종사업장 일련번호 // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN_ZCOMPANY = mdgSchema.table('BP_HEADER_BP_CUSGEN_ZCOMPANY', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ AKONT: varchar({ length: 255 }), // Reconcil.acct // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ BUKRS: varchar({ length: 255 }), // Company Code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ FDGRV: varchar({ length: 255 }), // Planning Group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LOEVM: varchar({ length: 255 }), // Central Deletion Flag for Master Record // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ SPERR: varchar({ length: 255 }), // Posting block for company code // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZAHLS: varchar({ length: 255 }), // Block Key for Payment // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZTERM: varchar({ length: 255 }), // Terms of Payment Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZUAWA: varchar({ length: 255 }), // Sort key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZWELS: varchar({ length: 255 }), // List of the Payment Methods to be Considered // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN_ZSALES = mdgSchema.table('BP_HEADER_BP_CUSGEN_ZSALES', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ANTLF: varchar({ length: 255 }), // Maximum Number of Partial Deliveries Allowed Per I // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ AUFSD: varchar({ length: 255 }), // Customer order block (sales area) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ AWAHR: varchar({ length: 255 }), // Order probability of the item // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ BZIRK: varchar({ length: 255 }), // Sales district // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ FAKSD: varchar({ length: 255 }), // Billing block for customer (sales and distribution // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ INCO1: varchar({ length: 255 }), // Incoterms (Part 1) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ INCO2: varchar({ length: 255 }), // Incoterms (Part 2) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KALKS: varchar({ length: 255 }), // Pricing procedure assigned to this customer // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KDGRP: varchar({ length: 255 }), // Customer group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KONDA: varchar({ length: 255 }), // Price group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KTGRD: varchar({ length: 255 }), // Account assignment group for this customer // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KURST: varchar({ length: 255 }), // Exchange Rate Type // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KZAZU: varchar({ length: 255 }), // Order Combination // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LIFSD: varchar({ length: 255 }), // Customer delivery block (sales area) // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LOEVM: varchar({ length: 255 }), // Central Deletion Flag for Master Record // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ LPRIO: varchar({ length: 255 }), // Delivery Priority // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ PLTYP: varchar({ length: 255 }), // Price List // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ SPART: varchar({ length: 255 }), // Division // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ VERSG: varchar({ length: 255 }), // Customer Statistics Group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VKBUR: varchar({ length: 255 }), // Sales Office // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VKGRP: varchar({ length: 255 }), // Sales Group // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VKORG: varchar({ length: 255 }), // Sales Org. // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ VSBED: varchar({ length: 255 }), // Shipping Conditions // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ VTWEG: varchar({ length: 255 }), // Distr. Channel // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ VWERK: varchar({ length: 255 }), // From plant // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ WAERS: varchar({ length: 255 }), // Currency // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ ZTERM: varchar({ length: 255 }), // Terms of Payment Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN = mdgSchema.table('BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEFPA: varchar({ length: 255 }), // Default Partner // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ KUNN2: varchar({ length: 255 }), // Customer number of business partner // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ PARVW: varchar({ length: 255 }), // Partner Function // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ PARZA: varchar({ length: 255 }), // Partner counter // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN_ZTAXIND = mdgSchema.table('BP_HEADER_BP_CUSGEN_ZTAXIND', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ALAND: varchar({ length: 255 }), // Departure country // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ TATYP: varchar({ length: 255 }), // Tax category // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ TAXKD: varchar({ length: 255 }), // Tax classification for customer // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_CUSGEN_ZVATREG = mdgSchema.table('BP_HEADER_BP_CUSGEN_ZVATREG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ LAND1: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ STCEG: varchar({ length: 255 }), // VAT Registration Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_TAXNUM = mdgSchema.table('BP_HEADER_BP_TAXNUM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BIZ_PTNR_TX_NO: varchar({ length: 255 }), // 사업파트너세금번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TAXNUM: varchar({ length: 255 }), // Business Partner Tax Number // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl
+ TAXTYPE: varchar({ length: 255 }), // Tax Number Category // From: IF_MDZ_EVCP_CUSTOMER_MASTER.wsdl // WSDL에서 필수 필드
+ TX_NO_CTG: varchar({ length: 255 }), // 세금번호범주 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_VENGEN = mdgSchema.table('BP_HEADER_BP_VENGEN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ACNT_GRP: varchar({ length: 255 }), // 계정그룹 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ACNT_GRP_TP: varchar({ length: 255 }), // 계정그룹유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ADR_1: varchar({ length: 255 }), // 주소1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ADR_2: varchar({ length: 255 }), // 주소2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ AGR_DT: varchar({ length: 255 }), // 승인일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ AGR_R_ID: varchar({ length: 255 }), // 승인자ID // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ AGR_TM: varchar({ length: 255 }), // 승인시간 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BIZCON: varchar({ length: 255 }), // 산업유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BIZR_NO: varchar({ length: 255 }), // 사업자번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BIZTP: varchar({ length: 255 }), // 사업유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BIZ_UOM_CD: varchar({ length: 255 }), // 사업단위코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BIZ_UOM_NM: varchar({ length: 255 }), // 사업단위명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CHGR_ID: varchar({ length: 255 }), // 변경자ID // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CHG_DT: varchar({ length: 255 }), // 변경일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CHG_TM: varchar({ length: 255 }), // 변경시간 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CO_ID: varchar({ length: 255 }), // 법인ID // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CO_REG_NO: varchar({ length: 255 }), // 법인등록번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CO_VLM: varchar({ length: 255 }), // 기업규모 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CSTM_CD: varchar({ length: 255 }), // 고객코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DEL_HOLD_ORDR: varchar({ length: 255 }), // 삭제보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DEL_ORDR: varchar({ length: 255 }), // 삭제지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DMST_TOP_CD: varchar({ length: 255 }), // 국내TOP코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DMST_TOP_NM: varchar({ length: 255 }), // 국내TOP명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DNS_NO: varchar({ length: 255 }), // DUNS번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DOC_NO: varchar({ length: 255 }), // 문서번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DOC_TP: varchar({ length: 255 }), // 문서유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DOC_VER: varchar({ length: 255 }), // 문서버전 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ FIR_NM: varchar({ length: 255 }), // FIRST이름 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ GBL_TOP_CD: varchar({ length: 255 }), // GLOBALTOP코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ GBL_TOP_NM: varchar({ length: 255 }), // GLOBALTOP명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ GIRO_VNDR_ORDR: varchar({ length: 255 }), // 지로VENDOR지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ HOLD_CAUS: varchar({ length: 255 }), // 보류사유 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ INB_FLAG: varchar({ length: 255 }), // 인바운드플래그 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ INTL_LCTN_CHK_NUM: varchar({ length: 255 }), // 국제LOCATION점검숫자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ OVLAP_CAUS_CD: varchar({ length: 255 }), // 중복사유코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PST_HOLD_ORDR: varchar({ length: 255 }), // 전기보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PTNT_VNDRCD: varchar({ length: 255 }), // 잠재VENDOR코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PTN_DOC: varchar({ length: 255 }), // 부분문서 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_HOLD_DT: varchar({ length: 255 }), // 구매보류일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_HOLD_ORDR: varchar({ length: 255 }), // 구매보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ QLT_CHRGR_EMAIL: varchar({ length: 255 }), // 품질담당자이메일 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ QLT_CHRGR_NM: varchar({ length: 255 }), // 품질담당자명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ QLT_CHRGR_TELNO: varchar({ length: 255 }), // 품질담당자전화번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REGR_ID: varchar({ length: 255 }), // 등록자ID // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REG_DT: varchar({ length: 255 }), // 등록일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REG_TM: varchar({ length: 255 }), // 등록시간 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REPR_NM: varchar({ length: 255 }), // 대표자명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REPR_RESNO: varchar({ length: 255 }), // 대표자주민번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REP_TEL_NO: varchar({ length: 255 }), // 대표전화번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SB_WKA_SEQ: varchar({ length: 255 }), // SUB작업장순서 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCETX_RP_SEX_KEY: varchar({ length: 255 }), // 원천세의무자성별키 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TTL: varchar({ length: 255 }), // 타이틀 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TX_CD_4: varchar({ length: 255 }), // 세금번호4 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VAT_REG_NO: varchar({ length: 255 }), // 부가세등록번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNM_1: varchar({ length: 255 }), // VENDOR명1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDRNO: varchar({ length: 255 }), // VENDOR코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_VENGEN_BP_COMPNY = mdgSchema.table('BP_HEADER_BP_VENGEN_BP_COMPNY', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ACOT_CHRGR_FAXNO: varchar({ length: 255 }), // 회계담당자FAX번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ACOT_CHRGR_TELNO: varchar({ length: 255 }), // 회계담당자전화번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ AUTH_GRP: varchar({ length: 255 }), // 권한그룹 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ BF_VNDRCD: varchar({ length: 255 }), // 이전VENDOR코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CO_CD: varchar({ length: 255 }), // 회사코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ CSTM_VNDR_CLR_ORDR: varchar({ length: 255 }), // CUSTOMER,VENDOR반제지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CTL_ACNT: varchar({ length: 255 }), // 조정계정 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DEL_ORDR: varchar({ length: 255 }), // 삭제지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ FIN_IR_ACT_DT: varchar({ length: 255 }), // 최종이자실행일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ FIN_IR_CALC_DT: varchar({ length: 255 }), // 최종이자계산일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ IATA_BIC_GB: varchar({ length: 255 }), // IATA,BIC구분 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ LOGST_VNDR_TP: varchar({ length: 255 }), // 물류VENDOR유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ MEMO: varchar({ length: 255 }), // 메모 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ MIN_ORDR: varchar({ length: 255 }), // 소수지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ MK_CHRGR_EMAIL: varchar({ length: 255 }), // MAKER담당자이메일 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ MOFFC_ACNT_NO: varchar({ length: 255 }), // 본사계정번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ OVLAP_INVC_ORDR: varchar({ length: 255 }), // 중복송장지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PLN_GRP: varchar({ length: 255 }), // 계획그룹 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PST_HOLD_ORDR: varchar({ length: 255 }), // 전기보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ REP_TP: varchar({ length: 255 }), // 대표유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SPLY_COND: varchar({ length: 255 }), // 지급조건 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SPLY_HOLD_ORDR: varchar({ length: 255 }), // 지급보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SPLY_MTHD: varchar({ length: 255 }), // 지급방법 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SPRT_SPLY_ORDR: varchar({ length: 255 }), // 분리지급지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_CD: varchar({ length: 255 }), // 원천세코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_NTN_CD: varchar({ length: 255 }), // 원천세국가코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRT_KEY: varchar({ length: 255 }), // 정렬키 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ TRD_BANK_SHRT_KEY: varchar({ length: 255 }), // 거래은행단축키 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDR_ACNT_NO: varchar({ length: 255 }), // VENDOR계정번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDR_CHRGR_NM: varchar({ length: 255 }), // VENDOR담당자명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX = mdgSchema.table('BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DCHAG_CAUS: varchar({ length: 255 }), // 면제사유 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DCHAG_CERT_NO: varchar({ length: 255 }), // 면제증명서번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DCHAG_ED_DT: varchar({ length: 255 }), // 면제종료일 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DCHAG_RAT: varchar({ length: 255 }), // 면제율 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DCHAG_ST_DT: varchar({ length: 255 }), // 면제시작일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ RECIP_TP: varchar({ length: 255 }), // 수취인유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_IDENT_NO: varchar({ length: 255 }), // 원천세식별번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_NO: varchar({ length: 255 }), // 원천세코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_REL_ORDR: varchar({ length: 255 }), // 원천세관련지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SRCE_TX_TP: varchar({ length: 255 }), // 원천세유형 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_VENGEN_BP_PORG = mdgSchema.table('BP_HEADER_BP_VENGEN_BP_PORG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ AT_PUR_ORD_ORDR: varchar({ length: 255 }), // 자동구매오더지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CALC_SHM_GRP: varchar({ length: 255 }), // 계산스키마그룹 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ CNFM_CTL_KEY: varchar({ length: 255 }), // 확정제어키 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DEL_ORDR: varchar({ length: 255 }), // 삭제지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DL_COND_1: varchar({ length: 255 }), // 인도조건1 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ DL_COND_2: varchar({ length: 255 }), // 인도조건2 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ GR_BSE_INVC_VR: varchar({ length: 255 }), // GR기준송장검증 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ORD_CNFM_REQ_ORDR: varchar({ length: 255 }), // 오더확인요청지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_HOLD_CAUS: varchar({ length: 255 }), // 구매보류사유 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_HOLD_DT: varchar({ length: 255 }), // 구매보류일자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_HOLD_ORDR: varchar({ length: 255 }), // 구매보류지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_ORD_CUR: varchar({ length: 255 }), // 구매오더통화 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PUR_ORG_CD: varchar({ length: 255 }), // 구매조직 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ SALE_CHRGR_NM: varchar({ length: 255 }), // 영업담당자명 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ SPLY_COND: varchar({ length: 255 }), // 지급조건 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ VNDR_TELNO: varchar({ length: 255 }), // VENDOR전화번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN = mdgSchema.table('BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BSE_PTNR_ORDR: varchar({ length: 255 }), // 기본파트너지시자 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ ETC_REF_VNDRCD: varchar({ length: 255 }), // 기타참조VENDOR코드 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl
+ PLNT_NO: varchar({ length: 255 }), // 플랜트번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ PTNR_CNT: varchar({ length: 255 }), // 파트너카운터 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ PTNR_SKL: varchar({ length: 255 }), // 파트너기능 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+ VNDR_SUB_NO: varchar({ length: 255 }), // VENDOR서브번호 // From: IF_MDZ_EVCP_VENDOR_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_DEPT_MDG = mdgSchema.table('CMCTB_DEPT_MDG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BICD: varchar({ length: 255 }), // 사업장코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ BIZAREA: varchar({ length: 255 }), // 사업부문 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ CCCD: varchar({ length: 255 }), // 코스트센터 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ COMPCD: varchar({ length: 255 }), // 회사코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ CORPCD: varchar({ length: 255 }), // 법인코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl // WSDL에서 필수 필드
+ DEPTCD: varchar({ length: 255 }), // 부서코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl // WSDL에서 필수 필드
+ DEPTLVL: varchar({ length: 255 }), // 부서레벨 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ DEPTPOSNO: varchar({ length: 255 }), // 부서위치 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ DHEMPID: varchar({ length: 255 }), // 부서장사번 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ GNCD: varchar({ length: 255 }), // From multiple sources // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ PCCD: varchar({ length: 255 }), // 손익센터 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ PDEPTCD: varchar({ length: 255 }), // 상위부서코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ VALIDFROMDT: varchar({ length: 255 }), // 유효일자(시작) // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ VALIDTODT: varchar({ length: 255 }), // 유효일자(끝) // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ WERKS: varchar({ length: 255 }), // 플랜트코드 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_DEPT_MDG_COMPNM = mdgSchema.table('CMCTB_DEPT_MDG_COMPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ COMPNM: varchar({ length: 255 }), // 회사명 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ SPRAS: varchar({ length: 255 }), // 언어구분 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_DEPT_MDG_CORPNM = mdgSchema.table('CMCTB_DEPT_MDG_CORPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CORPNM: varchar({ length: 255 }), // 법인명 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ SPRAS: varchar({ length: 255 }), // 언어구분 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_DEPT_MDG_DEPTNM = mdgSchema.table('CMCTB_DEPT_MDG_DEPTNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEPTNM: varchar({ length: 255 }), // 부서명 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl
+ SPRAS: varchar({ length: 255 }), // 언어구분 // From: IF_MDZ_EVCP_DEPARTMENT_CODE.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG = mdgSchema.table('CMCTB_EMP_MDG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ADDRCNTRY: varchar({ length: 255 }), // 우편번호의 국가코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ AEDAT: varchar({ length: 255 }), // 수정날짜 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ AENAM: varchar({ length: 255 }), // 수정자 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ AEZET: varchar({ length: 255 }), // 최근수정시간 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ BICD: varchar({ length: 255 }), // 사업장코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ BIZAREA: varchar({ length: 255 }), // Business Area // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ BSCADDR: varchar({ length: 255 }), // Basic Address // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ COMPCD: varchar({ length: 255 }), // 회사 코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ CORPCD: varchar({ length: 255 }), // 법인 코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ COUNTRYCD: varchar({ length: 255 }), // 국가코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ CSFROMDT: varchar({ length: 255 }), // [에스원]CS Start Date // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ CSTODT: varchar({ length: 255 }), // [에스원]CS End Date // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ CTIROLE: varchar({ length: 255 }), // [에스원]CTI Authority // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DEL: varchar({ length: 255 }), // 삭제Flag // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DEPENDDT: varchar({ length: 255 }), // 파견종료예정일 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DEPTCD: varchar({ length: 255 }), // 부서코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DHJOBGRDCD: varchar({ length: 255 }), // 부서장 직급코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DHNAME: varchar({ length: 255 }), // 부서장 이름 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DHSINGLID: varchar({ length: 255 }), // 부서장 SingleID // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DISPATCH: varchar({ length: 255 }), // 파견여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DPSTARTDT: varchar({ length: 255 }), // 파견발령일 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DTLADDR: varchar({ length: 255 }), // Detail Address // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ DTLADDR2: varchar({ length: 255 }), // Detail Address2 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ EMAIL: varchar({ length: 255 }), // 이메일주소 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ EMPADR: varchar({ length: 255 }), // 주소 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ EMPID: varchar({ length: 255 }), // 사원번호 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+ EMPTYPE: varchar({ length: 255 }), // 인력유형 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ENGNAME: varchar({ length: 255 }), // 사원영문이름 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ EPID: varchar({ length: 255 }), // EPID // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ERDAT: varchar({ length: 255 }), // 생성날짜 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ERNAM: varchar({ length: 255 }), // 생성자 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ERZET: varchar({ length: 255 }), // 생성시간 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ FORIGNFLG: varchar({ length: 255 }), // [기획]Foreign Flag // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ GJOBCD: varchar({ length: 255 }), // Global 직무 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ GJOBDUTYCD: varchar({ length: 255 }), // Global 직책 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ GJOBGRDCD: varchar({ length: 255 }), // Global 직급 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ GNCD: varchar({ length: 255 }), // 총괄코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ HRMANAGE: varchar({ length: 255 }), // HR시스템에서 관리 여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ IDNO: varchar({ length: 255 }), // [모직]개인ID // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBCD: varchar({ length: 255 }), // 직무코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBCLASS: varchar({ length: 255 }), // [에스원]Job Class Code // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBDUTYCD: varchar({ length: 255 }), // 직책코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBGRDCD: varchar({ length: 255 }), // 직급코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ KTL_EMP: varchar({ length: 255 }), // 비용센터 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ LVABSENCE: varchar({ length: 255 }), // 휴직여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ MBPHONE: varchar({ length: 255 }), // 개인 휴대폰 전화번호 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ NAME: varchar({ length: 255 }), // 사원이름 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ OKTL_EMPL: varchar({ length: 255 }), // 원소속부서 비용센터 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ORGBICD: varchar({ length: 255 }), // 원소속사업장코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ORGCOMPCD: varchar({ length: 255 }), // 원소속회사코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ORGCORPCD: varchar({ length: 255 }), // 원소속법인코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ORGDEPTCD: varchar({ length: 255 }), // 원소속부서코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ORGPDEPCD: varchar({ length: 255 }), // 원소속부서의 상위부서코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ PAYPLC: varchar({ length: 255 }), // Payplace for Employee // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ PDEPTCD: varchar({ length: 255 }), // 상위부서코드 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ PSTLCODE: varchar({ length: 255 }), // 우편번호 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ RETIRE: varchar({ length: 255 }), // 퇴직여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SEX: varchar({ length: 255 }), // 성별 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SINGLEID: varchar({ length: 255 }), // 싱글 ID // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SINGLRQ: varchar({ length: 255 }), // 싱글ID 요청 상태 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SOCIALID: varchar({ length: 255 }), // From multiple sources // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SOCIALID_DECR: varchar({ length: 255 }), // From multiple sources // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SOJRNEMP: varchar({ length: 255 }), // 주재원 여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ TELNUM: varchar({ length: 255 }), // 전화번호 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ TMPJDIV: varchar({ length: 255 }), // [에스원]Non-Regular Code // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ USEDSYS: varchar({ length: 255 }), // [기획]Used System // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ VALFROMDT: varchar({ length: 255 }), // 근무시작일 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ VALTODT: varchar({ length: 255 }), // 종료예정일(퇴직일자-정규직일경우) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ WFREQUIRE: varchar({ length: 255 }), // 전결필요여부 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ WORKPLC: varchar({ length: 255 }), // 근무처 // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ZPRFLG: varchar({ length: 255 }), // 업데이트 여부 Flag // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ ZZBUKRS: varchar({ length: 255 }), // ECC Company 코드 (재무법인코드) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_BANM = mdgSchema.table('CMCTB_EMP_MDG_BANM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ GTEXT: varchar({ length: 255 }), // Business area description // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (BIZAREA) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_BINM = mdgSchema.table('CMCTB_EMP_MDG_BINM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BINM: varchar({ length: 255 }), // Business Place Name (BICD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (BICD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_COMPNM = mdgSchema.table('CMCTB_EMP_MDG_COMPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ COMPNM: varchar({ length: 255 }), // Company Name (COMPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (COMPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_CORPNM = mdgSchema.table('CMCTB_EMP_MDG_CORPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CORPNM: varchar({ length: 255 }), // Corporate Name (CORPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (CORPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_COUNTRYNM = mdgSchema.table('CMCTB_EMP_MDG_COUNTRYNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ COUNTRYNM: varchar({ length: 255 }), // Country Name (COUNTRYCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (COUNTRYCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_DEPTCODE = mdgSchema.table('CMCTB_EMP_MDG_DEPTCODE', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ PCCD: varchar({ length: 255 }), // Profit Center Code (DEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ WERKS: varchar({ length: 255 }), // Plant Code (DEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_DEPTCODE_PCCDNM = mdgSchema.table('CMCTB_EMP_MDG_DEPTCODE_PCCDNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ KTEXT: varchar({ length: 255 }), // General Name // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ LTEXT: varchar({ length: 255 }), // Long Text // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_DEPTNM = mdgSchema.table('CMCTB_EMP_MDG_DEPTNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEPTNM: varchar({ length: 255 }), // Department Name (DEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (DEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_DHJOBGDNM = mdgSchema.table('CMCTB_EMP_MDG_DHJOBGDNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ JOBGRDNM: varchar({ length: 255 }), // Job Grade Name (DHJOBGDCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (DHJOBGDCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_GJOBDUTYNM = mdgSchema.table('CMCTB_EMP_MDG_GJOBDUTYNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ GJOBDUTYNM: varchar({ length: 255 }), // Global Job Duty Name // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (GJOBDUTYCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_GJOBGRDNM = mdgSchema.table('CMCTB_EMP_MDG_GJOBGRDNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ GJOBGRDNM: varchar({ length: 255 }), // Global Job Grade Name // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (GJOBGRDCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_GJOBGRDTYPE = mdgSchema.table('CMCTB_EMP_MDG_GJOBGRDTYPE', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ISEXECUT: varchar({ length: 255 }), // Executive Indicator // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBGRDTYPE: varchar({ length: 255 }), // Job Grade Type // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_GJOBNM = mdgSchema.table('CMCTB_EMP_MDG_GJOBNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ SPRAS: varchar({ length: 255 }), // Language Key (GJOBCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_GNNM = mdgSchema.table('CMCTB_EMP_MDG_GNNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ GNNM: varchar({ length: 255 }), // General Name (GNCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (GNCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_JOBDUTYNM = mdgSchema.table('CMCTB_EMP_MDG_JOBDUTYNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ JOBDUTYNM: varchar({ length: 255 }), // Job Duty Name (JOBDUTYCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (JOBDUTYCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_JOBGRDNM = mdgSchema.table('CMCTB_EMP_MDG_JOBGRDNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ISEXECUT: varchar({ length: 255 }), // Executive Indicator // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBGRDNM: varchar({ length: 255 }), // Job Grade Name (JOBGRDCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ JOBGRDTYPE: varchar({ length: 255 }), // Job Grade Type // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (JOBGRDCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_JOBNM = mdgSchema.table('CMCTB_EMP_MDG_JOBNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ JOBNM: varchar({ length: 255 }), // Job Name (JOBCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (JOBCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_KTLNM = mdgSchema.table('CMCTB_EMP_MDG_KTLNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ LTEXT: varchar({ length: 255 }), // Cost Center (KTL_EMP) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (KTL_EMP) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_OKTLNM = mdgSchema.table('CMCTB_EMP_MDG_OKTLNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ LTEXT: varchar({ length: 255 }), // Cost Center (OKTL_EMPL) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (OKTL_EMPL) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_ORGBICDNM = mdgSchema.table('CMCTB_EMP_MDG_ORGBICDNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BINM: varchar({ length: 255 }), // Business Place Name (ORGBICD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (ORGBICD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_ORGCOMPNM = mdgSchema.table('CMCTB_EMP_MDG_ORGCOMPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ COMPNM: varchar({ length: 255 }), // Company Name (ORGCOMPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (ORGCOMPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_ORGCORPNM = mdgSchema.table('CMCTB_EMP_MDG_ORGCORPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CORPNM: varchar({ length: 255 }), // Corporate Name (ORGCORPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (ORGCORPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_ORGDEPTNM = mdgSchema.table('CMCTB_EMP_MDG_ORGDEPTNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEPTNM: varchar({ length: 255 }), // Department Name (ORGDEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (ORGDEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_ORGPDEPNM = mdgSchema.table('CMCTB_EMP_MDG_ORGPDEPNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEPTNM: varchar({ length: 255 }), // Department Name (ORGPDEPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (ORGPDEPCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_MDG_PDEPTNM = mdgSchema.table('CMCTB_EMP_MDG_PDEPTNM', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ DEPTNM: varchar({ length: 255 }), // Department Name (PDEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key (PDEPTCD) // From: IF_MDZ_EVCP_EMPLOYEE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_REF_MDG_IF = mdgSchema.table('CMCTB_EMP_REF_MDG_IF', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ADTL_01: varchar({ length: 255 }), // 추가필드1 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl
+ ADTL_02: varchar({ length: 255 }), // 추가필드2 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl
+ CORPCD: varchar({ length: 255 }), // 법인코드 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl // WSDL에서 필수 필드
+ GRPCD: varchar({ length: 255 }), // 그룹코드 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl // WSDL에서 필수 필드
+ MAINCD: varchar({ length: 255 }), // 메인코드 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl // WSDL에서 필수 필드
+ VALIDFROMDT: varchar({ length: 255 }), // 시작유효일자 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl
+ VALIDTODT: varchar({ length: 255 }), // 종료유효일자 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_EMP_REF_MDG_IF_NAME = mdgSchema.table('CMCTB_EMP_REF_MDG_IF_NAME', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ NAME: varchar({ length: 255 }), // 코드명 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // 언어구분 // From: IF_MDZ_EVCP_EMPLOYEE_REFERENCE_MASTER.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_MAT_BSE = mdgSchema.table('CMCTB_MAT_BSE', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ IF_MSG: varchar({ length: 255 }), // IF 메시지 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART_RETURN.wsdl
+ IF_STAT: varchar({ length: 255 }), // IF 상태 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART_RETURN.wsdl
+ MAT_CD: varchar({ length: 255 }), // 자재코드 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART_RETURN.wsdl // WSDL에서 필수 필드
+ MAT_ID: varchar({ length: 255 }), // PLM 채번 자재코드 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART_RETURN.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const CMCTB_PROJ_MAST = mdgSchema.table('CMCTB_PROJ_MAST', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ AS_GRNT_PRD: varchar({ length: 255 }), // A/S 보증기간 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ BIZCLS: varchar({ length: 255 }), // 사업부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ BIZLOC_CD: varchar({ length: 255 }), // 사업장코드 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ BIZ_DMN: varchar({ length: 255 }), // 사업영역 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ BP_DL_DT: varchar({ length: 255 }), // 선표인도일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CHN_PROJ_TP: varchar({ length: 255 }), // (중국)프로젝트타입 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CLS_1: varchar({ length: 255 }), // 선급1 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CLS_2: varchar({ length: 255 }), // 선급2 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CNRT_CNTN_YN: varchar({ length: 255 }), // 계약존속여부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CNRT_DL_DT: varchar({ length: 255 }), // 계약인도일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CNRT_DT: varchar({ length: 255 }), // 계약일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CNRT_RESV_YN: varchar({ length: 255 }), // 계약유보여부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CO_CD: varchar({ length: 255 }), // 회사코드 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ CSTM_PO_NO: varchar({ length: 255 }), // 고객발주번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DEL_YN: varchar({ length: 255 }), // 삭제 여부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DIGT_PDT_GRP: varchar({ length: 255 }), // 전기전자 제품군 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DIST_PATH: varchar({ length: 255 }), // 유통경로 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DL_BF_PROJ_NM: varchar({ length: 255 }), // 인도전선명 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DL_CSTM_CD: varchar({ length: 255 }), // 인도고객 ID // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DOCK_CD: varchar({ length: 255 }), // 도크 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ DSN_CHRGR: varchar({ length: 255 }), // 설계담당자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ EXMPT_AREA: varchar({ length: 255 }), // 면세면적 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ EXMPT_RAT: varchar({ length: 255 }), // 면세율 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ FIN_GRNT_FN_DT: varchar({ length: 255 }), // 최종수요자 보증종료일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ GENT_CNT: varchar({ length: 255 }), // 세대수/시리즈 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ GOV: varchar({ length: 255 }), // 관청명 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ GRNT_STDT: varchar({ length: 255 }), // Project Warranty Start Date // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ GT: varchar({ length: 255 }), // G/T // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ IF_STAT: varchar({ length: 255 }), // 인터페이스 진행단계 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ IMO_NO: varchar({ length: 255 }), // IMO 번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ INQY_NO: varchar({ length: 255 }), // 안건번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ INQY_SEQ: varchar({ length: 255 }), // 안건순번 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ IO_GB: varchar({ length: 255 }), // 사내외 구분 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ LOA: varchar({ length: 255 }), // L.O.A // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ MNG_ACOT_DMN: varchar({ length: 255 }), // 관리회계영역 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ MN_ENGN_TP_CD: varchar({ length: 255 }), // Main engine type code // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ MSHIP_NO: varchar({ length: 255 }), // 기준호선 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ NEW_MC_YN: varchar({ length: 255 }), // MC YN // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ NTTP: varchar({ length: 255 }), // 국적 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ ORDR_GRNT_FN_DT: varchar({ length: 255 }), // 주문주 보증종료일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ ORDR_GRNT_PRD: varchar({ length: 255 }), // 주문주 보증기간 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ OWN_1: varchar({ length: 255 }), // 선주1 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ OWN_AB: varchar({ length: 255 }), // 선주약어 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ OWN_NM: varchar({ length: 255 }), // 선주명 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PDT_LVL_4: varchar({ length: 255 }), // 제품 Level 4 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PLNT_CD: varchar({ length: 255 }), // 플랜트 코드 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PRCTR: varchar({ length: 255 }), // 손익센터 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PRGS_STAT: varchar({ length: 255 }), // 진행상태 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_CRTE_REQ_DT: varchar({ length: 255 }), // 프로젝트 생성요청일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_CRTE_REQ_EMPNO: varchar({ length: 255 }), // 프로젝트 생성요청자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_DL_PLN_DT: varchar({ length: 255 }), // 모프로젝트 인도계획일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_DL_RT_DT: varchar({ length: 255 }), // 모프로젝트 인도실적일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_DSC: varchar({ length: 255 }), // 프로젝트 설명 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_DTL_TP: varchar({ length: 255 }), // 프로젝트 세부타입 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_ETC_TP: varchar({ length: 255 }), // 프로젝트 기타타입 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_GB: varchar({ length: 255 }), // 프로젝트구분 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_NO: varchar({ length: 255 }), // 프로젝트번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl // WSDL에서 필수 필드
+ PROJ_PRGS_YN: varchar({ length: 255 }), // 공사진행여부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_PROF: varchar({ length: 255 }), // 프로젝트 프로파일 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_SCP: varchar({ length: 255 }), // 프로젝트범위 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PROJ_WBS_TP: varchar({ length: 255 }), // 프로젝트 WBS타입 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ PRO_PROJ_NO: varchar({ length: 255 }), // 프로포절 프로젝트 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ QM_CLS: varchar({ length: 255 }), // 품질사업부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ REF_NO: varchar({ length: 255 }), // 시리즈번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ RLTD_PROJ: varchar({ length: 255 }), // 연관프로젝트 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ RL_DL_DT: varchar({ length: 255 }), // 실인도일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SALE_GRP: varchar({ length: 255 }), // 영업그룹 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SALE_ORG_CD: varchar({ length: 255 }), // 영업조직 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SA_DT: varchar({ length: 255 }), // Sail Away Date // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SERS_NO: varchar({ length: 255 }), // 시리즈첫공사번호 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SERS_YN: varchar({ length: 255 }), // 시리즈여부 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SHTYPE: varchar({ length: 255 }), // 선형 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SHTYPE_CD: varchar({ length: 255 }), // 선형코드 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SHTYPE_GRP: varchar({ length: 255 }), // 선형군 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SHTYPE_UOM: varchar({ length: 255 }), // 선형단위 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SKND: varchar({ length: 255 }), // 선종 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SPD: varchar({ length: 255 }), // Speed // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SRC_SYS_ID: varchar({ length: 255 }), // Source System // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ STDT: varchar({ length: 255 }), // 시작일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ SYS_ACOT_CLSD_DT: varchar({ length: 255 }), // 시스템회계마감일자 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ TOT_AREA: varchar({ length: 255 }), // 전체면적 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ TOT_CNRT_CNT: varchar({ length: 255 }), // 전체 계약 대수 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ TYPE: varchar({ length: 255 }), // 프로젝트 Top/Hull // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+ WP_PROJ_TP: varchar({ length: 255 }), // (풍력)프로젝트타입 // From: IF_MDZ_EVCP_PROJECT_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_CCTR = mdgSchema.table('HRHMTB_CCTR', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ABTEI: varchar({ length: 255 }), // Department // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ANRED: varchar({ length: 255 }), // Title // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ BKZER: varchar({ length: 255 }), // Actual Revenue // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ BKZKP: varchar({ length: 255 }), // Actual Primary Costs // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ BKZKS: varchar({ length: 255 }), // Actual Secondary Costs // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ BKZOB: varchar({ length: 255 }), // Commitment Update // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ BUKRS: varchar({ length: 255 }), // Company Code // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ CCTR: varchar({ length: 255 }), // Cost Center // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ DATAB: varchar({ length: 255 }), // Valid from // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ DATBI: varchar({ length: 255 }), // Valid to // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ DATLT: varchar({ length: 255 }), // Data communication line no. // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ DRNAM: varchar({ length: 255 }), // Printer destination for CCtr report // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ FUNC_AREA: varchar({ length: 255 }), // Functional Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ GSBER: varchar({ length: 255 }), // Business Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ KHINR: varchar({ length: 255 }), // Standard Hierarchy Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ KOKRS: varchar({ length: 255 }), // Controlling Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ KOSAR: varchar({ length: 255 }), // Cost Center Category // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ LAND1: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ MGEFL: varchar({ length: 255 }), // Record Quantity // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ NAME1: varchar({ length: 255 }), // Name 1 // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ NAME2: varchar({ length: 255 }), // Name 2 // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ NAME3: varchar({ length: 255 }), // Name 3 // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ NAME4: varchar({ length: 255 }), // Name 4 // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ORT01: varchar({ length: 255 }), // City // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ORT02: varchar({ length: 255 }), // District // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PFACH: varchar({ length: 255 }), // PO Box // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PKZER: varchar({ length: 255 }), // Plan Revenues // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PKZKP: varchar({ length: 255 }), // Plan Primary Costs // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PKZKS: varchar({ length: 255 }), // Plan Secondary Costs // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PRCTR: varchar({ length: 255 }), // Profit Center // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PSTL2: varchar({ length: 255 }), // P.O. Box Postal Code // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PSTLZ: varchar({ length: 255 }), // Postal Code // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ REGIO: varchar({ length: 255 }), // Region (State, Province, County) // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ SPRAS: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ STRAS: varchar({ length: 255 }), // House number and street // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELBX: varchar({ length: 255 }), // Telebox number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELF1: varchar({ length: 255 }), // First telephone number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELF2: varchar({ length: 255 }), // Second telephone number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELFX: varchar({ length: 255 }), // Fax Number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELTX: varchar({ length: 255 }), // Teletex number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TELX1: varchar({ length: 255 }), // Telex number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TXJCD: varchar({ length: 255 }), // Tax Jurisdiction // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ VERAK: varchar({ length: 255 }), // Person Responsible // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ VERAK_USE: varchar({ length: 255 }), // User Responsible // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ VMETH: varchar({ length: 255 }), // Allowed Allocation methods // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ WAERS: varchar({ length: 255 }), // Currency // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZBRANCH: varchar({ length: 255 }), // Business Place // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Delete Flag // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZFCTRI: varchar({ length: 255 }), // Create Fund Center Indicator // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZSECCODE: varchar({ length: 255 }), // Section Code // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZSEGMENT: varchar({ length: 255 }), // Segment for Segmental Reporting // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_CCTR_TEXT = mdgSchema.table('HRHMTB_CCTR_TEXT', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ KTEXT: varchar({ length: 255 }), // General Name // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ LTEXT: varchar({ length: 255 }), // Description // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_PCTR = mdgSchema.table('HRHMTB_PCTR', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ABTEI: varchar({ length: 255 }), // Department // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ DATAB: varchar({ length: 255 }), // Valid from // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ DATBI: varchar({ length: 255 }), // Valid to // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ KHINR: varchar({ length: 255 }), // Profit center area(Profit center group) // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ KOKRS: varchar({ length: 255 }), // Controlling Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ LOCK_IND: varchar({ length: 255 }), // Lock indicator // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ PCTR: varchar({ length: 255 }), // Profit Center // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ SEGMENT: varchar({ length: 255 }), // Segment // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ TXJCD: varchar({ length: 255 }), // Tax Jurisdiction // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ VERAK: varchar({ length: 255 }), // Person Responsible // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ VERAK_USE: varchar({ length: 255 }), // User Responsible // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Delete Flag // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZBUKRS = mdgSchema.table('HRHMTB_ZBUKRS', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CURR_BUKR: varchar({ length: 255 }), // Currency // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZBUKRS: varchar({ length: 255 }), // Company Code // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZBUTXT: varchar({ length: 255 }), // Company Code Name // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZCITY: varchar({ length: 255 }), // City // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZCOUNTRY: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZLANGU: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZEKGRP = mdgSchema.table('HRHMTB_ZEKGRP', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZEKGRP: varchar({ length: 255 }), // Purchasing Group // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZEKNAM: varchar({ length: 255 }), // Purchasing Group Description // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZEKTEL: varchar({ length: 255 }), // Telephone Number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZEMPNUM: varchar({ length: 255 }), // Employee Number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZSINGLE: varchar({ length: 255 }), // Single ID // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZTELFX: varchar({ length: 255 }), // Fax Number // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZTEL_NUM: varchar({ length: 255 }), // Telephone Number (Office) // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZEKORG = mdgSchema.table('HRHMTB_ZEKORG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZEKORG: varchar({ length: 255 }), // Purchasing Organization // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZEKOTX: varchar({ length: 255 }), // Purchasing Organization Description // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZGSBER = mdgSchema.table('HRHMTB_ZGSBER', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZGSBER: varchar({ length: 255 }), // Business Area // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZGSBER_TEXT = mdgSchema.table('HRHMTB_ZGSBER_TEXT', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ LANGU: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ TXTMI: varchar({ length: 255 }), // Business area description // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZLGORT = mdgSchema.table('HRHMTB_ZLGORT', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZLGORT: varchar({ length: 255 }), // Storage Location // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZWERKS: varchar({ length: 255 }), // Plant // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZLGOBE: varchar({ length: 255 }), // Storage Location Description // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZSPART = mdgSchema.table('HRHMTB_ZSPART', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZSPART: varchar({ length: 255 }), // Division // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZVKBUR = mdgSchema.table('HRHMTB_ZVKBUR', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CTRY_SOFF: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ LANG_SOFF: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZVKBUR: varchar({ length: 255 }), // Sales Office // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZVKGRP = mdgSchema.table('HRHMTB_ZVKGRP', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZVKGRP: varchar({ length: 255 }), // Sales Group // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZVKORG = mdgSchema.table('HRHMTB_ZVKORG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZVKORG: varchar({ length: 255 }), // Sales Organization // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZBOAVO: varchar({ length: 255 }), // Rebate processing active in the sales organization // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZKUNNR: varchar({ length: 255 }), // Customer number for intercompany billing // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZVKOKL: varchar({ length: 255 }), // Sales organization calendar // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZWAERS: varchar({ length: 255 }), // Statistics currency // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZVSTEL = mdgSchema.table('HRHMTB_ZVSTEL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ALAN_VSTE: varchar({ length: 255 }), // Departure zone // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ AZON_VSTE: varchar({ length: 255 }), // Departure country // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ CTRY_SHPT: varchar({ length: 255 }), // Country Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ LANG_SHPT: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZVSTEL: varchar({ length: 255 }), // Shipping Point // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZFABKL: varchar({ length: 255 }), // Factory calendar key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZLAZBS: varchar({ length: 255 }), // Determine loading time // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZLAZZT: varchar({ length: 255 }), // Default loading time // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZRIZBS: varchar({ length: 255 }), // Determine pick/pack time // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZRIZZT: varchar({ length: 255 }), // Default pick/pack time // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZVTWEG = mdgSchema.table('HRHMTB_ZVTWEG', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ZVTWEG: varchar({ length: 255 }), // Distribution Channel // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl // WSDL에서 필수 필드
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const HRHMTB_ZWERKS = mdgSchema.table('HRHMTB_ZWERKS', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CTRY_PLNT: varchar({ length: 255 }), // Country // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ LANG_PLNT: varchar({ length: 255 }), // Language Key // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZWERKS: varchar({ length: 255 }), // Plant // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZDELETE: varchar({ length: 255 }), // Flag for deletion // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZFABKL: varchar({ length: 255 }), // Factory Calendar // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZNAME1: varchar({ length: 255 }), // Name // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+ ZZNAME2: varchar({ length: 255 }), // Name2 // From: IF_MDZ_EVCP_ORGANIZATION_MASTER.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+export const MATL = mdgSchema.table('MATL', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BISMT: varchar({ length: 255 }), // Old material number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ BREIT: varchar({ length: 255 }), // Width // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ BRGEW: varchar({ length: 255 }), // Gross Weight // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ GEWEI: varchar({ length: 255 }), // Weight Unit // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ GROES: varchar({ length: 255 }), // Size/dimensions // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ HOEHE: varchar({ length: 255 }), // Height // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ LAENG: varchar({ length: 255 }), // Length // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ LVORM: varchar({ length: 255 }), // Deletion flag // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MAGRV: varchar({ length: 255 }), // Material Group: Packaging Materials // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MATKL: varchar({ length: 255 }), // Material Group // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ // MATNR: MATL 의 키. 이 키를 기준으로 다른 테이블과 연결됨.
+ MATNR: varchar({ length: 255 }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ MBRSH: varchar({ length: 255 }), // Industry sector // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MEABM: varchar({ length: 255 }), // Unit of Dimension for Length/Width/Height // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MEINS: varchar({ length: 255 }), // Base Unit of Measure // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MSTAE: varchar({ length: 255 }), // Material Status // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MSTDE: varchar({ length: 255 }), // Date from which the cross-plant material status is // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MTART: varchar({ length: 255 }), // Material Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ NTGEW: varchar({ length: 255 }), // Net Weight // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ PRDHA: varchar({ length: 255 }), // Product hierarchy // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ SPART: varchar({ length: 255 }), // Division // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ VHART: varchar({ length: 255 }), // Packaging Material Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ VOLEH: varchar({ length: 255 }), // Volume unit // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ VOLUM: varchar({ length: 255 }), // Volume // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZACT: varchar({ length: 255 }), // Activity Code // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZAPPDT: varchar({ length: 255 }), // Approval Date // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZAPPTM: varchar({ length: 255 }), // Approval Time // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZAPPUS: varchar({ length: 255 }), // Approval User // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZCERT: varchar({ length: 255 }), // Certification Code // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZDESC: varchar({ length: 255 }), // Description // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZDOKAR: varchar({ length: 255 }), // Document Type // From: IF_MDZ_EVCP_MODEL_MASTER.wsdl
+ ZZDOKNR: varchar({ length: 255 }), // Document number // From: IF_MDZ_EVCP_MODEL_MASTER.wsdl
+ ZZDOKTL: varchar({ length: 255 }), // Document Part // From: IF_MDZ_EVCP_MODEL_MASTER.wsdl
+ ZZDOKVR: varchar({ length: 255 }), // Document Version // From: IF_MDZ_EVCP_MODEL_MASTER.wsdl
+ ZZINSP: varchar({ length: 255 }), // Inspection // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZLAMDT: varchar({ length: 255 }), // Last Modified Date // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZLAMTM: varchar({ length: 255 }), // Last Modified Time // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZLAMUS: varchar({ length: 255 }), // Last Modified User // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZMMTYP: varchar({ length: 255 }), // Material Master Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZMRC: varchar({ length: 255 }), // MRC // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZNAME: varchar({ length: 255 }), // Material Name // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZPJT: varchar({ length: 255 }), // Project Code // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZPLMID: varchar({ length: 255 }), // PLM ID // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZPRCD_SCV_CTLP: varchar({ length: 255 }), // 선행후행조정관 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZPRFLG: varchar({ length: 255 }), // CRUD Status // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGDT: varchar({ length: 255 }), // Registered Date // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGTM: varchar({ length: 255 }), // Registered Time // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGUS: varchar({ length: 255 }), // Registered User // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREPMAT: varchar({ length: 255 }), // REP Material // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREP_DIA: varchar({ length: 255 }), // 대표지름 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREP_DIA_UOM: varchar({ length: 255 }), // 대표지름단위 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREP_ITM_MATL: varchar({ length: 255 }), // 대표품명재질 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZSMID: varchar({ length: 255 }), // SM ID // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZSPEC: varchar({ length: 255 }), // Specification // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZSTL: varchar({ length: 255 }), // Steel Material // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR),
+]);
+
+export const MATL_CHARASGN = mdgSchema.table('MATL_CHARASGN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ATAW1: varchar({ length: 255 }), // Unit of Measurement // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATAWE: varchar({ length: 255 }), // Unit of Measurement // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATBEZ: varchar({ length: 255 }), // 특성내역 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATFLB: varchar({ length: 255 }), // Internal floating point value to // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATFLV: varchar({ length: 255 }), // Internal floating point from // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATNAM: varchar({ length: 255 }), // Characteristic Name // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ ATWRT: varchar({ length: 255 }), // Characteristic Value // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ATWTB: varchar({ length: 255 }), // 특성값내역 // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ CLASS: varchar({ length: 255 }), // Class number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ KLART: varchar({ length: 255 }), // Class Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ MATNR: varchar({ length: 255 }).notNull().references(() => MATL.MATNR, { onDelete: 'cascade' }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR, table.CLASS, table.KLART, table.ATNAM),
+]);
+
+export const MATL_CLASSASGN = mdgSchema.table('MATL_CLASSASGN', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ CLASS: varchar({ length: 255 }), // Class number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ KLART: varchar({ length: 255 }), // Class Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ MATNR: varchar({ length: 255 }).notNull().references(() => MATL.MATNR, { onDelete: 'cascade' }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR, table.CLASS, table.KLART),
+]);
+
+export const MATL_DESC = mdgSchema.table('MATL_DESC', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ MAKTX: varchar({ length: 255 }), // Material Description (Short Text) // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MATNR: varchar({ length: 255 }).notNull().references(() => MATL.MATNR, { onDelete: 'cascade' }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ SPRAS: varchar({ length: 255 }), // Language // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR, table.SPRAS),
+]);
+
+export const MATL_PLNT = mdgSchema.table('MATL_PLNT', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ LVORM: varchar({ length: 255 }), // Deletion Flag // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MATNR: varchar({ length: 255 }).notNull().references(() => MATL.MATNR, { onDelete: 'cascade' }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ MMSTA: varchar({ length: 255 }), // Plant-Specific Material Status // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MMSTD: varchar({ length: 255 }), // Date from which the plant-specific material status // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ WERKS: varchar({ length: 255 }), // Plant // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ ZZLAMDT: varchar({ length: 255 }), // Last Modified Date // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZLAMTM: varchar({ length: 255 }), // Last Modified Time // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZLAMUS: varchar({ length: 255 }), // Last Modified User // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZMTARP: varchar({ length: 255 }), // Plant Material Type // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZPRFLG: varchar({ length: 255 }), // CRUD Status // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGDT: varchar({ length: 255 }), // Registered Date // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGTM: varchar({ length: 255 }), // Registered Time // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ ZZREGUS: varchar({ length: 255 }), // Registered User // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR, table.WERKS),
+]);
+
+export const MATL_UNIT = mdgSchema.table('MATL_UNIT', {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ BREIT: varchar({ length: 255 }), // Width // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ BRGEW: varchar({ length: 255 }), // Gross Weight // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ GEWEI: varchar({ length: 255 }), // Weight Unit // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ HOEHE: varchar({ length: 255 }), // Height // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ LAENG: varchar({ length: 255 }), // Length // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MATNR: varchar({ length: 255 }), // Material Number // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ MEABM: varchar({ length: 255 }), // Unit of Dimension for Length/Width/Height // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ MEINH: varchar({ length: 255 }), // Alternative Unit of Measure for Stockkeeping Unit // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl // WSDL에서 필수 필드
+ UMREN: varchar({ length: 255 }), // Denominator for conversion to base units of measur // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ UMREZ: varchar({ length: 255 }), // Numerator for Conversion to Base Units of Measure // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ VOLEH: varchar({ length: 255 }), // Volume unit // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+ VOLUM: varchar({ length: 255 }), // Volume // From: IF_MDZ_EVCP_MATERIAL_MASTER_PART.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+}, (table) => [
+ unique().on(table.MATNR, table.MEINH),
+]);
diff --git a/db/schema/evaluation.ts b/db/schema/evaluation.ts
new file mode 100644
index 00000000..4db3a25a
--- /dev/null
+++ b/db/schema/evaluation.ts
@@ -0,0 +1,314 @@
+import { pgView , pgTable, serial, varchar, text, timestamp, integer, decimal, boolean, uuid } from 'drizzle-orm/pg-core';
+import { relations , sql} from 'drizzle-orm';
+import { Vendor, vendors } from './vendors';
+
+// 1. 일반 평가표 테이블
+export const generalEvaluations = pgTable('general_evaluations', {
+ id: serial('id').primaryKey(),
+ serialNumber: varchar('serial_number', { length: 50 }).notNull().unique(),
+ category: varchar('category', { length: 100 }).notNull(),
+ inspectionItem: text('inspection_item').notNull(),
+ remarks: text('remarks'),
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// 2. ESG 자가진단표 메인 테이블
+export const esgEvaluations = pgTable('esg_evaluations', {
+ id: serial('id').primaryKey(),
+ serialNumber: varchar('serial_number', { length: 50 }).notNull().unique(),
+ category: varchar('category', { length: 100 }).notNull(),
+ inspectionItem: text('inspection_item').notNull(),
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// 3. ESG 평가항목 테이블 (각 ESG 진단표의 세부 평가항목들)
+export const esgEvaluationItems = pgTable('esg_evaluation_items', {
+ id: serial('id').primaryKey(),
+ esgEvaluationId: integer('esg_evaluation_id').references(() => esgEvaluations.id, { onDelete: 'cascade' }).notNull(),
+ evaluationItem: text('evaluation_item').notNull(), // 평가항목
+ evaluationItemDescription: text('evaluation_item_description'), // 평가항목
+ orderIndex: integer('order_index').default(0).notNull(), // 정렬 순서
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// 4. ESG 답변 옵션 테이블 (각 평가항목에 대한 선택 가능한 답변들)
+export const esgAnswerOptions = pgTable('esg_answer_options', {
+ id: serial('id').primaryKey(),
+ esgEvaluationItemId: integer('esg_evaluation_item_id').references(() => esgEvaluationItems.id, { onDelete: 'cascade' }).notNull(),
+ answerText: text('answer_text').notNull(), // 답변 내용
+ score: decimal('score', { precision: 5, scale: 2 }).notNull(), // 점수 (소수점 2자리까지)
+ orderIndex: integer('order_index').default(0).notNull(), // 정렬 순서
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+
+
+// === Relations 정의 ===
+
+// ESG 평가표와 평가항목 관계
+export const esgEvaluationsRelations = relations(esgEvaluations, ({ many }) => ({
+ evaluationItems: many(esgEvaluationItems),
+}));
+
+export const esgEvaluationItemsRelations = relations(esgEvaluationItems, ({ one, many }) => ({
+ esgEvaluation: one(esgEvaluations, {
+ fields: [esgEvaluationItems.esgEvaluationId],
+ references: [esgEvaluations.id],
+ }),
+ answerOptions: many(esgAnswerOptions),
+}));
+
+export const esgAnswerOptionsRelations = relations(esgAnswerOptions, ({ one }) => ({
+ evaluationItem: one(esgEvaluationItems, {
+ fields: [esgAnswerOptions.esgEvaluationItemId],
+ references: [esgEvaluationItems.id],
+ }),
+}));
+
+// === 타입 정의 ===
+export type GeneralEvaluation = typeof generalEvaluations.$inferSelect;
+export type NewGeneralEvaluation = typeof generalEvaluations.$inferInsert;
+
+export type EsgEvaluation = typeof esgEvaluations.$inferSelect;
+export type NewEsgEvaluation = typeof esgEvaluations.$inferInsert;
+
+export type EsgEvaluationItem = typeof esgEvaluationItems.$inferSelect;
+export type NewEsgEvaluationItem = typeof esgEvaluationItems.$inferInsert;
+
+export type EsgAnswerOption = typeof esgAnswerOptions.$inferSelect;
+export type NewEsgAnswerOption = typeof esgAnswerOptions.$inferInsert;
+
+// === 조인된 타입 정의 ===
+export type EsgEvaluationWithItems = EsgEvaluation & {
+ evaluationItems: (EsgEvaluationItem & {
+ answerOptions: EsgAnswerOption[];
+ })[];
+};
+
+export type EsgEvaluationItemWithOptions = EsgEvaluationItem & {
+ answerOptions: EsgAnswerOption[];
+};
+
+
+// ESG 평가표 목록을 위한 뷰 (평가항목 수와 총 점수 등 요약 정보 포함)
+export const esgEvaluationsView = pgView('esg_evaluations_view').as((qb) =>
+ qb
+ .select({
+ id: esgEvaluations.id,
+ serialNumber: esgEvaluations.serialNumber,
+ category: esgEvaluations.category,
+ inspectionItem: esgEvaluations.inspectionItem,
+ isActive: esgEvaluations.isActive,
+ createdAt: esgEvaluations.createdAt,
+ updatedAt: esgEvaluations.updatedAt,
+ // 집계 필드들
+ totalEvaluationItems: sql<number>`count(distinct ${esgEvaluationItems.id})`.as('total_evaluation_items'),
+ totalAnswerOptions: sql<number>`count(${esgAnswerOptions.id})`.as('total_answer_options'),
+ maxPossibleScore: sql<number>`coalesce(sum(${esgAnswerOptions.score}), 0)`.as('max_possible_score'),
+ // ✅ 서브쿼리로 평가항목 리스트 조회
+ evaluationItemsList: sql<string[]>`
+ (
+ SELECT array_agg(evaluation_item order by order_index)
+ FROM esg_evaluation_items
+ WHERE esg_evaluation_id = ${esgEvaluations.id}
+ AND is_active = true
+ AND evaluation_item is not null
+ )
+ `.as('evaluation_items_list'),
+ })
+ .from(esgEvaluations)
+ .leftJoin(esgEvaluationItems, sql`${esgEvaluations.id} = ${esgEvaluationItems.esgEvaluationId} AND ${esgEvaluationItems.isActive} = true`)
+ .leftJoin(esgAnswerOptions, sql`${esgEvaluationItems.id} = ${esgAnswerOptions.esgEvaluationItemId} AND ${esgAnswerOptions.isActive} = true`)
+ .groupBy(
+ esgEvaluations.id,
+ esgEvaluations.serialNumber,
+ esgEvaluations.category,
+ esgEvaluations.inspectionItem,
+ esgEvaluations.isActive,
+ esgEvaluations.createdAt,
+ esgEvaluations.updatedAt
+ )
+);
+// 타입도 업데이트
+export type EsgEvaluationsView = typeof esgEvaluationsView.$inferSelect;
+
+
+
+export const evaluationSubmissions = pgTable('evaluation_submissions', {
+ id: serial('id').primaryKey(),
+ submissionId: uuid('submission_id').defaultRandom().notNull().unique(),
+ companyId: integer('company_id').references(() => vendors.id, { onDelete: 'cascade' }).notNull(),
+ evaluationYear: integer('evaluation_year').notNull(),
+ evaluationRound: varchar('evaluation_round', { length: 50 }),
+ submissionStatus: varchar('submission_status', { length: 50 }).default('draft').notNull(),
+ submittedAt: timestamp('submitted_at'),
+ reviewedAt: timestamp('reviewed_at'),
+ reviewedBy: varchar('reviewed_by', { length: 100 }),
+ reviewComments: text('review_comments'),
+
+ // 🔄 ESG 평균 점수만 저장 (일반평가는 점수 없음)
+ averageEsgScore: decimal('average_esg_score', { precision: 5, scale: 2 }), // ESG 평균 점수만
+
+ // 📊 진행률 통계
+ totalGeneralItems: integer('total_general_items').default(0), // 일반평가 총 항목 수
+ completedGeneralItems: integer('completed_general_items').default(0), // 완료된 일반평가 항목 수
+ totalEsgItems: integer('total_esg_items').default(0), // ESG 총 항목 수
+ completedEsgItems: integer('completed_esg_items').default(0), // 완료된 ESG 항목 수
+
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+
+// 일반평가 응답 - 점수 필드 제거
+export const generalEvaluationResponses = pgTable('general_evaluation_responses', {
+ id: serial('id').primaryKey(),
+ submissionId: integer('submission_id').references(() => evaluationSubmissions.id, { onDelete: 'cascade' }).notNull(),
+ generalEvaluationId: integer('general_evaluation_id').references(() => generalEvaluations.id, { onDelete: 'cascade' }).notNull(),
+ responseText: text('response_text').notNull(), // 텍스트 응답
+ hasAttachments: boolean('has_attachments').default(false).notNull(),
+ // ❌ score 필드 제거 (점수 없음)
+ reviewComments: text('review_comments'), // 검토자 의견 (선택적)
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// ESG는 기존 그대로 (점수 있음)
+export const esgEvaluationResponses = pgTable('esg_evaluation_responses', {
+ id: serial('id').primaryKey(),
+ submissionId: integer('submission_id').references(() => evaluationSubmissions.id, { onDelete: 'cascade' }).notNull(),
+ esgEvaluationItemId: integer('esg_evaluation_item_id').references(() => esgEvaluationItems.id, { onDelete: 'cascade' }).notNull(),
+ esgAnswerOptionId: integer('esg_answer_option_id').references(() => esgAnswerOptions.id, { onDelete: 'cascade' }).notNull(),
+ selectedScore: decimal('selected_score', { precision: 5, scale: 2 }).notNull(), // ESG는 점수 있음
+ additionalComments: text('additional_comments'),
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// 5. 첨부파일 테이블
+export const vendorEvaluationAttachments = pgTable('vendor_evaluation_attachments', {
+ id: serial('id').primaryKey(),
+ fileId: uuid('file_id').defaultRandom().notNull().unique(), // 외부 노출용 파일 ID
+ submissionId: integer('submission_id').references(() => evaluationSubmissions.id, { onDelete: 'cascade' }).notNull(),
+ generalEvaluationResponseId: integer('general_evaluation_response_id').references(() => generalEvaluationResponses.id, { onDelete: 'cascade' }),
+ originalFileName: varchar('original_file_name', { length: 500 }).notNull(),
+ storedFileName: varchar('stored_file_name', { length: 500 }).notNull(),
+ filePath: text('file_path').notNull(),
+ fileSize: integer('file_size').notNull(), // bytes
+ mimeType: varchar('mime_type', { length: 200 }),
+ uploadedBy: varchar('uploaded_by', { length: 100 }).notNull(),
+ isActive: boolean('is_active').default(true).notNull(),
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+});
+
+// === Relations 정의 ===
+
+// 협력업체와 평가 제출 관계
+export const companiesRelations = relations(vendors, ({ many }) => ({
+ evaluationSubmissions: many(evaluationSubmissions),
+}));
+
+// 평가 제출과 응답들 관계
+export const evaluationSubmissionsRelations = relations(evaluationSubmissions, ({ one, many }) => ({
+ company: one(vendors, {
+ fields: [evaluationSubmissions.companyId],
+ references: [vendors.id],
+ }),
+ generalEvaluationResponses: many(generalEvaluationResponses),
+ esgEvaluationResponses: many(esgEvaluationResponses),
+ vendorEvaluationAttachments: many(vendorEvaluationAttachments),
+}));
+
+// 일반 평가표 응답 관계
+export const generalEvaluationResponsesRelations = relations(generalEvaluationResponses, ({ one, many }) => ({
+ submission: one(evaluationSubmissions, {
+ fields: [generalEvaluationResponses.submissionId],
+ references: [evaluationSubmissions.id],
+ }),
+ generalEvaluation: one(generalEvaluations, {
+ fields: [generalEvaluationResponses.generalEvaluationId],
+ references: [generalEvaluations.id],
+ }),
+ vendorEvaluationAttachments: many(vendorEvaluationAttachments),
+}));
+
+// ESG 평가표 응답 관계
+export const esgEvaluationResponsesRelations = relations(esgEvaluationResponses, ({ one }) => ({
+ submission: one(evaluationSubmissions, {
+ fields: [esgEvaluationResponses.submissionId],
+ references: [evaluationSubmissions.id],
+ }),
+ esgEvaluationItem: one(esgEvaluationItems, {
+ fields: [esgEvaluationResponses.esgEvaluationItemId],
+ references: [esgEvaluationItems.id],
+ }),
+ esgAnswerOption: one(esgAnswerOptions, {
+ fields: [esgEvaluationResponses.esgAnswerOptionId],
+ references: [esgAnswerOptions.id],
+ }),
+}));
+
+// 첨부파일 관계
+export const attachmentsRelations = relations(vendorEvaluationAttachments, ({ one }) => ({
+ submission: one(evaluationSubmissions, {
+ fields: [vendorEvaluationAttachments.submissionId],
+ references: [evaluationSubmissions.id],
+ }),
+ generalEvaluationResponse: one(generalEvaluationResponses, {
+ fields: [vendorEvaluationAttachments.generalEvaluationResponseId],
+ references: [generalEvaluationResponses.id],
+ }),
+}));
+
+// === 타입 정의 ===
+
+
+export type EvaluationSubmission = typeof evaluationSubmissions.$inferSelect;
+export type NewEvaluationSubmission = typeof evaluationSubmissions.$inferInsert;
+
+export type GeneralEvaluationResponse = typeof generalEvaluationResponses.$inferSelect;
+export type NewGeneralEvaluationResponse = typeof generalEvaluationResponses.$inferInsert;
+
+export type EsgEvaluationResponse = typeof esgEvaluationResponses.$inferSelect;
+export type NewEsgEvaluationResponse = typeof esgEvaluationResponses.$inferInsert;
+
+export type Attachment = typeof vendorEvaluationAttachments.$inferSelect;
+export type NewAttachment = typeof vendorEvaluationAttachments.$inferInsert;
+
+// === 조인된 타입 정의 ===
+export type EvaluationSubmissionWithDetails = EvaluationSubmission & {
+ company: Vendor;
+ generalEvaluationResponses: (GeneralEvaluationResponse & {
+ generalEvaluation: GeneralEvaluation;
+ vendorEvaluationAttachments: Attachment[];
+ })[];
+ esgEvaluationResponses: (EsgEvaluationResponse & {
+ esgEvaluationItem: EsgEvaluationItem;
+ esgAnswerOption: EsgAnswerOption;
+ })[];
+ vendorEvaluationAttachments: Attachment[];
+};
+
+export type GeneralEvaluationResponseWithDetails = GeneralEvaluationResponse & {
+ generalEvaluation: GeneralEvaluation;
+ vendorEvaluationAttachments: Attachment[];
+};
+
+export type EsgEvaluationResponseWithDetails = EsgEvaluationResponse & {
+ esgEvaluationItem: EsgEvaluationItem & {
+ esgEvaluation: EsgEvaluation;
+ };
+ esgAnswerOption: EsgAnswerOption;
+}; \ No newline at end of file
diff --git a/db/schema/evaluationTarget.ts b/db/schema/evaluationTarget.ts
new file mode 100644
index 00000000..4eff1c19
--- /dev/null
+++ b/db/schema/evaluationTarget.ts
@@ -0,0 +1,385 @@
+import { pgTable, pgView, serial, varchar, text, timestamp, boolean, integer, numeric, date, uniqueIndex, unique, decimal } from "drizzle-orm/pg-core";
+import { eq , sql, relations} from "drizzle-orm";
+import { vendors } from "./vendors";
+import { users } from "./users";
+import { contracts } from "./contract";
+
+// 평가 대상 메인 테이블
+export const evaluationTargets = pgTable("evaluation_targets", {
+ id: serial("id").primaryKey(),
+
+ // 평가년도 (예: 2024)
+ evaluationYear: integer("evaluation_year").notNull(),
+
+ // 구분 (해양/조선)
+ division: varchar("division", {
+ length: 20,
+ enum: ["SHIP", "PLANT"]
+ }).notNull(),
+
+ // 벤더 정보
+ vendorId: integer("vendor_id").references(() => vendors.id).notNull(),
+ vendorCode: varchar("vendor_code", { length: 100 }).notNull(),
+ vendorName: varchar("vendor_name", { length: 255 }).notNull(),
+
+ // 내외자 구분
+ domesticForeign: varchar("domestic_foreign", {
+ length: 20,
+ enum: ["DOMESTIC", "FOREIGN"]
+ }).notNull(),
+
+ // 자재구분
+ materialType: varchar("material_type", {
+ length: 30,
+ enum: ["EQUIPMENT", "BULK", "EQUIPMENT_BULK"]
+ }).notNull(),
+
+ // 상태
+ status: varchar("status", {
+ length: 30,
+ enum: ["PENDING", "CONFIRMED", "EXCLUDED"]
+ }).notNull().default("PENDING"),
+
+ // 관리자 의견
+ adminComment: text("admin_comment"),
+ adminUserId: integer("admin_user_id").references(() => users.id),
+
+ // 종합 담당자 의견 (각 담당자들의 의견을 모아서 표시)
+ consolidatedComment: text("consolidated_comment"),
+
+ // 의견 일치 여부 (null: 아직 검토중, true: 일치, false: 불일치)
+ consensusStatus: boolean("consensus_status"),
+
+ // 최종 확정일
+ confirmedAt: timestamp("confirmed_at"),
+ confirmedBy: integer("confirmed_by").references(() => users.id),
+
+ ldClaimCount: integer("ld_claim_count").default(0),
+ ldClaimAmount: decimal("ld_claim_amount", { precision: 15, scale: 2 }).default("0"),
+ ldClaimCurrency: varchar("ld_claim_currency", {
+ length: 10,
+ enum: ["KRW", "USD", "EUR", "JPY"]
+ }).default("KRW"),
+
+
+ createdAt: timestamp("created_at").defaultNow().notNull(),
+ updatedAt: timestamp("updated_at").defaultNow().notNull(),
+});
+
+// 평가 대상별 담당자 지정 테이블
+export const evaluationTargetReviewers = pgTable("evaluation_target_reviewers", {
+ id: serial("id").primaryKey(),
+
+ evaluationTargetId: integer("evaluation_target_id")
+ .references(() => evaluationTargets.id, { onDelete: "cascade" })
+ .notNull(),
+
+
+ departmentCode: varchar("department_code", { length: 50 }).notNull(),
+ departmentNameFrom: varchar("department_name_from", { length: 50 }),
+
+ reviewerUserId: integer("reviewer_user_id")
+ .references(() => users.id)
+ .notNull(),
+
+ // 지정일
+ assignedAt: timestamp("assigned_at").defaultNow().notNull(),
+ assignedBy: integer("assigned_by").references(() => users.id).notNull(),
+
+ createdAt: timestamp("created_at").defaultNow().notNull(),
+ updatedAt: timestamp("updated_at").defaultNow().notNull(),
+}, (table) => ({
+ // 같은 평가대상에 같은 부서는 한 명의 담당자만
+ uniqueTargetDepartment: unique("unique_target_department")
+ .on(table.evaluationTargetId, table.departmentCode),
+}));
+
+// 각 담당자의 평가 대상 검토 결과 테이블
+export const evaluationTargetReviews = pgTable("evaluation_target_reviews", {
+ id: serial("id").primaryKey(),
+
+ evaluationTargetId: integer("evaluation_target_id")
+ .references(() => evaluationTargets.id, { onDelete: "cascade" })
+ .notNull(),
+
+ reviewerUserId: integer("reviewer_user_id")
+ .references(() => users.id)
+ .notNull(),
+
+ // 부서 코드 (API에서 부서 정보 조회용)
+ departmentCode: varchar("department_code", { length: 50 }).notNull(),
+
+ // 평가 대상 동의 여부
+ isApproved: boolean("is_approved"),
+
+ // 검토 의견
+ reviewComment: text("review_comment"),
+
+ // 검토일
+ reviewedAt: timestamp("reviewed_at"),
+
+ createdAt: timestamp("created_at").defaultNow().notNull(),
+ updatedAt: timestamp("updated_at").defaultNow().notNull(),
+}, (table) => ({
+ // 같은 평가대상에 같은 담당자는 한 번만 검토
+ uniqueTargetReviewer: unique("unique_target_reviewer")
+ .on(table.evaluationTargetId, table.reviewerUserId),
+}));
+
+
+// 관계 정의
+export const evaluationTargetsRelations = relations(evaluationTargets, ({ one, many }) => ({
+ vendor: one(vendors, {
+ fields: [evaluationTargets.vendorId],
+ references: [vendors.id],
+ }),
+ adminUser: one(users, {
+ fields: [evaluationTargets.adminUserId],
+ references: [users.id],
+ }),
+ confirmedByUser: one(users, {
+ fields: [evaluationTargets.confirmedBy],
+ references: [users.id],
+ }),
+ reviewers: many(evaluationTargetReviewers),
+ reviews: many(evaluationTargetReviews),
+}));
+
+export const evaluationTargetReviewersRelations = relations(evaluationTargetReviewers, ({ one }) => ({
+ evaluationTarget: one(evaluationTargets, {
+ fields: [evaluationTargetReviewers.evaluationTargetId],
+ references: [evaluationTargets.id],
+ }),
+ reviewer: one(users, {
+ fields: [evaluationTargetReviewers.reviewerUserId],
+ references: [users.id],
+ }),
+ assignedByUser: one(users, {
+ fields: [evaluationTargetReviewers.assignedBy],
+ references: [users.id],
+ }),
+}));
+
+export const evaluationTargetReviewsRelations = relations(evaluationTargetReviews, ({ one }) => ({
+ evaluationTarget: one(evaluationTargets, {
+ fields: [evaluationTargetReviews.evaluationTargetId],
+ references: [evaluationTargets.id],
+ }),
+ reviewer: one(users, {
+ fields: [evaluationTargetReviews.reviewerUserId],
+ references: [users.id],
+ }),
+}));
+
+export const orderRecordsRelations = relations(contracts, ({ one }) => ({
+ vendor: one(vendors, {
+ fields: [contracts.vendorId],
+ references: [vendors.id],
+ }),
+}));
+
+// 평가 담당 부서 코드 상수 (조직 API와 매핑)
+export const EVALUATION_DEPARTMENT_CODES = {
+ ORDER_EVAL: "ORDER_EVAL", // 발주 평가 담당
+ PROCUREMENT_EVAL: "PROCUREMENT_EVAL", // 조달 평가 담당
+ QUALITY_EVAL: "QUALITY_EVAL", // 품질 평가 담당
+ DESIGN_EVAL: "DESIGN_EVAL", // 설계 평가 담당
+ CS_EVAL: "CS_EVAL", // CS 평가 담당
+} as const;
+
+export type EvaluationDepartmentCode = keyof typeof EVALUATION_DEPARTMENT_CODES;
+
+ // ============= TypeScript 타입 정의 =============
+
+ export type EvaluationTargetStatus = "PENDING" | "CONFIRMED" | "EXCLUDED";
+ export type Division = "OCEAN" | "SHIPYARD";
+ export type MaterialType = "EQUIPMENT" | "BULK" | "EQUIPMENT_BULK";
+ export type DomesticForeign = "DOMESTIC" | "FOREIGN";
+
+ export interface EvaluationTargetCreate {
+ evaluationYear: number;
+ division: Division;
+ vendorId: number;
+ vendorCode: string;
+ vendorName: string;
+ domesticForeign: DomesticForeign;
+ materialType: MaterialType;
+ adminComment?: string;
+ managerComment?: string;
+ }
+
+ export interface ReviewerAssignment {
+ departmentId: number;
+ reviewerUserId: number;
+ }
+
+ export interface EvaluationReview {
+ evaluationTargetId: number;
+ reviewerUserId: number;
+ departmentId: number;
+ isApproved: boolean;
+ reviewComment?: string;
+ }
+
+ export interface EvaluationTargetWithReviews {
+ id: number;
+ evaluationYear: number;
+ division: Division;
+ vendorCode: string;
+ vendorName: string;
+ domesticForeign: DomesticForeign;
+ materialType: MaterialType;
+ status: EvaluationTargetStatus;
+ consensusStatus: boolean | null;
+ adminComment?: string;
+ managerComment?: string;
+ reviews: {
+ departmentName: string;
+ reviewerName: string;
+ isApproved: boolean | null;
+ reviewComment?: string;
+ reviewedAt?: Date;
+ }[];
+ }
+
+
+
+
+export type EvaluationTargets = typeof evaluationTargets.$inferSelect;
+export type NewEvaluationTargets= typeof evaluationTargets.$inferInsert;
+
+
+export const evaluationTargetsWithDepartments = pgView("evaluation_targets_with_departments").as((qb) => {
+ return qb
+ .select({
+ // 기본 정보
+ id: evaluationTargets.id,
+ evaluationYear: evaluationTargets.evaluationYear,
+ division: evaluationTargets.division,
+ vendorCode: evaluationTargets.vendorCode,
+ vendorName: evaluationTargets.vendorName,
+ domesticForeign: evaluationTargets.domesticForeign,
+ materialType: evaluationTargets.materialType,
+ status: evaluationTargets.status,
+ consensusStatus: evaluationTargets.consensusStatus,
+ adminComment: evaluationTargets.adminComment,
+ consolidatedComment: evaluationTargets.consolidatedComment,
+ confirmedAt: evaluationTargets.confirmedAt,
+ confirmedBy: evaluationTargets.confirmedBy,
+ ldClaimCount: evaluationTargets.ldClaimCount,
+ ldClaimAmount: evaluationTargets.ldClaimAmount,
+ ldClaimCurrency: evaluationTargets.ldClaimCurrency,
+ createdAt: evaluationTargets.createdAt,
+ updatedAt: evaluationTargets.updatedAt,
+
+ // 발주 평가 담당 (ORDER_EVAL)
+ orderReviewerName: sql<string | null>`order_reviewer.name`.as('order_reviewer_name'),
+ orderReviewerEmail: sql<string | null>`order_reviewer.email`.as('order_reviewer_email'),
+ orderDepartmentName: sql<string | null>`order_etr.department_name_from`.as('order_department_name'),
+ orderIsApproved: sql<boolean | null>`order_review.is_approved`.as('order_is_approved'),
+ orderReviewedAt: sql<Date | null>`order_review.reviewed_at`.as('order_reviewed_at'),
+
+ // 조달 평가 담당 (PROCUREMENT_EVAL)
+ procurementReviewerName: sql<string | null>`procurement_reviewer.name`.as('procurement_reviewer_name'),
+ procurementReviewerEmail: sql<string | null>`procurement_reviewer.email`.as('procurement_reviewer_email'),
+ procurementDepartmentName: sql<string | null>`procurement_etr.department_name_from`.as('procurement_department_name'),
+ procurementIsApproved: sql<boolean | null>`procurement_review.is_approved`.as('procurement_is_approved'),
+ procurementReviewedAt: sql<Date | null>`procurement_review.reviewed_at`.as('procurement_reviewed_at'),
+
+ // 품질 평가 담당 (QUALITY_EVAL)
+ qualityReviewerName: sql<string | null>`quality_reviewer.name`.as('quality_reviewer_name'),
+ qualityReviewerEmail: sql<string | null>`quality_reviewer.email`.as('quality_reviewer_email'),
+ qualityDepartmentName: sql<string | null>`quality_etr.department_name_from`.as('quality_department_name'),
+ qualityIsApproved: sql<boolean | null>`quality_review.is_approved`.as('quality_is_approved'),
+ qualityReviewedAt: sql<Date | null>`quality_review.reviewed_at`.as('quality_reviewed_at'),
+
+ // 설계 평가 담당 (DESIGN_EVAL)
+ designReviewerName: sql<string | null>`design_reviewer.name`.as('design_reviewer_name'),
+ designReviewerEmail: sql<string | null>`design_reviewer.email`.as('design_reviewer_email'),
+ designDepartmentName: sql<string | null>`design_etr.department_name_from`.as('design_department_name'),
+ designIsApproved: sql<boolean | null>`design_review.is_approved`.as('design_is_approved'),
+ designReviewedAt: sql<Date | null>`design_review.reviewed_at`.as('design_reviewed_at'),
+
+ // CS 평가 담당 (CS_EVAL)
+ csReviewerName: sql<string | null>`cs_reviewer.name`.as('cs_reviewer_name'),
+ csReviewerEmail: sql<string | null>`cs_reviewer.email`.as('cs_reviewer_email'),
+ csDepartmentName: sql<string | null>`cs_etr.department_name_from`.as('cs_department_name'),
+ csIsApproved: sql<boolean | null>`cs_review.is_approved`.as('cs_is_approved'),
+ csReviewedAt: sql<Date | null>`cs_review.reviewed_at`.as('cs_reviewed_at'),
+ })
+ .from(evaluationTargets)
+
+ // 발주 평가 담당자 JOIN
+ .leftJoin(
+ sql`evaluation_target_reviewers order_etr`,
+ sql`${evaluationTargets.id} = order_etr.evaluation_target_id AND order_etr.department_code = 'ORDER_EVAL'`
+ )
+ .leftJoin(
+ sql`users order_reviewer`,
+ sql`order_etr.reviewer_user_id = order_reviewer.id`
+ )
+ .leftJoin(
+ sql`evaluation_target_reviews order_review`,
+ sql`${evaluationTargets.id} = order_review.evaluation_target_id AND order_review.reviewer_user_id = order_reviewer.id`
+ )
+
+ // 조달 평가 담당자 JOIN
+ .leftJoin(
+ sql`evaluation_target_reviewers procurement_etr`,
+ sql`${evaluationTargets.id} = procurement_etr.evaluation_target_id AND procurement_etr.department_code = 'PROCUREMENT_EVAL'`
+ )
+ .leftJoin(
+ sql`users procurement_reviewer`,
+ sql`procurement_etr.reviewer_user_id = procurement_reviewer.id`
+ )
+ .leftJoin(
+ sql`evaluation_target_reviews procurement_review`,
+ sql`${evaluationTargets.id} = procurement_review.evaluation_target_id AND procurement_review.reviewer_user_id = procurement_reviewer.id`
+ )
+
+ // 품질 평가 담당자 JOIN
+ .leftJoin(
+ sql`evaluation_target_reviewers quality_etr`,
+ sql`${evaluationTargets.id} = quality_etr.evaluation_target_id AND quality_etr.department_code = 'QUALITY_EVAL'`
+ )
+ .leftJoin(
+ sql`users quality_reviewer`,
+ sql`quality_etr.reviewer_user_id = quality_reviewer.id`
+ )
+ .leftJoin(
+ sql`evaluation_target_reviews quality_review`,
+ sql`${evaluationTargets.id} = quality_review.evaluation_target_id AND quality_review.reviewer_user_id = quality_reviewer.id`
+ )
+
+ // 설계 평가 담당자 JOIN
+ .leftJoin(
+ sql`evaluation_target_reviewers design_etr`,
+ sql`${evaluationTargets.id} = design_etr.evaluation_target_id AND design_etr.department_code = 'DESIGN_EVAL'`
+ )
+ .leftJoin(
+ sql`users design_reviewer`,
+ sql`design_etr.reviewer_user_id = design_reviewer.id`
+ )
+ .leftJoin(
+ sql`evaluation_target_reviews design_review`,
+ sql`${evaluationTargets.id} = design_review.evaluation_target_id AND design_review.reviewer_user_id = design_reviewer.id`
+ )
+
+ // CS 평가 담당자 JOIN
+ .leftJoin(
+ sql`evaluation_target_reviewers cs_etr`,
+ sql`${evaluationTargets.id} = cs_etr.evaluation_target_id AND cs_etr.department_code = 'CS_EVAL'`
+ )
+ .leftJoin(
+ sql`users cs_reviewer`,
+ sql`cs_etr.reviewer_user_id = cs_reviewer.id`
+ )
+ .leftJoin(
+ sql`evaluation_target_reviews cs_review`,
+ sql`${evaluationTargets.id} = cs_review.evaluation_target_id AND cs_review.reviewer_user_id = cs_reviewer.id`
+ );
+});
+
+// 타입 정의
+export type EvaluationTargetWithDepartments = typeof evaluationTargetsWithDepartments.$inferSelect;
+
diff --git a/db/schema/index.ts b/db/schema/index.ts
index d3dbdf6d..fc59692d 100644
--- a/db/schema/index.ts
+++ b/db/schema/index.ts
@@ -18,6 +18,8 @@ export * from './techSales';
export * from './ocr';
export * from './bRfq';
export * from './techVendors';
+export * from './evaluation';
+export * from './evaluationTarget';
// MDG SOAP 수신용
// export * from './MDG/modelMaster'
diff --git a/db/schema/procurementRFQ.ts b/db/schema/procurementRFQ.ts
index f3b859d3..23521aaf 100644
--- a/db/schema/procurementRFQ.ts
+++ b/db/schema/procurementRFQ.ts
@@ -685,6 +685,8 @@ export const procurementRfqsRelations = relations(
}),
rfqDetails: many(procurementRfqDetails),
prItems: many(prItems, { relationName: "rfqPrItems" }),
+ quotations: many(procurementVendorQuotations),
+
})
);
@@ -732,6 +734,7 @@ export const vendorsRelations = relations(
users: many(users, {
relationName: "vendorUsers"
}),
+ quotations: many(procurementVendorQuotations),
})
);
@@ -752,16 +755,14 @@ export const procurementVendorQuotationsRelations = relations(
rfq: one(procurementRfqs, {
fields: [procurementVendorQuotations.rfqId],
references: [procurementRfqs.id],
- relationName: "quotationRfq" // 명시적 관계명 추가
+ // relationName 제거
}),
vendor: one(vendors, {
fields: [procurementVendorQuotations.vendorId],
references: [vendors.id],
- relationName: "quotationVendor" // 명시적 관계명 추가
+ // relationName 제거
}),
- // Add this missing relation
- // items: many(procurementQuotationItems),
- // These are optional but good to have
+ items: many(procurementQuotationItems),
paymentTerms: one(paymentTerms, {
fields: [procurementVendorQuotations.paymentTermsCode],
references: [paymentTerms.code],
diff --git a/db/schema/users.ts b/db/schema/users.ts
index 2a1e45d6..f6a66a8f 100644
--- a/db/schema/users.ts
+++ b/db/schema/users.ts
@@ -1,4 +1,4 @@
-import { integer, pgTable, varchar,timestamp,pgEnum ,pgView, text, primaryKey} from "drizzle-orm/pg-core";
+import { integer, boolean,serial, pgTable, varchar,timestamp,pgEnum ,pgView, text, primaryKey} from "drizzle-orm/pg-core";
import { eq , sql} from "drizzle-orm";
import { vendors } from "./vendors";
import { techVendors } from "./techVendors";
@@ -24,6 +24,20 @@ export const users = pgTable("users", {
});
+
+ // 부서 정의 테이블
+ export const departments = pgTable("departments", {
+ id: serial("id").primaryKey(),
+ departmentCode: varchar("department_code", { length: 50 }).notNull().unique(),
+ departmentName: varchar("department_name", { length: 100 }).notNull(),
+ description: text("description"),
+ isActive: boolean("is_active").notNull().default(true),
+
+ createdAt: timestamp("created_at").defaultNow().notNull(),
+ updatedAt: timestamp("updated_at").defaultNow().notNull(),
+ });
+
+
export const otps = pgTable('otps', {
email: varchar('email', { length: 256 }).notNull().primaryKey(),
code: varchar('code', { length: 6 }).notNull(),