diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-09 12:19:05 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-09 12:19:05 +0000 |
| commit | 6d654b1ba2c19e0bf1745b636908e3b00a0f02c7 (patch) | |
| tree | f6d48c0d3a65b428a828acea5db65db8e7bf0db8 | |
| parent | 44794a8628997c0d979adb5bd6711cd848b3e397 (diff) | |
(대표님) 20250709 변경사항 (약 18시 30분까지)
116 files changed, 41298 insertions, 1487 deletions
diff --git a/app/[lng]/evcp/(evcp)/b-rfq/[id]/layout.tsx b/app/[lng]/evcp/(evcp)/b-rfq/[id]/layout.tsx index 8dad7676..d6836437 100644 --- a/app/[lng]/evcp/(evcp)/b-rfq/[id]/layout.tsx +++ b/app/[lng]/evcp/(evcp)/b-rfq/[id]/layout.tsx @@ -70,7 +70,7 @@ export default async function RfqLayout({ <p className="text-muted-foreground"> PR발행 전 RFQ를 생성하여 관리하는 화면입니다. </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/evcp/(evcp)/budgetary-rfq/[id]/layout.tsx b/app/[lng]/evcp/(evcp)/budgetary-rfq/[id]/layout.tsx index ba7c071c..2b80e64f 100644 --- a/app/[lng]/evcp/(evcp)/budgetary-rfq/[id]/layout.tsx +++ b/app/[lng]/evcp/(evcp)/budgetary-rfq/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/evcp/(evcp)/budgetary/[id]/layout.tsx b/app/[lng]/evcp/(evcp)/budgetary/[id]/layout.tsx index b0711c66..d58d8363 100644 --- a/app/[lng]/evcp/(evcp)/budgetary/[id]/layout.tsx +++ b/app/[lng]/evcp/(evcp)/budgetary/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/evcp/(evcp)/project-gtc/page.tsx b/app/[lng]/evcp/(evcp)/project-gtc/page.tsx index b2588d2c..ac9ce03c 100644 --- a/app/[lng]/evcp/(evcp)/project-gtc/page.tsx +++ b/app/[lng]/evcp/(evcp)/project-gtc/page.tsx @@ -32,7 +32,7 @@ export default async function IndexPage(props: IndexPageProps) { <div> <div className="flex items-center gap-2"> <h2 className="text-2xl font-bold tracking-tight"> - 프로젝트 GTC 관리 + Project GTC 관리 </h2> <InformationButton pagePath="evcp/project-gtc" /> </div> diff --git a/app/[lng]/evcp/(evcp)/rfq/[id]/layout.tsx b/app/[lng]/evcp/(evcp)/rfq/[id]/layout.tsx index 9a03efa4..92817b4b 100644 --- a/app/[lng]/evcp/(evcp)/rfq/[id]/layout.tsx +++ b/app/[lng]/evcp/(evcp)/rfq/[id]/layout.tsx @@ -72,7 +72,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/partners/(partners)/vendor-data/layout.tsx b/app/[lng]/partners/(partners)/vendor-data/layout.tsx index 5a6d9026..cae8d10b 100644 --- a/app/[lng]/partners/(partners)/vendor-data/layout.tsx +++ b/app/[lng]/partners/(partners)/vendor-data/layout.tsx @@ -39,7 +39,7 @@ export default async function VendorDataLayout({ <div> <div className="flex items-center gap-2"> <h2 className="text-2xl font-bold tracking-tight"> - 협력업체 데이터 + 협력업체 데이터 입력 </h2> <InformationButton pagePath="partners/vendor-data" /> </div> diff --git a/app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx b/app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx index 8dad7676..d6836437 100644 --- a/app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx +++ b/app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx @@ -70,7 +70,7 @@ export default async function RfqLayout({ <p className="text-muted-foreground"> PR발행 전 RFQ를 생성하여 관리하는 화면입니다. </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/procurement/(procurement)/budgetary-rfq/[id]/layout.tsx b/app/[lng]/procurement/(procurement)/budgetary-rfq/[id]/layout.tsx index ba7c071c..2b80e64f 100644 --- a/app/[lng]/procurement/(procurement)/budgetary-rfq/[id]/layout.tsx +++ b/app/[lng]/procurement/(procurement)/budgetary-rfq/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/procurement/(procurement)/budgetary/[id]/layout.tsx b/app/[lng]/procurement/(procurement)/budgetary/[id]/layout.tsx index b0711c66..d58d8363 100644 --- a/app/[lng]/procurement/(procurement)/budgetary/[id]/layout.tsx +++ b/app/[lng]/procurement/(procurement)/budgetary/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/procurement/(procurement)/project-gtc/page.tsx b/app/[lng]/procurement/(procurement)/project-gtc/page.tsx index d5cb467a..554f17b0 100644 --- a/app/[lng]/procurement/(procurement)/project-gtc/page.tsx +++ b/app/[lng]/procurement/(procurement)/project-gtc/page.tsx @@ -31,7 +31,7 @@ export default async function IndexPage(props: IndexPageProps) { <div className="flex items-center justify-between space-y-2"> <div> <h2 className="text-2xl font-bold tracking-tight"> - 프로젝트 GTC 관리 + Project GTC 관리 </h2> {/* <p className="text-muted-foreground"> 프로젝트별 GTC(General Terms and Conditions) 파일을 관리할 수 있습니다. diff --git a/app/[lng]/procurement/(procurement)/rfq/[id]/layout.tsx b/app/[lng]/procurement/(procurement)/rfq/[id]/layout.tsx index 9a03efa4..92817b4b 100644 --- a/app/[lng]/procurement/(procurement)/rfq/[id]/layout.tsx +++ b/app/[lng]/procurement/(procurement)/rfq/[id]/layout.tsx @@ -72,7 +72,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/sales/(sales)/budgetary-rfq/[id]/layout.tsx b/app/[lng]/sales/(sales)/budgetary-rfq/[id]/layout.tsx index ba7c071c..2b80e64f 100644 --- a/app/[lng]/sales/(sales)/budgetary-rfq/[id]/layout.tsx +++ b/app/[lng]/sales/(sales)/budgetary-rfq/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/[lng]/sales/(sales)/budgetary/[id]/layout.tsx b/app/[lng]/sales/(sales)/budgetary/[id]/layout.tsx index b0711c66..d58d8363 100644 --- a/app/[lng]/sales/(sales)/budgetary/[id]/layout.tsx +++ b/app/[lng]/sales/(sales)/budgetary/[id]/layout.tsx @@ -73,7 +73,7 @@ export default async function RfqLayout({ ? `${rfq.description ?? ""} ${rfq.lines.map(line => line.itemCode).join(", ")}` : ""} </p> - <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate)}</strong>}</h3> + <h3>Due Date:{rfq && rfq?.dueDate && <strong>{formatDate(rfq?.dueDate, "KR")}</strong>}</h3> </div> <Separator className="my-6" /> <div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0"> diff --git a/app/api/ocr/enhanced/route.ts b/app/api/ocr/enhanced/route.ts index f0a15707..d0e5aabd 100644 --- a/app/api/ocr/enhanced/route.ts +++ b/app/api/ocr/enhanced/route.ts @@ -320,13 +320,15 @@ async function processImageOptimized( // 결과 처리 const reportNo = extractReportNo(ocrResult); + const inspectionDate = extractinspectionDate(ocrResult); const analysis = analyzeOCRQuality(ocrResult); const rawTables = await extractTablesFromOCR(ocrResult) as BaseExtractedRow[][]; const extractedTables: ExtractedRow[][] = rawTables.map(table => table.map(row => ({ ...row, - reportNo + reportNo, + inspectionDate })) ); @@ -497,12 +499,14 @@ async function processAsWholePDF( // 결과 처리 const reportNo = extractReportNo(ocrResult); + const inspectionDate = extractinspectionDate(ocrResult); const rawTables = await extractTablesFromOCR(ocrResult) as BaseExtractedRow[][]; const extractedTables: ExtractedRow[][] = rawTables.map(table => table.map(row => ({ ...row, - reportNo + reportNo, + inspectionDate })) ); @@ -552,12 +556,14 @@ async function processPageByPageOptimized( // 결과 처리 const reportNo = extractReportNo(ocrResult); + const inspectionDate = extractinspectionDate(ocrResult); const rawTables = await extractTablesFromOCR(ocrResult) as BaseExtractedRow[][]; const pageTables: ExtractedRow[][] = rawTables.map(table => table.map(row => ({ ...row, - reportNo + reportNo, + inspectionDate })) ); @@ -738,11 +744,13 @@ async function saveToDatabase({ if (table.length > 0) { const rowsData: NewOcrRow[] = table.map((row, rowIndex) => ({ tableId: savedTable.id, + fileName:file.name, sessionId, rowIndex, reportNo: row.reportNo ?? null, no: row.no ?? null, identificationNo: row.identificationNo ?? null, + inspectionDate: row.inspectionDate ?? null, tagNo: row.tagNo ?? null, jointNo: row.jointNo ?? null, jointType: row.jointType ?? null, @@ -855,6 +863,33 @@ function extractReportNo(ocrResult: any): string { } } +function extractinspectionDate(ocrResult: any): string { + try { + const table = ocrResult.images?.[0]?.tables?.[0]; + if (!table?.cells?.length) return 'UNKNOWN'; + + const target = table.cells.find( + (c: any) => c.rowIndex === 4 && c.columnIndex === 3 + ); + if (!target) return 'UNKNOWN'; + + const reportNo = cellText(target).replace(/\s+/g, ''); + return reportNo || 'UNKNOWN'; + + } catch (e) { + console.error('extractinspectionDate 오류:', e); + return 'UNKNOWN'; + } + + function cellText(cell: any): string { + return (cell.cellTextLines ?? []) + .flatMap((l: any) => + (l.cellWords ?? []).map((w: any) => (w.inferText ?? '').trim()) + ) + .join(' '); + } +} + // OCR API 호출 (기존과 동일) async function callOCRAPI(base64: string, format: string, filename: string, rotation?: number): Promise<any> { console.log('🌐 === OCR API CALL DEBUG ==='); diff --git a/app/api/ocr/utils/tableExtraction.ts b/app/api/ocr/utils/tableExtraction.ts index 0a727f84..3c44e7fb 100644 --- a/app/api/ocr/utils/tableExtraction.ts +++ b/app/api/ocr/utils/tableExtraction.ts @@ -69,107 +69,40 @@ export async function extractTablesFromOCR (ocrResult: any): Promise<ExtractedRo function isRelevantTable (table: OCRTable): boolean { const headers = table.cells.filter(c => c.rowIndex < 3).map(getCellText).join(' ').toLowerCase(); - console.log(`🔍 Checking table relevance. Headers: "${headers}"`); - - // 기존 조건 - const hasNoColumn = /\bno\b|번호/.test(headers); - const hasIdentification = /identification|식별|ident|id/.test(headers); - - console.log(`📝 Has NO column: ${hasNoColumn}`); - console.log(`📝 Has Identification: ${hasIdentification}`); - - // 기본 조건 - if (hasNoColumn && hasIdentification) { - console.log(`✅ Table passes strict criteria`); - return true; - } - - // 완화된 조건들 - const relaxedConditions = [ - // 조건 1: 테이블에 여러 열이 있고 숫자나 식별자 패턴이 보이는 경우 - table.cells.length > 10 && /\d+/.test(headers), - - // 조건 2: joint, tag, weld 등 관련 키워드가 있는 경우 - /joint|tag|weld|type|date/.test(headers), - - // 조건 3: 식별번호 패턴이 보이는 경우 (하이픈이 포함된 문자열) - headers.includes('-') && headers.length > 20, - - // 조건 4: 한국어 관련 키워드 - /용접|조인트|태그/.test(headers) - ]; - - const passedConditions = relaxedConditions.filter(Boolean).length; - console.log(`📊 Relaxed conditions passed: ${passedConditions}/${relaxedConditions.length}`); - - if (passedConditions >= 1) { - console.log(`✅ Table passes relaxed criteria`); - return true; - } - - console.log(`❌ Table does not meet any criteria`); - return false; + return /\bno\b|번호/.test(headers) && /identification|식별|ident|id/.test(headers); } + /* -------------------------------------------------------------------------- */ /* 표 해석 */ /* -------------------------------------------------------------------------- */ function extractTableData (table: OCRTable, imgIdx: number, tblIdx: number): ExtractedRow[] { - console.log(`🔧 Starting extractTableData for table ${imgIdx}-${tblIdx}`); - const grid = buildGrid(table); - console.log(`📊 Grid size: ${grid.length} rows x ${grid[0]?.length || 0} columns`); - const headerRowIdx = findHeaderRow(grid); - console.log(`📍 Header row index: ${headerRowIdx}`); - if (headerRowIdx === -1) { - console.log(`❌ No header row found`); - return []; - } + console.log(headerRowIdx,"headerRowIdx") + + if (headerRowIdx === -1) return []; - const format = detectFormat(grid[headerRowIdx]); - const mapping = mapColumns(grid[headerRowIdx]); - - console.log(`📋 Detected format: ${format}`); - console.log(`🗂️ Column mapping:`, mapping); + const format = detectFormat(grid[headerRowIdx]); + const mapping = mapColumns(grid[headerRowIdx]); const seen = new Set<string>(); const data: ExtractedRow[] = []; for (let r = headerRowIdx + 1; r < grid.length; r++) { const row = grid[r]; - - if (isBlankRow(row)) { - console.log(`⏭️ Row ${r}: blank, skipping`); - continue; - } - - console.log(`🔍 Processing row ${r}: [${row.join(' | ')}]`); + if (isBlankRow(row)) continue; const parsed = buildRow(row, format, mapping, tblIdx, r); - if (!parsed) { - console.log(`❌ Row ${r}: failed to parse`); - continue; - } - - if (!isValidRow(parsed)) { - console.log(`❌ Row ${r}: invalid (no: "${parsed.no}", id: "${parsed.identificationNo}")`); - continue; - } + if (!parsed || !isValidRow(parsed)) continue; const key = `${parsed.no}-${parsed.identificationNo}`; - if (seen.has(key)) { - console.log(`⚠️ Row ${r}: duplicate key "${key}", skipping`); - continue; - } - + if (seen.has(key)) continue; seen.add(key); + data.push(parsed); - console.log(`✅ Row ${r}: added (${JSON.stringify(parsed)})`); } - - console.log(`🎯 Table ${imgIdx}-${tblIdx}: extracted ${data.length} valid rows`); return data; } @@ -178,39 +111,18 @@ function extractTableData (table: OCRTable, imgIdx: number, tblIdx: number): Ext /* -------------------------------------------------------------------------- */ function buildGrid (table: OCRTable): string[][] { - console.log(`🔧 Building grid from ${table.cells.length} cells`); - const maxR = Math.max(...table.cells.map(c => c.rowIndex + c.rowSpan - 1)); const maxC = Math.max(...table.cells.map(c => c.columnIndex + c.columnSpan - 1)); - - console.log(`📊 Grid dimensions: ${maxR + 1} rows x ${maxC + 1} columns`); - const grid = Array.from({ length: maxR + 1 }, () => Array(maxC + 1).fill('')); - // 셀별 상세 정보 출력 - table.cells.forEach((cell, idx) => { + table.cells.forEach(cell => { const txt = getCellText(cell); - console.log(`📱 Cell ${idx}: (${cell.rowIndex},${cell.columnIndex}) span(${cell.rowSpan},${cell.columnSpan}) = "${txt}"`); - for (let r = cell.rowIndex; r < cell.rowIndex + cell.rowSpan; r++) { for (let c = cell.columnIndex; c < cell.columnIndex + cell.columnSpan; c++) { - const oldValue = grid[r][c]; - const newValue = oldValue ? `${oldValue} ${txt}` : txt; - grid[r][c] = newValue; - - if (oldValue) { - console.log(`🔄 Grid[${r}][${c}]: "${oldValue}" → "${newValue}"`); - } + grid[r][c] = grid[r][c] ? `${grid[r][c]} ${txt}` : txt; } } }); - - // 최종 그리드 출력 - console.log(`📋 Final grid:`); - grid.forEach((row, r) => { - console.log(` Row ${r}: [${row.map(cell => `"${cell}"`).join(', ')}]`); - }); - return grid; } @@ -219,52 +131,13 @@ function getCellText (cell: TableCell): string { } function findHeaderRow (grid: string[][]): number { - console.log(`🔍 Finding header row in grid with ${grid.length} rows`); - - for (let i = 0; i < Math.min(5, grid.length); i++) { - const rowText = grid[i].join(' ').toLowerCase(); - console.log(`📝 Row ${i}: "${rowText}"`); - - // 기존 엄격한 조건 - if (/\bno\b|번호/.test(rowText) && /identification|식별|ident/.test(rowText)) { - console.log(`✅ Row ${i}: Strict match`); - return i; - } - - // 완화된 조건들 - const relaxedMatches = [ - // 1. NO 컬럼 + 다른 관련 키워드 - (/\bno\b|번호/.test(rowText) && /joint|tag|type|weld|date/.test(rowText)), - - // 2. ID/식별 + 다른 관련 키워드 - (/identification|식별|ident|id/.test(rowText) && /joint|tag|no|type/.test(rowText)), - - // 3. 용접 관련 키워드가 여러 개 - (rowText.match(/joint|tag|type|weld|date|no|id|식별|번호|용접/g)?.length >= 3), - - // 4. 첫 번째 행이고 여러 단어가 있는 경우 - (i === 0 && rowText.split(/\s+/).filter(w => w.length > 1).length >= 3) - ]; - - if (relaxedMatches.some(Boolean)) { - console.log(`✅ Row ${i}: Relaxed match`); - return i; - } - - console.log(`❌ Row ${i}: No match`); - } - - // 최후의 수단: 첫 번째 비어있지 않은 행 for (let i = 0; i < Math.min(3, grid.length); i++) { - if (grid[i].some(cell => cell.trim().length > 0)) { - console.log(`⚠️ Using row ${i} as fallback header`); - return i; - } + const t = grid[i].join(' ').toLowerCase(); + if (/\bno\b|번호/.test(t) && /identification|식별|ident/.test(t)) return i; } - - console.log(`❌ No header row found`); return -1; } + /* -------------------------------------------------------------------------- */ /* Column Mapping */ /* -------------------------------------------------------------------------- */ @@ -276,153 +149,19 @@ function detectFormat (header: string[]): 'format1' | 'format2' { function mapColumns (header: string[]): ColumnMapping { const mp: ColumnMapping = { no: -1, identification: -1, tagNo: -1, jointNo: -1, jointType: -1, weldingDate: -1 }; - - console.log(`🗂️ Smart mapping columns from header: [${header.map(h => `"${h}"`).join(', ')}]`); - // === STEP 1: 기존 개별 컬럼 매핑 === header.forEach((h, i) => { - const t = h.toLowerCase().trim(); - console.log(`📋 Column ${i}: "${h}" → "${t}"`); - - if (mp.no === -1 && (/^no\.?$/i.test(t) || /^번호$/i.test(t) || /^순번$/i.test(t))) { - mp.no = i; - console.log(`✅ NO column (individual) mapped to index ${i}`); - } - - if (mp.identification === -1 && (/identification.*no/i.test(t) || /식별.*번호/i.test(t))) { - mp.identification = i; - console.log(`✅ Identification column (individual) mapped to index ${i}`); - } - - if (mp.tagNo === -1 && (/tag.*no/i.test(t) || /태그.*번호/i.test(t))) { - mp.tagNo = i; - console.log(`✅ Tag No column (individual) mapped to index ${i}`); - } - - if (mp.jointNo === -1 && (/joint.*no/i.test(t) || /조인트.*번호/i.test(t) || /oint.*no/i.test(t))) { - mp.jointNo = i; - console.log(`✅ Joint No column (individual) mapped to index ${i}`); - } - - if (mp.jointType === -1 && (/joint.*type/i.test(t) || /^type$/i.test(t) || /형태/i.test(t))) { - mp.jointType = i; - console.log(`✅ Joint Type column (individual) mapped to index ${i}`); - } - - if (mp.weldingDate === -1 && (/welding.*date/i.test(t) || /weld.*date/i.test(t) || /^date$/i.test(t) || /날짜/i.test(t))) { - mp.weldingDate = i; - console.log(`✅ Welding Date column (individual) mapped to index ${i}`); - } - }); - - // === STEP 2: 실용적 추론 === - console.log(`🤖 Starting practical column inference...`); - - // NO 컬럼이 매핑되지 않았다면, 첫 번째 컬럼을 NO로 추정 - if (mp.no === -1) { - mp.no = 0; - console.log(`🔮 NO column inferred as index 0 (first column)`); - } - - // Identification 컬럼 찾기 - "identification" 키워드가 포함된 컬럼 중에서 - if (mp.identification === -1) { - for (let i = 0; i < header.length; i++) { - const text = header[i].toLowerCase(); - if (text.includes('identification') || text.includes('식별')) { - mp.identification = i; - console.log(`🆔 Identification column found at index ${i}`); - break; - } - } - } - - // Tag No 컬럼 찾기 - "tag" 키워드가 포함된 컬럼 중에서 - if (mp.tagNo === -1) { - for (let i = 0; i < header.length; i++) { - const text = header[i].toLowerCase(); - if (text.includes('tag') && !text.includes('no')) { - mp.tagNo = i; - console.log(`🏷️ Tag column found at index ${i}`); - break; - } - } - } - - // Joint No 컬럼 찾기 - if (mp.jointNo === -1) { - for (let i = 0; i < header.length; i++) { - const text = header[i].toLowerCase(); - if (text.includes('joint') || text.includes('oint')) { - mp.jointNo = i; - console.log(`🔗 Joint column found at index ${i}`); - break; - } - } - } - - // === STEP 3: 패턴 기반 추론 (마지막 수단) === - console.log(`🎯 Pattern-based fallback mapping...`); - - // 전체 헤더에서 실제 식별번호 패턴이 있는 컬럼 찾기 - if (mp.identification === -1) { - for (let i = 0; i < header.length; i++) { - const text = header[i]; - // 하이픈이 포함된 긴 문자열이 있는 컬럼 - if (text.includes('-') && text.length > 15) { - mp.identification = i; - console.log(`🆔 Identification inferred at index ${i} (contains ID pattern)`); - break; - } - } - } - - // 숫자 패턴이 있는 컬럼을 Tag No로 추정 - if (mp.tagNo === -1) { - for (let i = 1; i < header.length; i++) { // 첫 번째 컬럼 제외 - const text = header[i]; - // 7-8자리 숫자가 있는 컬럼 - if (/\d{7,8}/.test(text)) { - mp.tagNo = i; - console.log(`🏷️ Tag No inferred at index ${i} (contains number pattern)`); - break; - } - } - } - - // === STEP 4: 기본값 설정 === - console.log(`🔧 Setting default values for unmapped columns...`); - - // 여전히 매핑되지 않은 중요한 컬럼들에 대해 순서 기반 추정 - const essentialColumns = [ - { key: 'identification', currentValue: mp.identification, defaultIndex: 1 }, - { key: 'tagNo', currentValue: mp.tagNo, defaultIndex: 2 }, - { key: 'jointNo', currentValue: mp.jointNo, defaultIndex: 3 }, - { key: 'jointType', currentValue: mp.jointType, defaultIndex: 4 }, - { key: 'weldingDate', currentValue: mp.weldingDate, defaultIndex: Math.min(5, header.length - 1) } - ]; - - essentialColumns.forEach(col => { - if ((col.currentValue as number) === -1 && col.defaultIndex < header.length) { - (mp as any)[col.key] = col.defaultIndex; - console.log(`🔧 ${col.key} set to default index ${col.defaultIndex}`); - } + const t = h.toLowerCase(); + if (/^no\.?$/.test(t) && !/ident|tag|joint/.test(t)) mp.no = i; + else if (/identification|ident/.test(t)) mp.identification = i; + else if (/tag.*no/.test(t)) mp.tagNo = i; + else if (/joint.*no/.test(t)) mp.jointNo = i; + else if (/joint.*type/.test(t) || (/^type$/.test(t) && mp.jointType === -1)) mp.jointType = i; + else if (/welding|date/.test(t)) mp.weldingDate = i; }); - - console.log(`🎯 Final optimized column mapping:`, mp); - - // === STEP 5: 매핑 품질 검증 === - const mappedCount = Object.values(mp).filter(v => v !== -1).length; - const totalColumns = Object.keys(mp).length; - const mappingQuality = mappedCount / totalColumns; - - console.log(`📊 Mapping quality: ${mappedCount}/${totalColumns} (${(mappingQuality * 100).toFixed(1)}%)`); - - if (mappingQuality < 0.5) { - console.warn(`⚠️ Low mapping quality detected. Consider manual adjustment.`); - } - return mp; } + /* -------------------------------------------------------------------------- */ /* Row Extraction */ /* -------------------------------------------------------------------------- */ @@ -434,351 +173,71 @@ function buildRow ( tblIdx: number, rowIdx: number ): ExtractedRow | null { - console.log(`🔨 Building row from: [${row.map(r => `"${r}"`).join(', ')}]`); - console.log(`📋 Using mapping:`, mp); - console.log(`📄 Format: ${format}`); - const out: ExtractedRow = { - no: '', + no: mp.no >= 0 ? clean(row[mp.no]) : '', identificationNo: '', tagNo: '', jointNo: '', - jointType: '', + jointType: mp.jointType >= 0 ? clean(row[mp.jointType]) : '', weldingDate: '', confidence: 0, sourceTable: tblIdx, sourceRow: rowIdx, }; - // === STEP 1: 매핑된 컬럼에서 기본 추출 === - - // NO 컬럼 추출 - if (mp.no >= 0 && mp.no < row.length) { - const rawNo = clean(row[mp.no]); - // NO 필드에서 첫 번째 숫자 패턴 추출 - const noMatch = rawNo.match(/\b(\d{2,4})\b/); - out.no = noMatch ? noMatch[1] : rawNo; - console.log(`📍 NO from column ${mp.no}: "${out.no}" (raw: "${rawNo}")`); - } - - // Joint Type, Welding Date는 기존대로 - if (mp.jointType >= 0 && mp.jointType < row.length) { - out.jointType = clean(row[mp.jointType]); - console.log(`🔗 Joint Type from column ${mp.jointType}: "${out.jointType}"`); + if (mp.weldingDate >= 0) out.weldingDate = clean(row[mp.weldingDate]); + else { + const idx = row.findIndex(col => /\d{4}[.\-/]\d{1,2}[.\-/]\d{1,2}/.test(col)); + if (idx >= 0) out.weldingDate = clean(row[idx]); } - if (mp.weldingDate >= 0 && mp.weldingDate < row.length) { - out.weldingDate = clean(row[mp.weldingDate]); - console.log(`📅 Welding Date from column ${mp.weldingDate}: "${out.weldingDate}"`); - } - - // === STEP 2: Format별 데이터 추출 === - if (format === 'format2') { - console.log(`📄 Processing Format 2 (separate columns)`); - - if (mp.identification >= 0 && mp.identification < row.length) { - out.identificationNo = clean(row[mp.identification]); - console.log(`🆔 Identification from column ${mp.identification}: "${out.identificationNo}"`); - } - - if (mp.jointNo >= 0 && mp.jointNo < row.length) { - out.jointNo = clean(row[mp.jointNo]); - console.log(`🔗 Joint No from column ${mp.jointNo}: "${out.jointNo}"`); - } - - if (mp.tagNo >= 0 && mp.tagNo < row.length) { - out.tagNo = clean(row[mp.tagNo]); - console.log(`🏷️ Tag No from column ${mp.tagNo}: "${out.tagNo}"`); - } + if (mp.identification >= 0) out.identificationNo = clean(row[mp.identification]); + if (mp.jointNo >= 0) out.jointNo = clean(row[mp.jointNo]); + if (mp.tagNo >= 0) out.tagNo = clean(row[mp.tagNo]); } else { - console.log(`📄 Processing Format 1 (combined identification column)`); - - let combinedText = ''; - - // 매핑된 identification 컬럼에서 텍스트 가져오기 - if (mp.identification >= 0 && mp.identification < row.length) { - combinedText = row[mp.identification]; - console.log(`🆔 Combined text from column ${mp.identification}: "${combinedText}"`); - } - - const parsed = parseIdentificationData(combinedText); + const combined = mp.identification >= 0 ? row[mp.identification] : ''; + const parsed = parseIdentificationData(combined); out.identificationNo = parsed.identificationNo; - out.jointNo = parsed.jointNo; - out.tagNo = parsed.tagNo; - - console.log(`📊 Parsed from identification column:`, parsed); + out.jointNo = parsed.jointNo; + out.tagNo = parsed.tagNo; } - // === STEP 3: 적극적 패턴 매칭으로 누락된 필드 채우기 === - console.log(`🔍 Aggressive pattern matching for missing fields...`); - - const allText = row.join(' '); - console.log(`📝 Full row text: "${allText}"`); - - // NO 필드가 비어있다면 첫 번째 컬럼에서 숫자 패턴 찾기 - if (!out.no && row.length > 0) { - const firstCol = clean(row[0]); - const noPatterns = [ - /\b(\d{3})\b/g, // 3자리 숫자 - /\b(\d{2,4})\b/g, // 2-4자리 숫자 - /^(\d+)/ // 맨 앞 숫자 - ]; - - for (const pattern of noPatterns) { - const matches = firstCol.match(pattern); - if (matches && matches.length > 0) { - out.no = matches[0].replace(/\D/g, ''); // 숫자만 추출 - console.log(`📍 NO found via pattern in first column: "${out.no}"`); - break; - } - } - } - - // Identification No 패턴 찾기 (하이픈이 포함된 긴 문자열) - if (!out.identificationNo) { - const idPatterns = [ - /[A-Za-z0-9]+-[A-Za-z0-9]+-[A-Za-z0-9\-]+/g, - /-\d+[A-Za-z0-9]+-[A-Za-z0-9]+-[A-Za-z0-9]+/g, - /\b[A-Z]\d+[A-Z]-\d+-\d+-[A-Z]+-\d+-[A-Z0-9]+-[A-Z]-[A-Z0-9]+\b/g - ]; - - for (const pattern of idPatterns) { - const matches = allText.match(pattern); - if (matches && matches.length > 0) { - out.identificationNo = matches[0]; - console.log(`🆔 Identification found via pattern: "${out.identificationNo}"`); - break; - } - } - } - - // Tag No 패턴 찾기 (7-8자리 숫자) - if (!out.tagNo) { - const tagMatches = allText.match(/\b\d{7,8}\b/g); - if (tagMatches && tagMatches.length > 0) { - out.tagNo = tagMatches[0]; - console.log(`🏷️ Tag found via pattern: "${out.tagNo}"`); - } - } - - // Joint No 패턴 찾기 (짧은 영숫자 조합) - if (!out.jointNo) { - const jointPatterns = [ - /\b[A-Z]{2,4}\d*\b/g, // 대문자+숫자 조합 - /\b[A-Za-z0-9]{2,6}\b/g // 일반적인 짧은 조합 - ]; - - for (const pattern of jointPatterns) { - const matches = allText.match(pattern); - if (matches) { - const candidates = matches.filter(m => - m !== out.no && - m !== out.tagNo && - m !== out.identificationNo && - m.length >= 2 && m.length <= 6 && - !/^(no|tag|joint|type|date|welding|project|samsung|class)$/i.test(m) - ); - - if (candidates.length > 0) { - out.jointNo = candidates[0]; - console.log(`🔗 Joint found via pattern: "${out.jointNo}"`); - break; - } - } - } - } - - // Welding Date 패턴 찾기 - if (!out.weldingDate) { - const datePatterns = [ - /\d{4}[.\-/]\d{1,2}[.\-/]\d{1,2}/g, - /\d{4}\.\d{2}\.\d{2}/g - ]; - - for (const pattern of datePatterns) { - const matches = allText.match(pattern); - if (matches && matches.length > 0) { - out.weldingDate = matches[0]; - console.log(`📅 Date found via pattern: "${out.weldingDate}"`); - break; - } - } - } - - // === STEP 4: 품질 검증 및 후처리 === - - // 추출된 값들 정리 - Object.keys(out).forEach(key => { - const value = (out as any)[key]; - if (typeof value === 'string' && value) { - (out as any)[key] = value.replace(/^[^\w]+|[^\w]+$/g, '').trim(); - } - }); - out.confidence = scoreRow(out); - - console.log(`📊 Final extracted row:`, out); - console.log(`🎯 Row confidence: ${out.confidence}`); - - // 최소한의 데이터가 있는지 검증 - const hasAnyData = !!(out.no || out.identificationNo || out.tagNo || out.jointNo); - - if (!hasAnyData) { - console.log(`⚠️ No meaningful data extracted from row`); - return null; - } - return out; } + /* -------------------------------------------------------------------------- */ /* Format‑1 셀 파싱 */ /* -------------------------------------------------------------------------- */ function parseIdentificationData (txt: string): { identificationNo: string; jointNo: string; tagNo: string } { - console.log(`🔍 Parsing identification data from: "${txt}"`); - const cleaned = clean(txt); - if (!cleaned) { - console.log(`❌ Empty input text`); - return { identificationNo: '', jointNo: '', tagNo: '' }; - } + if (!cleaned) return { identificationNo: '', jointNo: '', tagNo: '' }; - console.log(`🧹 Cleaned text: "${cleaned}"`); - - const result = { identificationNo: '', jointNo: '', tagNo: '' }; - - // 1. Identification No 추출 (하이픈이 2개 이상 포함된 패턴) - const idPatterns = [ - /[A-Za-z0-9]+-[A-Za-z0-9]+-[A-Za-z0-9\-]+/g, // 기본 패턴 - /-\d+[A-Za-z0-9]+-[A-Za-z0-9]+-[A-Za-z0-9]+/g, // 앞에 하이픈이 있는 경우 - /\b[A-Za-z0-9]{2,}-[A-Za-z0-9]{2,}-[A-Za-z0-9]{2,}\b/g // 더 엄격한 패턴 - ]; - - for (const pattern of idPatterns) { - const matches = cleaned.match(pattern); - if (matches && matches.length > 0) { - // 가장 긴 매치를 선택 - result.identificationNo = matches.reduce((a, b) => a.length >= b.length ? a : b); - console.log(`🆔 Found identification: "${result.identificationNo}"`); - break; - } - } - - // 2. Tag No 추출 (7-8자리 숫자) - const tagPatterns = [ - /\btag[:\s]*(\d{7,8})\b/i, // "tag: 1234567" 형태 - /\b(\d{7,8})\b/g // 단순 7-8자리 숫자 - ]; - - for (const pattern of tagPatterns) { - const matches = cleaned.match(pattern); - if (matches) { - if (pattern.source.includes('tag')) { - result.tagNo = matches[1] || matches[0]; - } else { - // 모든 7-8자리 숫자를 찾아서 가장 적절한 것 선택 - const candidates = matches.filter(m => m && m.length >= 7 && m.length <= 8); - if (candidates.length > 0) { - result.tagNo = candidates[0]; - } - } - if (result.tagNo) { - console.log(`🏷️ Found tag: "${result.tagNo}"`); - break; - } - } - } - - // 3. Joint No 추출 (나머지 토큰 중에서) const tokens = cleaned.split(/\s+/).map(clean).filter(Boolean); - console.log(`📝 All tokens: [${tokens.join(', ')}]`); - - // 이미 사용된 토큰들 제외 - const usedTokens = new Set([result.identificationNo, result.tagNo]); - const remainingTokens = tokens.filter(token => - !usedTokens.has(token) && - !result.identificationNo.includes(token) && - !result.tagNo.includes(token) && - token.length > 1 && - !/^(tag|joint|no|identification|식별|번호)$/i.test(token) - ); - - console.log(`🔄 Remaining tokens for joint: [${remainingTokens.join(', ')}]`); - - if (remainingTokens.length > 0) { - // 가장 짧고 알파벳+숫자 조합인 토큰을 Joint No로 선택 - const jointCandidates = remainingTokens - .filter(token => /^[A-Za-z0-9]+$/.test(token) && token.length >= 2 && token.length <= 8) - .sort((a, b) => a.length - b.length); - - if (jointCandidates.length > 0) { - result.jointNo = jointCandidates[0]; - console.log(`🔗 Found joint: "${result.jointNo}"`); - } else if (remainingTokens.length > 0) { - // 후보가 없으면 가장 짧은 토큰 사용 - result.jointNo = remainingTokens.reduce((a, b) => a.length <= b.length ? a : b); - console.log(`🔗 Found joint (fallback): "${result.jointNo}"`); - } - } - - // 4. 결과 검증 및 정리 - Object.keys(result).forEach(key => { - const value = (result as any)[key]; - if (value && typeof value === 'string') { - (result as any)[key] = value.replace(/^[^\w]+|[^\w]+$/g, ''); // 앞뒤 특수문자 제거 - } - }); - - console.log(`📊 Final parsed result:`, result); - return result; + + // Identification 후보: 하이픈이 2개 이상 포함된 토큰 가운데 가장 긴 것 + const idCand = tokens.filter(t => t.split('-').length >= 3).sort((a, b) => b.length - a.length); + const identificationNo = idCand[0] || ''; + + const residual = tokens.filter(t => t !== identificationNo); + if (!residual.length) return { identificationNo, jointNo: '', tagNo: '' }; + + residual.sort((a, b) => a.length - b.length); + const jointNo = residual[0] || ''; + const tagNo = residual[residual.length - 1] || ''; + + return { identificationNo, jointNo, tagNo }; } + /* -------------------------------------------------------------------------- */ /* Helpers */ /* -------------------------------------------------------------------------- */ const clean = (s: string = '') => s.replace(/[\r\n\t]+/g, ' ').replace(/\s+/g, ' ').trim(); const isBlankRow = (row: string[]) => row.every(c => !clean(c)); -function isValidRow (r: ExtractedRow): boolean { - console.log(`✅ Validating row: no="${r.no}", id="${r.identificationNo}", tag="${r.tagNo}", joint="${r.jointNo}"`); - - // Level 1: 기존 엄격한 조건 - if (r.no && r.no.trim() || r.identificationNo && r.identificationNo.trim()) { - console.log(`✅ Level 1 validation passed (has no or identification)`); - return true; - } - - // Level 2: 완화된 조건 - 주요 필드 중 2개 이상 - const mainFields = [ - r.no?.trim(), - r.identificationNo?.trim(), - r.tagNo?.trim(), - r.jointNo?.trim() - ].filter(Boolean); - - if (mainFields.length >= 2) { - console.log(`✅ Level 2 validation passed (${mainFields.length} main fields present)`); - return true; - } - - // Level 3: 더 관대한 조건 - 어떤 필드든 하나라도 의미있는 값 - const allFields = [ - r.no?.trim(), - r.identificationNo?.trim(), - r.tagNo?.trim(), - r.jointNo?.trim(), - r.jointType?.trim(), - r.weldingDate?.trim() - ].filter(field => field && field.length > 1); // 1글자 이상 - - if (allFields.length >= 1) { - console.log(`✅ Level 3 validation passed (${allFields.length} fields with meaningful content)`); - return true; - } - - console.log(`❌ Validation failed - no meaningful content found`); - return false; -} +const isValidRow = (r: ExtractedRow) => !!(r.no || r.identificationNo); function scoreRow (r: ExtractedRow): number { const w: Record<keyof ExtractedRow, number> = { @@ -808,4 +267,4 @@ export function analyzeOCRQuality (ocrResult: any) { }); return { confidence: cnt ? conf / cnt : 0, tablesFound: tbl, textQuality: cnt ? kw / cnt : 0, keywordCount: kw }; -} +}
\ No newline at end of file diff --git a/components/form-data/form-data-table-columns.tsx b/components/form-data/form-data-table-columns.tsx index 3749fe02..930e113b 100644 --- a/components/form-data/form-data-table-columns.tsx +++ b/components/form-data/form-data-table-columns.tsx @@ -42,6 +42,11 @@ export interface DataTableColumnJSON { uom?: string; uomId?: string; shi?: boolean; + + /** 템플릿에서 가져온 추가 정보 */ + hidden?: boolean; // true이면 컬럼 숨김 + seq?: number; // 정렬 순서 + head?: string; // 헤더 텍스트 (우선순위 가장 높음) } /** @@ -87,79 +92,70 @@ function getStatusBadgeVariant(status: string): "default" | "secondary" | "destr } /** - * getColumns 함수 - * 1) columnsJSON 배열을 순회하면서 accessorKey / header / cell 등을 설정 - * 2) 체크박스 컬럼 추가 (showBatchSelection이 true일 때) - * 3) 마지막에 "Action" 칼럼(예: update 버튼) 추가 + * 헤더 텍스트를 결정하는 헬퍼 함수 + * displayLabel이 있으면 사용, 없으면 label 사용 */ -export function getColumns<TData extends object>({ - columnsJSON, - setRowAction, - setReportData, - tempCount, - selectedRows = {}, - onRowSelectionChange, - // editableFieldsMap 매개변수 제거됨 -}: GetColumnsProps<TData>): ColumnDef<TData>[] { - const columns: ColumnDef<TData>[] = []; +function getHeaderText(col: DataTableColumnJSON): string { + if (col.displayLabel && col.displayLabel.trim()) { + return col.displayLabel; + } + return col.label; +} - // (1) 체크박스 컬럼 (항상 표시) - const selectColumn: ColumnDef<TData> = { - id: "select", - header: ({ table }) => ( - <Checkbox - checked={ - table.getIsAllPageRowsSelected() || - (table.getIsSomePageRowsSelected() && "indeterminate") - } - onCheckedChange={(value) => { - table.toggleAllPageRowsSelected(!!value); - - // 모든 행 선택/해제 - if (onRowSelectionChange) { - const allRowsSelection: Record<string, boolean> = {}; - table.getRowModel().rows.forEach((row) => { - allRowsSelection[row.id] = !!value; - }); - onRowSelectionChange(allRowsSelection); - } - }} - aria-label="Select all" - className="translate-y-[2px]" - /> - ), - cell: ({ row }) => ( - <Checkbox - checked={row.getIsSelected()} - onCheckedChange={(value) => { - row.toggleSelected(!!value); - - // 개별 행 선택 상태 업데이트 - if (onRowSelectionChange) { - onRowSelectionChange(prev => ({ - ...prev, - [row.id]: !!value - })); - } - }} - aria-label="Select row" - className="translate-y-[2px]" - /> - ), - enableSorting: false, - enableHiding: false, - enablePinning: true, - size: 40, - }; - columns.push(selectColumn); +/** + * 컬럼들을 head 값에 따라 그룹핑하는 헬퍼 함수 + */ +function groupColumnsByHead(columns: DataTableColumnJSON[]): ColumnDef<any>[] { + const groupedColumns: ColumnDef<any>[] = []; + const groupMap = new Map<string, DataTableColumnJSON[]>(); + const ungroupedColumns: DataTableColumnJSON[] = []; + + // head 값에 따라 컬럼들을 그룹핑 + columns.forEach(col => { + if (col.head && col.head.trim()) { + const groupKey = col.head.trim(); + if (!groupMap.has(groupKey)) { + groupMap.set(groupKey, []); + } + groupMap.get(groupKey)!.push(col); + } else { + ungroupedColumns.push(col); + } + }); + + // 그룹핑된 컬럼들 처리 + groupMap.forEach((groupColumns, groupHeader) => { + if (groupColumns.length === 1) { + // 그룹에 컬럼이 하나만 있으면 일반 컬럼으로 처리 + ungroupedColumns.push(groupColumns[0]); + } else { + // 그룹 컬럼 생성 + const groupColumn: ColumnDef<any> = { + header: groupHeader, + columns: groupColumns.map(col => createColumnDef(col)) + }; + groupedColumns.push(groupColumn); + } + }); + + // 그룹핑되지 않은 컬럼들 처리 + ungroupedColumns.forEach(col => { + groupedColumns.push(createColumnDef(col)); + }); + + return groupedColumns; +} - // (2) 기본 컬럼들 - const baseColumns: ColumnDef<TData>[] = columnsJSON.map((col) => ({ +/** + * 개별 컬럼 정의를 생성하는 헬퍼 함수 + */ +function createColumnDef(col: DataTableColumnJSON): ColumnDef<any> { + return { accessorKey: col.key, header: ({ column }) => ( <ClientDataTableColumnHeaderSimple column={column} - title={col.displayLabel || col.label} + title={getHeaderText(col)} /> ), @@ -240,11 +236,93 @@ export function getColumns<TData extends object>({ ); } }, - })); + }; +} + +/** + * getColumns 함수 + * 1) columnsJSON 배열을 필터링 (hidden이 true가 아닌 것들만) + * 2) seq에 따라 정렬 + * 3) head 값에 따라 컬럼 그룹핑 + * 4) 체크박스 컬럼 추가 + * 5) 마지막에 "Action" 칼럼 추가 + */ +export function getColumns<TData extends object>({ + columnsJSON, + setRowAction, + setReportData, + tempCount, + selectedRows = {}, + onRowSelectionChange, + // editableFieldsMap 매개변수 제거됨 +}: GetColumnsProps<TData>): ColumnDef<TData>[] { + const columns: ColumnDef<TData>[] = []; + + // (0) 컬럼 필터링 및 정렬 + const visibleColumns = columnsJSON + .filter(col => col.hidden !== true) // hidden이 true가 아닌 것들만 + .sort((a, b) => { + // seq가 없는 경우 999999로 처리하여 맨 뒤로 보냄 + const seqA = a.seq !== undefined ? a.seq : 999999; + const seqB = b.seq !== undefined ? b.seq : 999999; + return seqA - seqB; + }); + + // (1) 체크박스 컬럼 (항상 표시) + const selectColumn: ColumnDef<TData> = { + id: "select", + header: ({ table }) => ( + <Checkbox + checked={ + table.getIsAllPageRowsSelected() || + (table.getIsSomePageRowsSelected() && "indeterminate") + } + onCheckedChange={(value) => { + table.toggleAllPageRowsSelected(!!value); + + // 모든 행 선택/해제 + if (onRowSelectionChange) { + const allRowsSelection: Record<string, boolean> = {}; + table.getRowModel().rows.forEach((row) => { + allRowsSelection[row.id] = !!value; + }); + onRowSelectionChange(allRowsSelection); + } + }} + aria-label="Select all" + className="translate-y-[2px]" + /> + ), + cell: ({ row }) => ( + <Checkbox + checked={row.getIsSelected()} + onCheckedChange={(value) => { + row.toggleSelected(!!value); + + // 개별 행 선택 상태 업데이트 + if (onRowSelectionChange) { + onRowSelectionChange(prev => ({ + ...prev, + [row.id]: !!value + })); + } + }} + aria-label="Select row" + className="translate-y-[2px]" + /> + ), + enableSorting: false, + enableHiding: false, + enablePinning: true, + size: 40, + }; + columns.push(selectColumn); - columns.push(...baseColumns); + // (2) 기본 컬럼들 (head에 따라 그룹핑 처리) + const groupedColumns = groupColumnsByHead(visibleColumns); + columns.push(...groupedColumns); - // (4) 액션 칼럼 - update 버튼 예시 + // (3) 액션 칼럼 - update 버튼 예시 const actionColumn: ColumnDef<TData> = { id: "update", header: "", @@ -297,6 +375,6 @@ export function getColumns<TData extends object>({ columns.push(actionColumn); - // (5) 최종 반환 + // (4) 최종 반환 return columns; }
\ No newline at end of file diff --git a/components/form-data/spreadJS-dialog copy.tsx b/components/form-data/spreadJS-dialog copy.tsx new file mode 100644 index 00000000..5a51c2b5 --- /dev/null +++ b/components/form-data/spreadJS-dialog copy.tsx @@ -0,0 +1,539 @@ +"use client"; + +import * as React from "react"; +import dynamic from "next/dynamic"; +import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription } from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { GenericData } from "./export-excel-form"; +import * as GC from "@mescius/spread-sheets"; +import { toast } from "sonner"; +import { updateFormDataInDB } from "@/lib/forms/services"; +import { Loader, Save } from "lucide-react"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import '@mescius/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'; + +// SpreadSheets를 동적으로 import (SSR 비활성화) +const SpreadSheets = dynamic( + () => import("@mescius/spread-sheets-react").then(mod => mod.SpreadSheets), + { + ssr: false, + loading: () => ( + <div className="flex items-center justify-center h-full"> + <Loader className="mr-2 h-4 w-4 animate-spin" /> + Loading SpreadSheets... + </div> + ) + } +); + +// 라이센스 키 설정을 클라이언트에서만 실행 +if (typeof window !== 'undefined' && process.env.NEXT_PUBLIC_SPREAD_LICENSE) { + GC.Spread.Sheets.LicenseKey = process.env.NEXT_PUBLIC_SPREAD_LICENSE; +} + +interface TemplateItem { + TMPL_ID: string; + NAME: string; + TMPL_TYPE: string; + SPR_LST_SETUP: { + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }; + GRD_LST_SETUP: { + REG_TYPE_ID: string; + SPR_ITM_IDS: Array<string>; + ATTS: Array<{}>; + }; + SPR_ITM_LST_SETUP: { + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }; +} + +interface TemplateViewDialogProps { + isOpen: boolean; + onClose: () => void; + templateData: TemplateItem[] | any; + selectedRow: GenericData; + formCode: string; + contractItemId: number; + editableFieldsMap?: Map<string, string[]>; // 편집 가능 필드 정보 + onUpdateSuccess?: (updatedValues: Record<string, any>) => void; +} + +export function TemplateViewDialog({ + isOpen, + onClose, + templateData, + selectedRow, + formCode, + contractItemId, + editableFieldsMap = new Map(), + onUpdateSuccess +}: TemplateViewDialogProps) { + const [hostStyle, setHostStyle] = React.useState({ + width: '100%', + height: '100%' + }); + + const [isPending, setIsPending] = React.useState(false); + const [hasChanges, setHasChanges] = React.useState(false); + const [currentSpread, setCurrentSpread] = React.useState<any>(null); + const [selectedTemplateId, setSelectedTemplateId] = React.useState<string>(""); + const [cellMappings, setCellMappings] = React.useState<Array<{attId: string, cellAddress: string, isEditable: boolean}>>([]); + const [isClient, setIsClient] = React.useState(false); + + // 클라이언트 사이드에서만 렌더링되도록 보장 + React.useEffect(() => { + setIsClient(true); + }, []); + + // 템플릿 데이터를 배열로 정규화하고 CONTENT가 있는 것만 필터링 + const normalizedTemplates = React.useMemo((): TemplateItem[] => { + if (!templateData) return []; + + let templates: TemplateItem[]; + if (Array.isArray(templateData)) { + templates = templateData as TemplateItem[]; + } else { + templates = [templateData as TemplateItem]; + } + + return templates.filter(template => { + const sprContent = template.SPR_LST_SETUP?.CONTENT; + const sprItmContent = template.SPR_ITM_LST_SETUP?.CONTENT; + return sprContent || sprItmContent; + }); + }, [templateData]); + + // 선택된 템플릿 가져오기 + const selectedTemplate = React.useMemo(() => { + if (!selectedTemplateId) return normalizedTemplates[0]; + return normalizedTemplates.find(t => t.TMPL_ID === selectedTemplateId) || normalizedTemplates[0]; + }, [normalizedTemplates, selectedTemplateId]); + + // 현재 TAG의 편집 가능한 필드 목록 가져오기 + const editableFields = React.useMemo(() => { + if (!selectedRow?.TAG_NO || !editableFieldsMap.has(selectedRow.TAG_NO)) { + return []; + } + return editableFieldsMap.get(selectedRow.TAG_NO) || []; + }, [selectedRow?.TAG_NO, editableFieldsMap]); + + // 필드가 편집 가능한지 판별하는 함수 + const isFieldEditable = React.useCallback((attId: string) => { + // TAG_NO와 TAG_DESC는 기본적으로 편집 가능 + if (attId === "TAG_NO" || attId === "TAG_DESC") { + return true; + } + + // editableFieldsMap이 있으면 해당 리스트에 있는지 확인 + if (selectedRow?.TAG_NO && editableFieldsMap.has(selectedRow.TAG_NO)) { + return editableFields.includes(attId); + } + + return false; + }, [selectedRow?.TAG_NO, editableFieldsMap, editableFields]); + + // 셀 주소를 행과 열로 변환하는 함수 (예: "M1" -> {row: 0, col: 12}) + const parseCellAddress = (address: string): {row: number, col: number} | null => { + if (!address || address.trim() === "") return null; + + const match = address.match(/^([A-Z]+)(\d+)$/); + if (!match) return null; + + const [, colStr, rowStr] = match; + + // 열 문자를 숫자로 변환 (A=0, B=1, ..., Z=25, AA=26, ...) + let col = 0; + for (let i = 0; i < colStr.length; i++) { + col = col * 26 + (colStr.charCodeAt(i) - 65 + 1); + } + col -= 1; // 0-based index로 변환 + + const row = parseInt(rowStr) - 1; // 0-based index로 변환 + + return { row, col }; + }; + + // 템플릿 변경 시 기본 선택 + React.useEffect(() => { + if (normalizedTemplates.length > 0 && !selectedTemplateId) { + setSelectedTemplateId(normalizedTemplates[0].TMPL_ID); + } + }, [normalizedTemplates, selectedTemplateId]); + + const initSpread = React.useCallback((spread: any) => { + if (!spread || !selectedTemplate || !selectedRow) return; + + try { + setCurrentSpread(spread); + setHasChanges(false); + + // CONTENT 찾기 + let contentJson = null; + let dataSheets = null; + + if (selectedTemplate.SPR_LST_SETUP?.CONTENT) { + contentJson = selectedTemplate.SPR_LST_SETUP.CONTENT; + dataSheets = selectedTemplate.SPR_LST_SETUP.DATA_SHEETS; + console.log('Using SPR_LST_SETUP.CONTENT for template:', selectedTemplate.NAME); + } else if (selectedTemplate.SPR_ITM_LST_SETUP?.CONTENT) { + contentJson = selectedTemplate.SPR_ITM_LST_SETUP.CONTENT; + dataSheets = selectedTemplate.SPR_ITM_LST_SETUP.DATA_SHEETS; + console.log('Using SPR_ITM_LST_SETUP.CONTENT for template:', selectedTemplate.NAME); + } + + if (!contentJson) { + console.warn('No CONTENT found in template:', selectedTemplate.NAME); + return; + } + + console.log('Loading template content for:', selectedTemplate.NAME); + + const jsonData = typeof contentJson === 'string' + ? JSON.parse(contentJson) + : contentJson; + + // 렌더링 일시 중단 (성능 향상) + spread.suspendPaint(); + + try { + // fromJSON으로 템플릿 구조 로드 + spread.fromJSON(jsonData); + + // 활성 시트 가져오기 + const activeSheet = spread.getActiveSheet(); + + // 시트 보호 먼저 해제 + activeSheet.options.isProtected = false; + + // MAP_CELL_ATT 정보를 사용해서 셀에 데이터 매핑과 스타일을 한번에 처리 + if (dataSheets && dataSheets.length > 0) { + const mappings: Array<{attId: string, cellAddress: string, isEditable: boolean}> = []; + + dataSheets.forEach(dataSheet => { + if (dataSheet.MAP_CELL_ATT) { + dataSheet.MAP_CELL_ATT.forEach(mapping => { + const { ATT_ID, IN } = mapping; + + // 셀 주소가 비어있지 않은 경우만 처리 + if (IN && IN.trim() !== "") { + const cellPos = parseCellAddress(IN); + if (cellPos) { + const isEditable = isFieldEditable(ATT_ID); + mappings.push({ + attId: ATT_ID, + cellAddress: IN, + isEditable: isEditable + }); + + // 셀 객체 가져오기 + const cell = activeSheet.getCell(cellPos.row, cellPos.col); + + // selectedRow에서 해당 값 가져와서 셀에 설정 + const value = selectedRow[ATT_ID]; + if (value !== undefined && value !== null) { + cell.value(value); + } + + // 편집 권한 설정 + cell.locked(!isEditable); + + // 즉시 스타일 적용 (기존 스타일 보존하면서) + const existingStyle = activeSheet.getStyle(cellPos.row, cellPos.col); + if (existingStyle) { + // 기존 스타일 복사 + const newStyle = Object.assign(new GC.Spread.Sheets.Style(), existingStyle); + + // 편집 권한에 따라 배경색만 변경 + if (isEditable) { + newStyle.backColor = "#f0fdf4"; // 연한 녹색 + } else { + newStyle.backColor = "#f9fafb"; // 연한 회색 + newStyle.foreColor = "#6b7280"; // 회색 글자 + } + + // 스타일 적용 + activeSheet.setStyle(cellPos.row, cellPos.col, newStyle); + } else { + // 기존 스타일이 없는 경우 새로운 스타일 생성 + const newStyle = new GC.Spread.Sheets.Style(); + if (isEditable) { + newStyle.backColor = "#f0fdf4"; + } else { + newStyle.backColor = "#f9fafb"; + newStyle.foreColor = "#6b7280"; + } + activeSheet.setStyle(cellPos.row, cellPos.col, newStyle); + } + + console.log(`Mapped ${ATT_ID} (${value}) to cell ${IN} - ${isEditable ? 'Editable' : 'Read-only'}`); + } + } + }); + } + }); + + setCellMappings(mappings); + + // 시트 보호 설정 + activeSheet.options.isProtected = true; + activeSheet.options.protectionOptions = { + allowSelectLockedCells: true, + allowSelectUnlockedCells: true, + allowSort: false, + allowFilter: false, + allowEditObjects: false, + allowResizeRows: false, + allowResizeColumns: false + }; + + // 이벤트 리스너 추가 + activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, (event: any, info: any) => { + console.log('Cell changed:', info); + setHasChanges(true); + }); + + activeSheet.bind(GC.Spread.Sheets.Events.ValueChanged, (event: any, info: any) => { + console.log('Value changed:', info); + setHasChanges(true); + }); + + // 편집 시작 시 읽기 전용 셀 확인 + activeSheet.bind(GC.Spread.Sheets.Events.EditStarting, (event: any, info: any) => { + const mapping = mappings.find(m => { + const cellPos = parseCellAddress(m.cellAddress); + return cellPos && cellPos.row === info.row && cellPos.col === info.col; + }); + + if (mapping && !mapping.isEditable) { + toast.warning(`${mapping.attId} field is read-only`); + info.cancel = true; + } + }); + } + } finally { + // 렌더링 재개 (모든 변경사항이 한번에 화면에 표시됨) + spread.resumePaint(); + } + + } catch (error) { + console.error('Error initializing spread:', error); + toast.error('Failed to load template'); + // 에러 발생 시에도 렌더링 재개 + if (spread && spread.resumePaint) { + spread.resumePaint(); + } + } + }, [selectedTemplate, selectedRow, isFieldEditable]); + + // 템플릿 변경 핸들러 + const handleTemplateChange = (templateId: string) => { + setSelectedTemplateId(templateId); + setHasChanges(false); + + if (currentSpread) { + setTimeout(() => { + initSpread(currentSpread); + }, 100); + } + }; + + // 변경사항 저장 함수 + const handleSaveChanges = React.useCallback(async () => { + if (!currentSpread || !hasChanges || !selectedRow) { + toast.info("No changes to save"); + return; + } + + try { + setIsPending(true); + + const activeSheet = currentSpread.getActiveSheet(); + const dataToSave = { ...selectedRow }; + + // cellMappings를 사용해서 편집 가능한 셀의 값만 추출 + cellMappings.forEach(mapping => { + if (mapping.isEditable) { + const cellPos = parseCellAddress(mapping.cellAddress); + if (cellPos) { + const cellValue = activeSheet.getValue(cellPos.row, cellPos.col); + dataToSave[mapping.attId] = cellValue; + } + } + }); + + // TAG_NO는 절대 변경되지 않도록 원본 값으로 강제 설정 + dataToSave.TAG_NO = selectedRow.TAG_NO; + + console.log('Data to save (TAG_NO preserved):', dataToSave); + + const { success, message } = await updateFormDataInDB( + formCode, + contractItemId, + dataToSave + ); + + if (!success) { + toast.error(message); + return; + } + + toast.success("Changes saved successfully!"); + + const updatedData = { + ...selectedRow, + ...dataToSave, + }; + + onUpdateSuccess?.(updatedData); + setHasChanges(false); + + } catch (error) { + console.error("Error saving changes:", error); + toast.error("An unexpected error occurred while saving"); + } finally { + setIsPending(false); + } + }, [currentSpread, hasChanges, formCode, contractItemId, selectedRow, onUpdateSuccess, cellMappings]); + + if (!isOpen) return null; + + return ( + <Dialog open={isOpen} onOpenChange={onClose}> + <DialogContent + className="w-[80%] max-w-none h-[80vh] flex flex-col" + style={{maxWidth:"80vw"}} + > + <DialogHeader className="flex-shrink-0"> + <DialogTitle>SEDP Template - {formCode}</DialogTitle> + <DialogDescription> + {selectedRow && `Selected TAG_NO: ${selectedRow.TAG_NO || 'N/A'}`} + {hasChanges && ( + <span className="ml-2 text-orange-600 font-medium"> + • Unsaved changes + </span> + )} + <br /> + <div className="flex items-center gap-4 mt-2"> + <span className="text-xs text-muted-foreground"> + <span className="inline-block w-3 h-3 bg-green-100 border border-green-400 mr-1"></span> + Editable fields + </span> + <span className="text-xs text-muted-foreground"> + <span className="inline-block w-3 h-3 bg-gray-100 border border-gray-300 mr-1"></span> + Read-only fields + </span> + {cellMappings.length > 0 && ( + <span className="text-xs text-blue-600"> + {cellMappings.filter(m => m.isEditable).length} of {cellMappings.length} fields editable + </span> + )} + </div> + </DialogDescription> + </DialogHeader> + + {/* 템플릿 선택 UI */} + {normalizedTemplates.length > 1 && ( + <div className="flex-shrink-0 px-4 py-2 border-b"> + <div className="flex items-center gap-2"> + <label className="text-sm font-medium">Template:</label> + <Select value={selectedTemplateId} onValueChange={handleTemplateChange}> + <SelectTrigger className="w-64"> + <SelectValue placeholder="Select a template" /> + </SelectTrigger> + <SelectContent> + {normalizedTemplates.map((template) => ( + <SelectItem key={template.TMPL_ID} value={template.TMPL_ID}> + <div className="flex flex-col"> + <span>{template.NAME || `Template ${template.TMPL_ID.slice(0, 8)}`}</span> + <span className="text-xs text-muted-foreground">{template.TMPL_TYPE}</span> + </div> + </SelectItem> + ))} + </SelectContent> + </Select> + <span className="text-xs text-muted-foreground"> + ({normalizedTemplates.length} templates available) + </span> + </div> + </div> + )} + + {/* SpreadSheets 컴포넌트 영역 */} + <div className="flex-1 overflow-hidden"> + {selectedTemplate && isClient ? ( + <SpreadSheets + key={selectedTemplateId} + workbookInitialized={initSpread} + hostStyle={hostStyle} + /> + ) : ( + <div className="flex items-center justify-center h-full text-muted-foreground"> + {!isClient ? ( + <> + <Loader className="mr-2 h-4 w-4 animate-spin" /> + Loading... + </> + ) : ( + "No template available" + )} + </div> + )} + </div> + + <DialogFooter className="flex-shrink-0"> + <Button variant="outline" onClick={onClose}> + Close + </Button> + + {hasChanges && ( + <Button + variant="default" + onClick={handleSaveChanges} + disabled={isPending} + > + {isPending ? ( + <> + <Loader className="mr-2 h-4 w-4 animate-spin" /> + Saving... + </> + ) : ( + <> + <Save className="mr-2 h-4 w-4" /> + Save Changes + </> + )} + </Button> + )} + + </DialogFooter> + </DialogContent> + </Dialog> + ); +}
\ No newline at end of file diff --git a/components/form-data/spreadJS-dialog.tsx b/components/form-data/spreadJS-dialog.tsx index 5a51c2b5..8be9d175 100644 --- a/components/form-data/spreadJS-dialog.tsx +++ b/components/form-data/spreadJS-dialog.tsx @@ -2,7 +2,14 @@ import * as React from "react"; import dynamic from "next/dynamic"; -import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription } from "@/components/ui/dialog"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogFooter, + DialogDescription, +} from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { GenericData } from "./export-excel-form"; import * as GC from "@mescius/spread-sheets"; @@ -16,24 +23,24 @@ import { SelectTrigger, SelectValue, } from "@/components/ui/select"; -import '@mescius/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'; +import "@mescius/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css"; -// SpreadSheets를 동적으로 import (SSR 비활성화) +// Dynamically load the SpreadSheets component (disable SSR) const SpreadSheets = dynamic( - () => import("@mescius/spread-sheets-react").then(mod => mod.SpreadSheets), - { + () => import("@mescius/spread-sheets-react").then((mod) => mod.SpreadSheets), + { ssr: false, loading: () => ( <div className="flex items-center justify-center h-full"> <Loader className="mr-2 h-4 w-4 animate-spin" /> Loading SpreadSheets... </div> - ) + ), } ); -// 라이센스 키 설정을 클라이언트에서만 실행 -if (typeof window !== 'undefined' && process.env.NEXT_PUBLIC_SPREAD_LICENSE) { +// Apply license key on the client only +if (typeof window !== "undefined" && process.env.NEXT_PUBLIC_SPREAD_LICENSE) { GC.Spread.Sheets.LicenseKey = process.env.NEXT_PUBLIC_SPREAD_LICENSE; } @@ -81,7 +88,7 @@ interface TemplateViewDialogProps { selectedRow: GenericData; formCode: string; contractItemId: number; - editableFieldsMap?: Map<string, string[]>; // 편집 가능 필드 정보 + editableFieldsMap?: Map<string, string[]>; // editable field info per tag onUpdateSuccess?: (updatedValues: Record<string, any>) => void; } @@ -93,310 +100,232 @@ export function TemplateViewDialog({ formCode, contractItemId, editableFieldsMap = new Map(), - onUpdateSuccess + onUpdateSuccess, }: TemplateViewDialogProps) { - const [hostStyle, setHostStyle] = React.useState({ - width: '100%', - height: '100%' - }); - + /* ------------------------- local state ------------------------- */ + const [hostStyle] = React.useState({ width: "100%", height: "100%" }); const [isPending, setIsPending] = React.useState(false); const [hasChanges, setHasChanges] = React.useState(false); - const [currentSpread, setCurrentSpread] = React.useState<any>(null); + const [currentSpread, setCurrentSpread] = React.useState<GC.Spread.Sheets.Workbook | null>( + null + ); const [selectedTemplateId, setSelectedTemplateId] = React.useState<string>(""); - const [cellMappings, setCellMappings] = React.useState<Array<{attId: string, cellAddress: string, isEditable: boolean}>>([]); + const [cellMappings, setCellMappings] = React.useState< + Array<{ attId: string; cellAddress: string; isEditable: boolean }> + >([]); const [isClient, setIsClient] = React.useState(false); - // 클라이언트 사이드에서만 렌더링되도록 보장 + // Render only on client side React.useEffect(() => { setIsClient(true); }, []); - // 템플릿 데이터를 배열로 정규화하고 CONTENT가 있는 것만 필터링 + /* ------------------------- helpers ------------------------- */ + // Normalize template list and keep only those with CONTENT const normalizedTemplates = React.useMemo((): TemplateItem[] => { if (!templateData) return []; - - let templates: TemplateItem[]; - if (Array.isArray(templateData)) { - templates = templateData as TemplateItem[]; - } else { - templates = [templateData as TemplateItem]; - } - - return templates.filter(template => { - const sprContent = template.SPR_LST_SETUP?.CONTENT; - const sprItmContent = template.SPR_ITM_LST_SETUP?.CONTENT; - return sprContent || sprItmContent; - }); + + const list = Array.isArray(templateData) + ? (templateData as TemplateItem[]) + : ([templateData] as TemplateItem[]); + + return list.filter( + (t) => t.SPR_LST_SETUP?.CONTENT || t.SPR_ITM_LST_SETUP?.CONTENT + ); }, [templateData]); - // 선택된 템플릿 가져오기 + // Choose currently selected template const selectedTemplate = React.useMemo(() => { if (!selectedTemplateId) return normalizedTemplates[0]; - return normalizedTemplates.find(t => t.TMPL_ID === selectedTemplateId) || normalizedTemplates[0]; + return ( + normalizedTemplates.find((t) => t.TMPL_ID === selectedTemplateId) || + normalizedTemplates[0] + ); }, [normalizedTemplates, selectedTemplateId]); - // 현재 TAG의 편집 가능한 필드 목록 가져오기 + // Editable fields for the current TAG_NO const editableFields = React.useMemo(() => { - if (!selectedRow?.TAG_NO || !editableFieldsMap.has(selectedRow.TAG_NO)) { - return []; - } + if (!selectedRow?.TAG_NO) return []; return editableFieldsMap.get(selectedRow.TAG_NO) || []; }, [selectedRow?.TAG_NO, editableFieldsMap]); - // 필드가 편집 가능한지 판별하는 함수 - const isFieldEditable = React.useCallback((attId: string) => { - // TAG_NO와 TAG_DESC는 기본적으로 편집 가능 - if (attId === "TAG_NO" || attId === "TAG_DESC") { - return true; - } - - // editableFieldsMap이 있으면 해당 리스트에 있는지 확인 - if (selectedRow?.TAG_NO && editableFieldsMap.has(selectedRow.TAG_NO)) { + const isFieldEditable = React.useCallback( + (attId: string) => { + // TAG_NO and TAG_DESC are always editable + if (attId === "TAG_NO" || attId === "TAG_DESC") return true; + if (!selectedRow?.TAG_NO) return false; return editableFields.includes(attId); - } - - return false; - }, [selectedRow?.TAG_NO, editableFieldsMap, editableFields]); - - // 셀 주소를 행과 열로 변환하는 함수 (예: "M1" -> {row: 0, col: 12}) - const parseCellAddress = (address: string): {row: number, col: number} | null => { - if (!address || address.trim() === "") return null; - - const match = address.match(/^([A-Z]+)(\d+)$/); + }, + [selectedRow?.TAG_NO, editableFields] + ); + + /** Convert a cell address like "M1" into {row:0,col:12}. */ + const parseCellAddress = (addr: string): { row: number; col: number } | null => { + if (!addr) return null; + const match = addr.match(/^([A-Z]+)(\d+)$/); if (!match) return null; - const [, colStr, rowStr] = match; - - // 열 문자를 숫자로 변환 (A=0, B=1, ..., Z=25, AA=26, ...) let col = 0; for (let i = 0; i < colStr.length; i++) { col = col * 26 + (colStr.charCodeAt(i) - 65 + 1); } - col -= 1; // 0-based index로 변환 - - const row = parseInt(rowStr) - 1; // 0-based index로 변환 - + col -= 1; + const row = parseInt(rowStr, 10) - 1; return { row, col }; }; - // 템플릿 변경 시 기본 선택 + // Auto‑select first template React.useEffect(() => { - if (normalizedTemplates.length > 0 && !selectedTemplateId) { + if (normalizedTemplates.length && !selectedTemplateId) { setSelectedTemplateId(normalizedTemplates[0].TMPL_ID); } }, [normalizedTemplates, selectedTemplateId]); - const initSpread = React.useCallback((spread: any) => { - if (!spread || !selectedTemplate || !selectedRow) return; + /* ------------------------- init spread ------------------------- */ + const initSpread = React.useCallback( + (spread: GC.Spread.Sheets.Workbook | undefined) => { + if (!spread || !selectedTemplate || !selectedRow) return; - try { setCurrentSpread(spread); setHasChanges(false); - // CONTENT 찾기 - let contentJson = null; - let dataSheets = null; - - if (selectedTemplate.SPR_LST_SETUP?.CONTENT) { - contentJson = selectedTemplate.SPR_LST_SETUP.CONTENT; - dataSheets = selectedTemplate.SPR_LST_SETUP.DATA_SHEETS; - console.log('Using SPR_LST_SETUP.CONTENT for template:', selectedTemplate.NAME); - } else if (selectedTemplate.SPR_ITM_LST_SETUP?.CONTENT) { - contentJson = selectedTemplate.SPR_ITM_LST_SETUP.CONTENT; - dataSheets = selectedTemplate.SPR_ITM_LST_SETUP.DATA_SHEETS; - console.log('Using SPR_ITM_LST_SETUP.CONTENT for template:', selectedTemplate.NAME); - } + // Pick content JSON and data‑sheet mapping + const contentJson = + selectedTemplate.SPR_LST_SETUP?.CONTENT ?? + selectedTemplate.SPR_ITM_LST_SETUP?.CONTENT; + const dataSheets = + selectedTemplate.SPR_LST_SETUP?.DATA_SHEETS ?? + selectedTemplate.SPR_ITM_LST_SETUP?.DATA_SHEETS; + if (!contentJson) return; - if (!contentJson) { - console.warn('No CONTENT found in template:', selectedTemplate.NAME); - return; - } + // Prepare shared styles once + const editableStyle = new GC.Spread.Sheets.Style(); + editableStyle.backColor = "#f0fdf4"; + editableStyle.locked = false; - console.log('Loading template content for:', selectedTemplate.NAME); - - const jsonData = typeof contentJson === 'string' - ? JSON.parse(contentJson) - : contentJson; + const readOnlyStyle = new GC.Spread.Sheets.Style(); + readOnlyStyle.backColor = "#f9fafb"; + readOnlyStyle.foreColor = "#6b7280"; + readOnlyStyle.locked = true; - // 렌더링 일시 중단 (성능 향상) - spread.suspendPaint(); + const jsonObj = typeof contentJson === "string" ? JSON.parse(contentJson) : contentJson; - try { - // fromJSON으로 템플릿 구조 로드 - spread.fromJSON(jsonData); - - // 활성 시트 가져오기 - const activeSheet = spread.getActiveSheet(); - - // 시트 보호 먼저 해제 - activeSheet.options.isProtected = false; - - // MAP_CELL_ATT 정보를 사용해서 셀에 데이터 매핑과 스타일을 한번에 처리 - if (dataSheets && dataSheets.length > 0) { - const mappings: Array<{attId: string, cellAddress: string, isEditable: boolean}> = []; - - dataSheets.forEach(dataSheet => { - if (dataSheet.MAP_CELL_ATT) { - dataSheet.MAP_CELL_ATT.forEach(mapping => { - const { ATT_ID, IN } = mapping; - - // 셀 주소가 비어있지 않은 경우만 처리 - if (IN && IN.trim() !== "") { - const cellPos = parseCellAddress(IN); - if (cellPos) { - const isEditable = isFieldEditable(ATT_ID); - mappings.push({ - attId: ATT_ID, - cellAddress: IN, - isEditable: isEditable - }); - - // 셀 객체 가져오기 - const cell = activeSheet.getCell(cellPos.row, cellPos.col); - - // selectedRow에서 해당 값 가져와서 셀에 설정 - const value = selectedRow[ATT_ID]; - if (value !== undefined && value !== null) { - cell.value(value); - } - - // 편집 권한 설정 - cell.locked(!isEditable); - - // 즉시 스타일 적용 (기존 스타일 보존하면서) - const existingStyle = activeSheet.getStyle(cellPos.row, cellPos.col); - if (existingStyle) { - // 기존 스타일 복사 - const newStyle = Object.assign(new GC.Spread.Sheets.Style(), existingStyle); - - // 편집 권한에 따라 배경색만 변경 - if (isEditable) { - newStyle.backColor = "#f0fdf4"; // 연한 녹색 - } else { - newStyle.backColor = "#f9fafb"; // 연한 회색 - newStyle.foreColor = "#6b7280"; // 회색 글자 - } - - // 스타일 적용 - activeSheet.setStyle(cellPos.row, cellPos.col, newStyle); - } else { - // 기존 스타일이 없는 경우 새로운 스타일 생성 - const newStyle = new GC.Spread.Sheets.Style(); - if (isEditable) { - newStyle.backColor = "#f0fdf4"; - } else { - newStyle.backColor = "#f9fafb"; - newStyle.foreColor = "#6b7280"; - } - activeSheet.setStyle(cellPos.row, cellPos.col, newStyle); - } - - console.log(`Mapped ${ATT_ID} (${value}) to cell ${IN} - ${isEditable ? 'Editable' : 'Read-only'}`); - } - } - }); - } - }); - - setCellMappings(mappings); - - // 시트 보호 설정 - activeSheet.options.isProtected = true; - activeSheet.options.protectionOptions = { - allowSelectLockedCells: true, - allowSelectUnlockedCells: true, - allowSort: false, - allowFilter: false, - allowEditObjects: false, - allowResizeRows: false, - allowResizeColumns: false - }; - - // 이벤트 리스너 추가 - activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, (event: any, info: any) => { - console.log('Cell changed:', info); - setHasChanges(true); - }); - - activeSheet.bind(GC.Spread.Sheets.Events.ValueChanged, (event: any, info: any) => { - console.log('Value changed:', info); - setHasChanges(true); - }); + const sheet = spread.getActiveSheet(); - // 편집 시작 시 읽기 전용 셀 확인 - activeSheet.bind(GC.Spread.Sheets.Events.EditStarting, (event: any, info: any) => { - const mapping = mappings.find(m => { - const cellPos = parseCellAddress(m.cellAddress); - return cellPos && cellPos.row === info.row && cellPos.col === info.col; + /* -------- batch load + style -------- */ + sheet.suspendPaint(); + sheet.suspendCalcService(true); + try { + spread.fromJSON(jsonObj); + sheet.options.isProtected = false; + + const mappings: Array<{ attId: string; cellAddress: string; isEditable: boolean }> = []; + + if (dataSheets?.length) { + dataSheets.forEach((ds) => { + ds.MAP_CELL_ATT?.forEach(({ ATT_ID, IN }) => { + if (!IN) return; + const pos = parseCellAddress(IN); + if (!pos) return; + const editable = isFieldEditable(ATT_ID); + mappings.push({ attId: ATT_ID, cellAddress: IN, isEditable: editable }); }); - - if (mapping && !mapping.isEditable) { - toast.warning(`${mapping.attId} field is read-only`); - info.cancel = true; - } }); } - } finally { - // 렌더링 재개 (모든 변경사항이 한번에 화면에 표시됨) - spread.resumePaint(); - } - } catch (error) { - console.error('Error initializing spread:', error); - toast.error('Failed to load template'); - // 에러 발생 시에도 렌더링 재개 - if (spread && spread.resumePaint) { - spread.resumePaint(); + // Apply values + style in chunks for large templates + const CHUNK = 500; + let idx = 0; + const applyChunk = () => { + const end = Math.min(idx + CHUNK, mappings.length); + for (; idx < end; idx++) { + const { attId, cellAddress, isEditable } = mappings[idx]; + const pos = parseCellAddress(cellAddress)!; + if (selectedRow[attId] !== undefined && selectedRow[attId] !== null) { + sheet.setValue(pos.row, pos.col, selectedRow[attId]); + } + sheet.setStyle(pos.row, pos.col, isEditable ? editableStyle : readOnlyStyle); + } + if (idx < mappings.length) { + requestAnimationFrame(applyChunk); + } else { + // enable protection & events after styling done + sheet.options.isProtected = true; + sheet.options.protectionOptions = { + allowSelectLockedCells: true, + allowSelectUnlockedCells: true, + } as any; + + // Cell/value change events + sheet.bind(GC.Spread.Sheets.Events.ValueChanged, () => setHasChanges(true)); + sheet.bind(GC.Spread.Sheets.Events.CellChanged, () => setHasChanges(true)); + + // Prevent editing read‑only fields + sheet.bind( + GC.Spread.Sheets.Events.EditStarting, + (event: any, info: any) => { + const map = mappings.find((m) => { + const pos = parseCellAddress(m.cellAddress); + return pos && pos.row === info.row && pos.col === info.col; + }); + if (map && !map.isEditable) { + toast.warning(`${map.attId} field is read‑only`); + info.cancel = true; + } + } + ); + + setCellMappings(mappings); + sheet.resumeCalcService(false); + sheet.resumePaint(); + } + }; + applyChunk(); + } catch (err) { + console.error(err); + toast.error("Failed to load template"); + sheet.resumeCalcService(false); + sheet.resumePaint(); } - } - }, [selectedTemplate, selectedRow, isFieldEditable]); + }, + [selectedTemplate, selectedRow, isFieldEditable] + ); - // 템플릿 변경 핸들러 - const handleTemplateChange = (templateId: string) => { - setSelectedTemplateId(templateId); + /* ------------------------- handlers ------------------------- */ + const handleTemplateChange = (id: string) => { + setSelectedTemplateId(id); setHasChanges(false); - if (currentSpread) { - setTimeout(() => { - initSpread(currentSpread); - }, 100); + // re‑init after a short tick so component remounts SpreadSheets + setTimeout(() => initSpread(currentSpread), 50); } }; - // 변경사항 저장 함수 const handleSaveChanges = React.useCallback(async () => { if (!currentSpread || !hasChanges || !selectedRow) { toast.info("No changes to save"); return; } + setIsPending(true); + try { - setIsPending(true); - - const activeSheet = currentSpread.getActiveSheet(); - const dataToSave = { ...selectedRow }; - - // cellMappings를 사용해서 편집 가능한 셀의 값만 추출 - cellMappings.forEach(mapping => { - if (mapping.isEditable) { - const cellPos = parseCellAddress(mapping.cellAddress); - if (cellPos) { - const cellValue = activeSheet.getValue(cellPos.row, cellPos.col); - dataToSave[mapping.attId] = cellValue; - } + const sheet = currentSpread.getActiveSheet(); + const payload: Record<string, any> = { ...selectedRow }; + + cellMappings.forEach((m) => { + if (m.isEditable) { + const pos = parseCellAddress(m.cellAddress); + if (pos) payload[m.attId] = sheet.getValue(pos.row, pos.col); } }); - // TAG_NO는 절대 변경되지 않도록 원본 값으로 강제 설정 - dataToSave.TAG_NO = selectedRow.TAG_NO; - - console.log('Data to save (TAG_NO preserved):', dataToSave); + payload.TAG_NO = selectedRow.TAG_NO; // never change TAG_NO const { success, message } = await updateFormDataInDB( formCode, contractItemId, - dataToSave + payload ); if (!success) { @@ -405,60 +334,47 @@ export function TemplateViewDialog({ } toast.success("Changes saved successfully!"); - - const updatedData = { - ...selectedRow, - ...dataToSave, - }; - - onUpdateSuccess?.(updatedData); + onUpdateSuccess?.({ ...selectedRow, ...payload }); setHasChanges(false); - - } catch (error) { - console.error("Error saving changes:", error); + } catch (err) { + console.error(err); toast.error("An unexpected error occurred while saving"); } finally { setIsPending(false); } - }, [currentSpread, hasChanges, formCode, contractItemId, selectedRow, onUpdateSuccess, cellMappings]); + }, [currentSpread, hasChanges, selectedRow, cellMappings, formCode, contractItemId, onUpdateSuccess]); + /* ------------------------- render ------------------------- */ if (!isOpen) return null; return ( <Dialog open={isOpen} onOpenChange={onClose}> - <DialogContent - className="w-[80%] max-w-none h-[80vh] flex flex-col" - style={{maxWidth:"80vw"}} - > + <DialogContent className="w-[80%] max-w-none h-[80vh] flex flex-col" style={{ maxWidth: "80vw" }}> <DialogHeader className="flex-shrink-0"> - <DialogTitle>SEDP Template - {formCode}</DialogTitle> + <DialogTitle>SEDP Template – {formCode}</DialogTitle> <DialogDescription> - {selectedRow && `Selected TAG_NO: ${selectedRow.TAG_NO || 'N/A'}`} - {hasChanges && ( - <span className="ml-2 text-orange-600 font-medium"> - • Unsaved changes - </span> - )} + {selectedRow && `Selected TAG_NO: ${selectedRow.TAG_NO || "N/A"}`} + {hasChanges && <span className="ml-2 text-orange-600 font-medium">• Unsaved changes</span>} <br /> <div className="flex items-center gap-4 mt-2"> <span className="text-xs text-muted-foreground"> - <span className="inline-block w-3 h-3 bg-green-100 border border-green-400 mr-1"></span> + <span className="inline-block w-3 h-3 bg-green-100 border border-green-400 mr-1" /> Editable fields </span> <span className="text-xs text-muted-foreground"> - <span className="inline-block w-3 h-3 bg-gray-100 border border-gray-300 mr-1"></span> - Read-only fields + <span className="inline-block w-3 h-3 bg-gray-100 border border-gray-300 mr-1" /> + Read‑only fields </span> - {cellMappings.length > 0 && ( + {!!cellMappings.length && ( <span className="text-xs text-blue-600"> - {cellMappings.filter(m => m.isEditable).length} of {cellMappings.length} fields editable + {cellMappings.filter((m) => m.isEditable).length} of {cellMappings.length} fields editable </span> )} </div> </DialogDescription> </DialogHeader> - {/* 템플릿 선택 UI */} + {/* Template selector */} {normalizedTemplates.length > 1 && ( <div className="flex-shrink-0 px-4 py-2 border-b"> <div className="flex items-center gap-2"> @@ -468,37 +384,30 @@ export function TemplateViewDialog({ <SelectValue placeholder="Select a template" /> </SelectTrigger> <SelectContent> - {normalizedTemplates.map((template) => ( - <SelectItem key={template.TMPL_ID} value={template.TMPL_ID}> + {normalizedTemplates.map((t) => ( + <SelectItem key={t.TMPL_ID} value={t.TMPL_ID}> <div className="flex flex-col"> - <span>{template.NAME || `Template ${template.TMPL_ID.slice(0, 8)}`}</span> - <span className="text-xs text-muted-foreground">{template.TMPL_TYPE}</span> + <span>{t.NAME || `Template ${t.TMPL_ID.slice(0, 8)}`}</span> + <span className="text-xs text-muted-foreground">{t.TMPL_TYPE}</span> </div> </SelectItem> ))} </SelectContent> </Select> - <span className="text-xs text-muted-foreground"> - ({normalizedTemplates.length} templates available) - </span> + <span className="text-xs text-muted-foreground">({normalizedTemplates.length} templates available)</span> </div> </div> )} - - {/* SpreadSheets 컴포넌트 영역 */} + + {/* Spreadsheet */} <div className="flex-1 overflow-hidden"> {selectedTemplate && isClient ? ( - <SpreadSheets - key={selectedTemplateId} - workbookInitialized={initSpread} - hostStyle={hostStyle} - /> + <SpreadSheets key={selectedTemplateId} workbookInitialized={initSpread} hostStyle={hostStyle} /> ) : ( <div className="flex items-center justify-center h-full text-muted-foreground"> {!isClient ? ( <> - <Loader className="mr-2 h-4 w-4 animate-spin" /> - Loading... + <Loader className="mr-2 h-4 w-4 animate-spin" /> Loading... </> ) : ( "No template available" @@ -507,33 +416,26 @@ export function TemplateViewDialog({ )} </div> + {/* footer */} <DialogFooter className="flex-shrink-0"> <Button variant="outline" onClick={onClose}> Close </Button> - {hasChanges && ( - <Button - variant="default" - onClick={handleSaveChanges} - disabled={isPending} - > + <Button variant="default" onClick={handleSaveChanges} disabled={isPending}> {isPending ? ( <> - <Loader className="mr-2 h-4 w-4 animate-spin" /> - Saving... + <Loader className="mr-2 h-4 w-4 animate-spin" /> Saving... </> ) : ( <> - <Save className="mr-2 h-4 w-4" /> - Save Changes + <Save className="mr-2 h-4 w-4" /> Save Changes </> )} </Button> )} - </DialogFooter> </DialogContent> </Dialog> ); -}
\ No newline at end of file +} diff --git a/components/information/information-button.tsx b/components/information/information-button.tsx index f8707439..5a9dc4d4 100644 --- a/components/information/information-button.tsx +++ b/components/information/information-button.tsx @@ -174,7 +174,7 @@ export function InformationButton({ {notice.title}
</h5>
<div className="flex items-center gap-3 text-xs text-gray-500">
- <span>{formatDate(notice.createdAt)}</span>
+ <span>{formatDate(notice.createdAt, "KR")}</span>
{notice.authorName && (
<span>{notice.authorName}</span>
)}
diff --git a/components/information/information-client.tsx b/components/information/information-client.tsx index 513b8f20..69835599 100644 --- a/components/information/information-client.tsx +++ b/components/information/information-client.tsx @@ -308,7 +308,7 @@ export function InformationClient({ initialData = [] }: InformationClientProps) </Badge>
</TableCell>
<TableCell>
- {formatDate(information.createdAt)}
+ {formatDate(information.createdAt, "KR")}
</TableCell>
<TableCell className="text-right">
<Button
diff --git a/components/notice/notice-client.tsx b/components/notice/notice-client.tsx index fab0d758..e32a40c9 100644 --- a/components/notice/notice-client.tsx +++ b/components/notice/notice-client.tsx @@ -347,7 +347,7 @@ export function NoticeClient({ initialData = [], currentUserId }: NoticeClientPr </Badge>
</TableCell>
<TableCell>
- {formatDate(notice.createdAt)}
+ {formatDate(notice.createdAt, "KR")}
</TableCell>
<TableCell className="text-right">
<div className="flex justify-end gap-2">
diff --git a/components/pq/pq-review-detail.tsx b/components/pq/pq-review-detail.tsx index e636caae..4f897a2b 100644 --- a/components/pq/pq-review-detail.tsx +++ b/components/pq/pq-review-detail.tsx @@ -447,7 +447,7 @@ export default function VendorPQAdminReview({ </div> <p className="text-sm mt-1">{comment.comment}</p> <p className="text-xs text-muted-foreground mt-1"> - {formatDate(comment.createdAt)} + {formatDate(comment.createdAt, "KR")} </p> </div> <Button @@ -847,7 +847,7 @@ function ItemCommentButton({ item, onCommentAdded }: ItemCommentButtonProps) { <p className="font-medium">{log.reviewerName}</p> <p>{log.reviewerComment}</p> <p className="text-xs text-muted-foreground"> - {formatDate(log.createdAt)} + {formatDate(log.createdAt, "KR")} </p> </div> ))} diff --git a/components/pq/pq-review-table.tsx b/components/pq/pq-review-table.tsx index 08b4de61..ce30bac0 100644 --- a/components/pq/pq-review-table.tsx +++ b/components/pq/pq-review-table.tsx @@ -313,7 +313,7 @@ function ItemReviewButton({ answerId, checkPoint, onCommentAdded }: ItemReviewBu <p className="font-medium">{log.reviewerName}</p> <p>{log.reviewerComment}</p> <p className="text-xs text-muted-foreground"> - {formatDate(log.createdAt)} + {formatDate(log.createdAt, "KR")} </p> </div> )) diff --git a/config/dashboard-table.ts b/config/dashboard-table.ts index ae74645c..414ba24a 100644 --- a/config/dashboard-table.ts +++ b/config/dashboard-table.ts @@ -27,7 +27,7 @@ export const DASHBOARD_TABLES: TableConfig[] = [ }, { tableName: 'procurement_rfqs', - displayName: '발주용 견적', + displayName: 'RFQ', domain: 'procurement', statusField: 'status', statusMapping: { diff --git a/config/menuConfig.ts b/config/menuConfig.ts index 84caecd2..b45cb4d6 100644 --- a/config/menuConfig.ts +++ b/config/menuConfig.ts @@ -27,29 +27,29 @@ export const mainNav: MenuSection[] = [ group: "기본 정보" }, { - title: "수행 프로젝트 리스트", + title: "프로젝트 리스트", href: "/evcp/projects", - description: "MDG에서 받은 수행 프로젝트 리스트(C)", + description: "MDG에서 받은 프로젝트 리스트(C)", // icon: "Briefcase", group: "기본 정보" }, { title: "패키지 넘버", href: "/evcp/items", - description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 리스트", + description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 목록 ", // icon: "ListTodo", group: "기본 정보" }, { - title: "객체 클래스", + title: "객체 클래스 목록", href: "/evcp/equip-class", - description: "객체 클래스 리스트", + description: "객체 클래스 목록", // icon: "Database", group: "설계 정보" }, { - title: "태그 타입", + title: "태그 타입 목록", href: "/evcp/tag-numbering", description: "Tag Numbering을 위한 기준 정보", // icon: "Tag", @@ -78,23 +78,23 @@ export const mainNav: MenuSection[] = [ group: "설계 정보" }, { - title: "인코텀즈", + title: "인코텀즈 관리", href: "/evcp/incoterms", description: "인코텀즈를 등록", // icon: "ListTodo", group: "구매 정보" }, { - title: "지급 조건", + title: "지급 조건 관리", href: "/evcp/payment-conditions", description: "지급 조건을 등록", // icon: "ListTodo", group: "구매 정보" }, { - title: "업체 유형", + title: "업체 유형 관리", href: "/evcp/vendor-type", - description: "업체 유형", + description: "업체 유형 관리", // icon: "ListTodo", group: "구매 정보" }, @@ -106,16 +106,16 @@ export const mainNav: MenuSection[] = [ group: "구매 정보" }, { - title: "PQ(Pre-Qualification) 정보", + title: "PQ 항목 관리", href: "/evcp/pq-criteria", description: "PQ 항목 등을 관리", // icon: "ClipboardCheck", group: "구매 정보" }, { - title: "Project GTC", + title: "Project GTC 관리", href: "/evcp/project-gtc", - description: "Project별 GTC를 등록하여 구매 절차에서 사용", + description: "프로젝트별 GTC를 등록하여 구매 절차에서 사용", // icon: "FileCheck", group: "구매 정보" }, @@ -135,7 +135,7 @@ export const mainNav: MenuSection[] = [ group: "구매 정보" }, { - title: "협력업체 일반 평가표 관리", + title: "협력업체 평가자료 문항 관리", href: "/evcp/vendor-check-list", description: "", // icon: "FileCheck", @@ -143,9 +143,9 @@ export const mainNav: MenuSection[] = [ }, { - title: "ESG 자가진단표 관리", + title: "ESG 자가진단평가서 항목 관리", href: "/evcp/esg-check-list", - description: "협력업체 정기평가에 사용되는 업체평가용을 관리", + description: "", // icon: "FileCheck", group: "구매 정보" }, @@ -155,13 +155,6 @@ export const mainNav: MenuSection[] = [ title: "협력업체 관리", useGrouping: true, items: [ - // { - // title: "협력업체 후보 관리(기술영업)", - // href: "/evcp/tech-vendor-candidates", - // description: "기술영업 협력업체 후보 관리", - // group: "기술영업" - // }, - { title: "발굴업체 등록 관리", href: "/evcp/vendor-candidates", @@ -173,7 +166,7 @@ export const mainNav: MenuSection[] = [ description: "협력업체에 대한 요약 정보를 출력", }, { - title: "협력업체 실사", + title: "협력업체 실사 관리", href: "/evcp/vendor-investigation", description: "실사가 필요한 협력업체에 대한 일정 및 실사 내용 관리", }, @@ -188,9 +181,9 @@ export const mainNav: MenuSection[] = [ description: "협력업체 정기 평가 담당자별 입력", }, { - title: "협력업체 PQ 검토 및 실사 신청", + title: "협력업체 PQ/실사 현황", href: "/evcp/pq_new", - description: "협력업체의 제출 PQ를 확인하고 통과 여부를 결정", + description: "협력업체의 제출 PQ/실사 현황을 확인", }, { title: "협력업체 기본 계약 관리", @@ -297,9 +290,9 @@ export const mainNav: MenuSection[] = [ group: "견적/입찰 관리" }, { - title: "발주용 견적", + title: "RFQ(PR)", href: "/evcp/po-rfq", - description: "생성된 견적을 발행하고 관리", + description: "생성된 RFQ(PR)을 발행하고 관리", // icon: "FileText", group: "견적/입찰 관리" }, @@ -454,39 +447,35 @@ export const procurementNav: MenuSection[] = [ group: "기본 정보" }, { - title: "수행 프로젝트 리스트", + title: "프로젝트 리스트", href: "/evcp/projects", - description: "MDG에서 받은 수행 프로젝트 리스트(C)", + description: "MDG에서 받은 프로젝트 리스트(C)", // icon: "Briefcase", group: "기본 정보" }, { title: "패키지 넘버", href: "/evcp/items", - description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 리스트", + description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 목록", // icon: "ListTodo", group: "기본 정보" }, - - - - { - title: "인코텀즈", + title: "인코텀즈 관리", href: "/evcp/incoterms", description: "인코텀즈를 등록", // icon: "ListTodo", group: "구매 정보" }, { - title: "지급 조건", + title: "지급 조건 관리", href: "/evcp/payment-conditions", description: "지급 조건을 등록", // icon: "ListTodo", group: "구매 정보" }, { - title: "업체 유형", + title: "업체 유형 관리", href: "/evcp/vendor-type", description: "업체 유형", // icon: "ListTodo", @@ -500,14 +489,14 @@ export const procurementNav: MenuSection[] = [ group: "구매 정보" }, { - title: "PQ(Pre-Qualification) 정보", + title: "PQ 항목 관리", href: "/evcp/pq-criteria", description: "PQ 항목 등을 관리", // icon: "ClipboardCheck", group: "구매 정보" }, { - title: "Project GTC", + title: "Project GTC 관리", href: "/evcp/project-gtc", description: "Project별 GTC를 등록하여 구매 절차에서 사용", // icon: "FileCheck", @@ -529,7 +518,7 @@ export const procurementNav: MenuSection[] = [ group: "구매 정보" }, { - title: "협력업체 일반 평가표 관리", + title: "협력업체 평가자료 문항 관리", href: "/evcp/vendor-check-list", description: "", // icon: "FileCheck", @@ -537,9 +526,9 @@ export const procurementNav: MenuSection[] = [ }, { - title: "ESG 자가진단표 관리", + title: "ESG 자가진단평가서 항목 관리", href: "/evcp/esg-check-list", - description: "협력업체 정기평가에 사용되는 업체평가용을 관리", + description: "", // icon: "FileCheck", group: "구매 정보" }, @@ -549,13 +538,6 @@ export const procurementNav: MenuSection[] = [ title: "협력업체 관리", useGrouping: true, items: [ - // { - // title: "협력업체 후보 관리(기술영업)", - // href: "/evcp/tech-vendor-candidates", - // description: "기술영업 협력업체 후보 관리", - // group: "기술영업" - // }, - { title: "발굴업체 등록 관리", href: "/procurement/vendor-candidates", @@ -567,7 +549,7 @@ export const procurementNav: MenuSection[] = [ description: "협력업체에 대한 요약 정보를 출력", }, { - title: "협력업체 실사", + title: "협력업체 실사 관리", href: "/procurement/vendor-investigation", description: "실사가 필요한 협력업체에 대한 일정 및 실사 내용 관리", }, @@ -582,9 +564,9 @@ export const procurementNav: MenuSection[] = [ description: "협력업체 정기 평가 담당자별 입력", }, { - title: "협력업체 PQ 검토 및 실사 신청", + title: "협력업체 PQ/실사 현황", href: "/procurement/pq_new", - description: "협력업체의 제출 PQ를 확인하고 통과 여부를 결정", + description: "협력업체의 제출 PQ/실사 현황을 확인", }, { title: "협력업체 기본 계약 관리", @@ -636,9 +618,9 @@ export const procurementNav: MenuSection[] = [ group: "견적/입찰 관리" }, { - title: "발주용 견적", + title: "RFQ(PR)", href: "/procurement/po-rfq", - description: "생성된 견적을 발행하고 관리", + description: "생성된 RFQ(PR)을 발행하고 관리", // icon: "FileText", group: "견적/입찰 관리" }, @@ -703,16 +685,16 @@ export const salesNav: MenuSection[] = [ group: "기본 정보" }, { - title: "수행 프로젝트 리스트", + title: "프로젝트 리스트", href: "/sales/projects", - description: "MDG에서 받은 수행 프로젝트 리스트(C)", + description: "MDG에서 받은 프로젝트 리스트(C)", // icon: "Briefcase", group: "기본 정보" }, { title: "패키지 넘버", href: "/sales/items", - description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 리스트", + description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 목록", // icon: "ListTodo", group: "기본 정보" }, @@ -789,29 +771,29 @@ export const engineeringNav: MenuSection[] = [ group: "기본 정보" }, { - title: "수행 프로젝트 리스트", + title: "프로젝트 리스트", href: "/evcp/projects", - description: "MDG에서 받은 수행 프로젝트 리스트(C)", + description: "MDG에서 받은 프로젝트 리스트(C)", // icon: "Briefcase", group: "기본 정보" }, { title: "패키지 넘버", href: "/evcp/items", - description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 리스트", + description: "견적(PR 발행 전), 입찰(PR 발행 전), 설계 데이터 및 문서에서 사용되는 패키지 넘버 목록", // icon: "ListTodo", group: "기본 정보" }, { - title: "객체 클래스", + title: "객체 클래스 목록", href: "/evcp/equip-class", - description: "객체 클래스 리스트", + description: "객체 클래스 목록", // icon: "Database", group: "설계 정보" }, { - title: "태그 타입", + title: "태그 타입 목록", href: "/evcp/tag-numbering", description: "Tag Numbering을 위한 기준 정보", // icon: "Tag", @@ -856,9 +838,9 @@ export const engineeringNav: MenuSection[] = [ group: "견적/입찰 관리" }, { - title: "발주용 견적", + title: "RFQ(PR)", href: "/evcp/po-rfq", - description: "생성된 견적을 발행하고 관리", + description: "생성된 RFQ(PR)을 발행하고 관리", // icon: "FileText", group: "견적/입찰 관리" }, diff --git a/db/migrations/0205_perfect_zzzax.sql b/db/migrations/0205_perfect_zzzax.sql new file mode 100644 index 00000000..b8b92461 --- /dev/null +++ b/db/migrations/0205_perfect_zzzax.sql @@ -0,0 +1,23 @@ +CREATE TABLE "template_items" ( + "id" serial PRIMARY KEY NOT NULL, + "form_mapping_id" integer NOT NULL, + "tmpl_id" varchar(255) NOT NULL, + "name" varchar(255) NOT NULL, + "tmpl_type" varchar(100) NOT NULL, + "spr_lst_setup" json NOT NULL, + "grd_lst_setup" json NOT NULL, + "spr_itm_lst_setup" json NOT NULL, + "description" text, + "is_active" boolean DEFAULT true NOT NULL, + "created_at" timestamp with time zone DEFAULT now() NOT NULL, + "updated_at" timestamp with time zone DEFAULT now() NOT NULL, + CONSTRAINT "uniq_tmpl_in_form_mapping" UNIQUE("form_mapping_id","tmpl_id"), + CONSTRAINT "uniq_name_in_form_mapping" UNIQUE("form_mapping_id","name") +); +--> statement-breakpoint +ALTER TABLE "evaluation_submissions" DROP CONSTRAINT "evaluation_submissions_vendor_id_vendors_id_fk"; +--> statement-breakpoint +ALTER TABLE "ocr_rows" ADD COLUMN "file_name" varchar(255);--> statement-breakpoint +ALTER TABLE "ocr_rows" ADD COLUMN "inspection_date" varchar(255);--> statement-breakpoint +ALTER TABLE "template_items" ADD CONSTRAINT "template_items_form_mapping_id_tag_type_class_form_mappings_id_fk" FOREIGN KEY ("form_mapping_id") REFERENCES "public"."tag_type_class_form_mappings"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "evaluation_submissions" DROP COLUMN "vendor_id";
\ No newline at end of file diff --git a/db/migrations/meta/0205_snapshot.json b/db/migrations/meta/0205_snapshot.json new file mode 100644 index 00000000..0ce19ca0 --- /dev/null +++ b/db/migrations/meta/0205_snapshot.json @@ -0,0 +1,38522 @@ +{ + "id": "10da2c81-a259-4f2c-9ccb-57890d745d0d", + "prevId": "42f8331b-d02d-42ea-bb0a-e9d25823f683", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.companies": { + "name": "companies", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "companies_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "taxID": { + "name": "taxID", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contract_envelopes": { + "name": "contract_envelopes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "contract_envelopes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "envelope_id": { + "name": "envelope_id", + "type": "varchar(200)", + "primaryKey": false, + "notNull": true + }, + "document_id": { + "name": "document_id", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "envelope_status": { + "name": "envelope_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "contract_envelopes_contract_id_contracts_id_fk": { + "name": "contract_envelopes_contract_id_contracts_id_fk", + "tableFrom": "contract_envelopes", + "tableTo": "contracts", + "columnsFrom": [ + "contract_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contract_items": { + "name": "contract_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "contract_items_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_id": { + "name": "item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 1 + }, + "unit_price": { + "name": "unit_price", + "type": "numeric(10, 2)", + "primaryKey": false, + "notNull": false + }, + "tax_rate": { + "name": "tax_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "tax_amount": { + "name": "tax_amount", + "type": "numeric(10, 2)", + "primaryKey": false, + "notNull": false + }, + "total_line_amount": { + "name": "total_line_amount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "contract_items_contract_item_idx": { + "name": "contract_items_contract_item_idx", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "item_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "contract_items_contract_id_contracts_id_fk": { + "name": "contract_items_contract_id_contracts_id_fk", + "tableFrom": "contract_items", + "tableTo": "contracts", + "columnsFrom": [ + "contract_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "contract_items_item_id_items_id_fk": { + "name": "contract_items_item_id_items_id_fk", + "tableFrom": "contract_items", + "tableTo": "items", + "columnsFrom": [ + "item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "contract_items_contract_id_item_id_unique": { + "name": "contract_items_contract_id_item_id_unique", + "nullsNotDistinct": false, + "columns": [ + "contract_id", + "item_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contract_signers": { + "name": "contract_signers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "contract_signers_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "envelope_id": { + "name": "envelope_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_contact_id": { + "name": "vendor_contact_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "signer_type": { + "name": "signer_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'VENDOR'" + }, + "signer_email": { + "name": "signer_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "signer_name": { + "name": "signer_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "signer_position": { + "name": "signer_position", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "signer_status": { + "name": "signer_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'PENDING'" + }, + "signed_at": { + "name": "signed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "contract_signers_envelope_id_contract_envelopes_id_fk": { + "name": "contract_signers_envelope_id_contract_envelopes_id_fk", + "tableFrom": "contract_signers", + "tableTo": "contract_envelopes", + "columnsFrom": [ + "envelope_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "contract_signers_vendor_contact_id_vendor_contacts_id_fk": { + "name": "contract_signers_vendor_contact_id_vendor_contacts_id_fk", + "tableFrom": "contract_signers", + "tableTo": "vendor_contacts", + "columnsFrom": [ + "vendor_contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contracts": { + "name": "contracts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "contracts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "contract_no": { + "name": "contract_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "contract_name": { + "name": "contract_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "start_date": { + "name": "start_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "end_date": { + "name": "end_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "payment_terms": { + "name": "payment_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_terms": { + "name": "delivery_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "delivery_location": { + "name": "delivery_location", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "total_amount": { + "name": "total_amount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "tax": { + "name": "tax", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "shipping_fee": { + "name": "shipping_fee", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "net_total": { + "name": "net_total", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "partial_shipping_allowed": { + "name": "partial_shipping_allowed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "partial_payment_allowed": { + "name": "partial_payment_allowed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "version": { + "name": "version", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "contracts_project_id_projects_id_fk": { + "name": "contracts_project_id_projects_id_fk", + "tableFrom": "contracts", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "contracts_vendor_id_vendors_id_fk": { + "name": "contracts_vendor_id_vendors_id_fk", + "tableFrom": "contracts", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "contracts_contract_no_unique": { + "name": "contracts_contract_no_unique", + "nullsNotDistinct": false, + "columns": [ + "contract_no" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.poa": { + "name": "poa", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "poa_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_no": { + "name": "contract_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "original_contract_no": { + "name": "original_contract_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "original_contract_name": { + "name": "original_contract_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_status": { + "name": "original_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "delivery_terms": { + "name": "delivery_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "delivery_location": { + "name": "delivery_location", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "total_amount": { + "name": "total_amount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "tax": { + "name": "tax", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "shipping_fee": { + "name": "shipping_fee", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "net_total": { + "name": "net_total", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "change_reason": { + "name": "change_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "approval_status": { + "name": "approval_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'PENDING'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "poa_original_contract_no_contracts_contract_no_fk": { + "name": "poa_original_contract_no_contracts_contract_no_fk", + "tableFrom": "poa", + "tableTo": "contracts", + "columnsFrom": [ + "original_contract_no" + ], + "columnsTo": [ + "contract_no" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "poa_project_id_projects_id_fk": { + "name": "poa_project_id_projects_id_fk", + "tableFrom": "poa", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "poa_vendor_id_vendors_id_fk": { + "name": "poa_vendor_id_vendors_id_fk", + "tableFrom": "poa", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item_offshore_hull": { + "name": "item_offshore_hull", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "work_type": { + "name": "work_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "item_list": { + "name": "item_list", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sub_item_list": { + "name": "sub_item_list", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item_offshore_top": { + "name": "item_offshore_top", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "work_type": { + "name": "work_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "item_list": { + "name": "item_list", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sub_item_list": { + "name": "sub_item_list", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.item_shipbuilding": { + "name": "item_shipbuilding", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "work_type": { + "name": "work_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "item_list": { + "name": "item_list", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ship_types": { + "name": "ship_types", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'OPTION'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.items": { + "name": "items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_no": { + "name": "project_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "package_code": { + "name": "package_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "sm_code": { + "name": "sm_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "parent_item_code": { + "name": "parent_item_code", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "item_level": { + "name": "item_level", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "delete_flag": { + "name": "delete_flag", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "unit_of_measure": { + "name": "unit_of_measure", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "steel_type": { + "name": "steel_type", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "grade_material": { + "name": "grade_material", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "change_date": { + "name": "change_date", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "base_unit_of_measure": { + "name": "base_unit_of_measure", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "items_item_code_unique": { + "name": "items_item_code_unique", + "nullsNotDistinct": false, + "columns": [ + "item_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.materials": { + "name": "materials", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "parent_item_code": { + "name": "parent_item_code", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "item_level": { + "name": "item_level", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "delete_flag": { + "name": "delete_flag", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "unit_of_measure": { + "name": "unit_of_measure", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "steel_type": { + "name": "steel_type", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "grade_material": { + "name": "grade_material", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "change_date": { + "name": "change_date", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "base_unit_of_measure": { + "name": "base_unit_of_measure", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "materials_item_code_unique": { + "name": "materials_item_code_unique", + "nullsNotDistinct": false, + "columns": [ + "item_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pq_criterias": { + "name": "pq_criterias", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "check_point": { + "name": "check_point", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "group_name": { + "name": "group_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pq_criterias_extension": { + "name": "pq_criterias_extension", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "pq_criteria_id": { + "name": "pq_criteria_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "contract_info": { + "name": "contract_info", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "additional_requirement": { + "name": "additional_requirement", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "pq_criterias_extension_pq_criteria_id_pq_criterias_id_fk": { + "name": "pq_criterias_extension_pq_criteria_id_pq_criterias_id_fk", + "tableFrom": "pq_criterias_extension", + "tableTo": "pq_criterias", + "columnsFrom": [ + "pq_criteria_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "pq_criterias_extension_project_id_projects_id_fk": { + "name": "pq_criterias_extension_project_id_projects_id_fk", + "tableFrom": "pq_criterias_extension", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_criteria_attachments": { + "name": "vendor_criteria_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_criteria_answer_id": { + "name": "vendor_criteria_answer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_criteria_attachments_vendor_criteria_answer_id_vendor_pq_criteria_answers_id_fk": { + "name": "vendor_criteria_attachments_vendor_criteria_answer_id_vendor_pq_criteria_answers_id_fk", + "tableFrom": "vendor_criteria_attachments", + "tableTo": "vendor_pq_criteria_answers", + "columnsFrom": [ + "vendor_criteria_answer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_investigation_attachments": { + "name": "vendor_investigation_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "investigation_id": { + "name": "investigation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'REPORT'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_investigation_attachments_investigation_id_vendor_investigations_id_fk": { + "name": "vendor_investigation_attachments_investigation_id_vendor_investigations_id_fk", + "tableFrom": "vendor_investigation_attachments", + "tableTo": "vendor_investigations", + "columnsFrom": [ + "investigation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_investigations": { + "name": "vendor_investigations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "pq_submission_id": { + "name": "pq_submission_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "requester_id": { + "name": "requester_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "qm_manager_id": { + "name": "qm_manager_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "investigation_status": { + "name": "investigation_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'PLANNED'" + }, + "evaluation_type": { + "name": "evaluation_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "investigation_address": { + "name": "investigation_address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "investigation_method": { + "name": "investigation_method", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "scheduled_start_at": { + "name": "scheduled_start_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "scheduled_end_at": { + "name": "scheduled_end_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "forecasted_at": { + "name": "forecasted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "requested_at": { + "name": "requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "evaluation_score": { + "name": "evaluation_score", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluation_result": { + "name": "evaluation_result", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "investigation_notes": { + "name": "investigation_notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_investigations_vendor_id_vendors_id_fk": { + "name": "vendor_investigations_vendor_id_vendors_id_fk", + "tableFrom": "vendor_investigations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendor_investigations_pq_submission_id_vendor_pq_submissions_id_fk": { + "name": "vendor_investigations_pq_submission_id_vendor_pq_submissions_id_fk", + "tableFrom": "vendor_investigations", + "tableTo": "vendor_pq_submissions", + "columnsFrom": [ + "pq_submission_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "cascade" + }, + "vendor_investigations_requester_id_users_id_fk": { + "name": "vendor_investigations_requester_id_users_id_fk", + "tableFrom": "vendor_investigations", + "tableTo": "users", + "columnsFrom": [ + "requester_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendor_investigations_qm_manager_id_users_id_fk": { + "name": "vendor_investigations_qm_manager_id_users_id_fk", + "tableFrom": "vendor_investigations", + "tableTo": "users", + "columnsFrom": [ + "qm_manager_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_pq_submissions": { + "name": "vendor_pq_submissions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "pq_number": { + "name": "pq_number", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "requester_id": { + "name": "requester_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'REQUESTED'" + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "approved_at": { + "name": "approved_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "rejected_at": { + "name": "rejected_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reject_reason": { + "name": "reject_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "unique_pq_submission": { + "name": "unique_pq_submission", + "columns": [ + { + "expression": "vendor_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "project_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "vendor_pq_submissions_requester_id_users_id_fk": { + "name": "vendor_pq_submissions_requester_id_users_id_fk", + "tableFrom": "vendor_pq_submissions", + "tableTo": "users", + "columnsFrom": [ + "requester_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendor_pq_submissions_vendor_id_vendors_id_fk": { + "name": "vendor_pq_submissions_vendor_id_vendors_id_fk", + "tableFrom": "vendor_pq_submissions", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "vendor_pq_submissions_project_id_projects_id_fk": { + "name": "vendor_pq_submissions_project_id_projects_id_fk", + "tableFrom": "vendor_pq_submissions", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "vendor_pq_submissions_pq_number_unique": { + "name": "vendor_pq_submissions_pq_number_unique", + "nullsNotDistinct": false, + "columns": [ + "pq_number" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_pq_criteria_answers": { + "name": "vendor_pq_criteria_answers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "criteria_id": { + "name": "criteria_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "answer": { + "name": "answer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_pq_criteria_answers_vendor_id_vendors_id_fk": { + "name": "vendor_pq_criteria_answers_vendor_id_vendors_id_fk", + "tableFrom": "vendor_pq_criteria_answers", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "vendor_pq_criteria_answers_criteria_id_pq_criterias_id_fk": { + "name": "vendor_pq_criteria_answers_criteria_id_pq_criterias_id_fk", + "tableFrom": "vendor_pq_criteria_answers", + "tableTo": "pq_criterias", + "columnsFrom": [ + "criteria_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "vendor_pq_criteria_answers_project_id_projects_id_fk": { + "name": "vendor_pq_criteria_answers_project_id_projects_id_fk", + "tableFrom": "vendor_pq_criteria_answers", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_pq_review_logs": { + "name": "vendor_pq_review_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_pq_criteria_answer_id": { + "name": "vendor_pq_criteria_answer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "reviewer_comment": { + "name": "reviewer_comment", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "reviewer_name": { + "name": "reviewer_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_pq_review_logs_vendor_pq_criteria_answer_id_vendor_pq_criteria_answers_id_fk": { + "name": "vendor_pq_review_logs_vendor_pq_criteria_answer_id_vendor_pq_criteria_answers_id_fk", + "tableFrom": "vendor_pq_review_logs", + "tableTo": "vendor_pq_criteria_answers", + "columnsFrom": [ + "vendor_pq_criteria_answer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_project_pqs": { + "name": "vendor_project_pqs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'REQUESTED'" + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "approved_at": { + "name": "approved_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "rejected_at": { + "name": "rejected_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reject_reason": { + "name": "reject_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_project_pqs_vendor_id_vendors_id_fk": { + "name": "vendor_project_pqs_vendor_id_vendors_id_fk", + "tableFrom": "vendor_project_pqs", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "vendor_project_pqs_project_id_projects_id_fk": { + "name": "vendor_project_pqs_project_id_projects_id_fk", + "tableFrom": "vendor_project_pqs", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bidding_projects": { + "name": "bidding_projects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "pspid": { + "name": "pspid", + "type": "char(24)", + "primaryKey": false, + "notNull": true + }, + "proj_nm": { + "name": "proj_nm", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "sector": { + "name": "sector", + "type": "char(1)", + "primaryKey": false, + "notNull": false + }, + "proj_msrm": { + "name": "proj_msrm", + "type": "numeric(3, 0)", + "primaryKey": false, + "notNull": false + }, + "kunnr": { + "name": "kunnr", + "type": "char(10)", + "primaryKey": false, + "notNull": false + }, + "kunnr_nm": { + "name": "kunnr_nm", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "cls_1": { + "name": "cls_1", + "type": "char(10)", + "primaryKey": false, + "notNull": false + }, + "cls1_nm": { + "name": "cls1_nm", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ptype": { + "name": "ptype", + "type": "char(3)", + "primaryKey": false, + "notNull": false + }, + "ptype_nm": { + "name": "ptype_nm", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "pmodel_cd": { + "name": "pmodel_cd", + "type": "char(10)", + "primaryKey": false, + "notNull": false + }, + "pmodel_nm": { + "name": "pmodel_nm", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "pmodel_sz": { + "name": "pmodel_sz", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "pmodel_uom": { + "name": "pmodel_uom", + "type": "char(5)", + "primaryKey": false, + "notNull": false + }, + "txt04": { + "name": "txt04", + "type": "char(4)", + "primaryKey": false, + "notNull": false + }, + "txt30": { + "name": "txt30", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "estm_pm": { + "name": "estm_pm", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "pjt_type": { + "name": "pjt_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "bidding_projects_pspid_unique": { + "name": "bidding_projects_pspid_unique", + "nullsNotDistinct": false, + "columns": [ + "pspid" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.project_series": { + "name": "project_series", + "schema": "", + "columns": { + "pspid": { + "name": "pspid", + "type": "char(24)", + "primaryKey": false, + "notNull": true + }, + "sers_no": { + "name": "sers_no", + "type": "char(3)", + "primaryKey": false, + "notNull": true + }, + "sc_dt": { + "name": "sc_dt", + "type": "char(8)", + "primaryKey": false, + "notNull": false + }, + "kl_dt": { + "name": "kl_dt", + "type": "char(8)", + "primaryKey": false, + "notNull": false + }, + "lc_dt": { + "name": "lc_dt", + "type": "char(8)", + "primaryKey": false, + "notNull": false + }, + "dl_dt": { + "name": "dl_dt", + "type": "char(8)", + "primaryKey": false, + "notNull": false + }, + "dock_no": { + "name": "dock_no", + "type": "char(3)", + "primaryKey": false, + "notNull": false + }, + "dock_nm": { + "name": "dock_nm", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "proj_no": { + "name": "proj_no", + "type": "char(24)", + "primaryKey": false, + "notNull": false + }, + "post1": { + "name": "post1", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "project_sersNo_unique": { + "name": "project_sersNo_unique", + "columns": [ + { + "expression": "pspid", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "sers_no", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "project_series_pspid_bidding_projects_pspid_fk": { + "name": "project_series_pspid_bidding_projects_pspid_fk", + "tableFrom": "project_series", + "tableTo": "bidding_projects", + "columnsFrom": [ + "pspid" + ], + "columnsTo": [ + "pspid" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.projects": { + "name": "projects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'ship'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.cbe_evaluations": { + "name": "cbe_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluated_by": { + "name": "evaluated_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluated_at": { + "name": "evaluated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "result": { + "name": "result", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "total_cost": { + "name": "total_cost", + "type": "numeric(18, 2)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'USD'" + }, + "payment_terms": { + "name": "payment_terms", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "incoterms": { + "name": "incoterms", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "delivery_schedule": { + "name": "delivery_schedule", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "cbe_evaluations_rfq_id_rfqs_id_fk": { + "name": "cbe_evaluations_rfq_id_rfqs_id_fk", + "tableFrom": "cbe_evaluations", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "cbe_evaluations_vendor_id_vendors_id_fk": { + "name": "cbe_evaluations_vendor_id_vendors_id_fk", + "tableFrom": "cbe_evaluations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "cbe_evaluations_evaluated_by_users_id_fk": { + "name": "cbe_evaluations_evaluated_by_users_id_fk", + "tableFrom": "cbe_evaluations", + "tableTo": "users", + "columnsFrom": [ + "evaluated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfq_attachments": { + "name": "rfq_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "evaluation_id": { + "name": "evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cbe_id": { + "name": "cbe_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "comment_id": { + "name": "comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "rfq_attachments_rfq_id_rfqs_id_fk": { + "name": "rfq_attachments_rfq_id_rfqs_id_fk", + "tableFrom": "rfq_attachments", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_attachments_vendor_id_vendors_id_fk": { + "name": "rfq_attachments_vendor_id_vendors_id_fk", + "tableFrom": "rfq_attachments", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_attachments_evaluation_id_rfq_evaluations_id_fk": { + "name": "rfq_attachments_evaluation_id_rfq_evaluations_id_fk", + "tableFrom": "rfq_attachments", + "tableTo": "rfq_evaluations", + "columnsFrom": [ + "evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_attachments_cbe_id_cbe_evaluations_id_fk": { + "name": "rfq_attachments_cbe_id_cbe_evaluations_id_fk", + "tableFrom": "rfq_attachments", + "tableTo": "cbe_evaluations", + "columnsFrom": [ + "cbe_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_attachments_comment_id_rfq_comments_id_fk": { + "name": "rfq_attachments_comment_id_rfq_comments_id_fk", + "tableFrom": "rfq_attachments", + "tableTo": "rfq_comments", + "columnsFrom": [ + "comment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfq_comments": { + "name": "rfq_comments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "comment_text": { + "name": "comment_text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "commented_by": { + "name": "commented_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_id": { + "name": "evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cbe_id": { + "name": "cbe_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rfq_comments_rfq_id_rfqs_id_fk": { + "name": "rfq_comments_rfq_id_rfqs_id_fk", + "tableFrom": "rfq_comments", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_comments_vendor_id_vendors_id_fk": { + "name": "rfq_comments_vendor_id_vendors_id_fk", + "tableFrom": "rfq_comments", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_comments_commented_by_users_id_fk": { + "name": "rfq_comments_commented_by_users_id_fk", + "tableFrom": "rfq_comments", + "tableTo": "users", + "columnsFrom": [ + "commented_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_comments_evaluation_id_rfq_evaluations_id_fk": { + "name": "rfq_comments_evaluation_id_rfq_evaluations_id_fk", + "tableFrom": "rfq_comments", + "tableTo": "rfq_evaluations", + "columnsFrom": [ + "evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_comments_cbe_id_vendor_responses_id_fk": { + "name": "rfq_comments_cbe_id_vendor_responses_id_fk", + "tableFrom": "rfq_comments", + "tableTo": "vendor_responses", + "columnsFrom": [ + "cbe_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfq_evaluations": { + "name": "rfq_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "eval_type": { + "name": "eval_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "result": { + "name": "result", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rfq_evaluations_rfq_id_rfqs_id_fk": { + "name": "rfq_evaluations_rfq_id_rfqs_id_fk", + "tableFrom": "rfq_evaluations", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "rfq_evaluations_vendor_id_vendors_id_fk": { + "name": "rfq_evaluations_vendor_id_vendors_id_fk", + "tableFrom": "rfq_evaluations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfq_items": { + "name": "rfq_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "uom": { + "name": "uom", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rfq_items_rfq_id_rfqs_id_fk": { + "name": "rfq_items_rfq_id_rfqs_id_fk", + "tableFrom": "rfq_items", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "rfq_items_item_code_items_item_code_fk": { + "name": "rfq_items_item_code_items_item_code_fk", + "tableFrom": "rfq_items", + "tableTo": "items", + "columnsFrom": [ + "item_code" + ], + "columnsTo": [ + "item_code" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfqs": { + "name": "rfqs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "bid_project_id": { + "name": "bid_project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'DRAFT'" + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false, + "default": "'PURCHASE'" + }, + "parent_rfq_id": { + "name": "parent_rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rfqs_project_id_projects_id_fk": { + "name": "rfqs_project_id_projects_id_fk", + "tableFrom": "rfqs", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "rfqs_bid_project_id_bidding_projects_id_fk": { + "name": "rfqs_bid_project_id_bidding_projects_id_fk", + "tableFrom": "rfqs", + "tableTo": "bidding_projects", + "columnsFrom": [ + "bid_project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "rfqs_created_by_users_id_fk": { + "name": "rfqs_created_by_users_id_fk", + "tableFrom": "rfqs", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "rfqs_parent_rfq_id_rfqs_id_fk": { + "name": "rfqs_parent_rfq_id_rfqs_id_fk", + "tableFrom": "rfqs", + "tableTo": "rfqs", + "columnsFrom": [ + "parent_rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "rfqs_rfq_code_unique": { + "name": "rfqs_rfq_code_unique", + "nullsNotDistinct": false, + "columns": [ + "rfq_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_commercial_responses": { + "name": "vendor_commercial_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "response_id": { + "name": "response_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "total_price": { + "name": "total_price", + "type": "numeric(18, 2)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'USD'" + }, + "payment_terms": { + "name": "payment_terms", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "incoterms": { + "name": "incoterms", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "delivery_period": { + "name": "delivery_period", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "warranty_period": { + "name": "warranty_period", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "validity_period": { + "name": "validity_period", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "price_breakdown": { + "name": "price_breakdown", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "commercial_notes": { + "name": "commercial_notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_commercial_responses_response_id_vendor_responses_id_fk": { + "name": "vendor_commercial_responses_response_id_vendor_responses_id_fk", + "tableFrom": "vendor_commercial_responses", + "tableTo": "vendor_responses", + "columnsFrom": [ + "response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_response_attachments": { + "name": "vendor_response_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "response_id": { + "name": "response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "technical_response_id": { + "name": "technical_response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "commercial_response_id": { + "name": "commercial_response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_response_attachments_response_id_vendor_responses_id_fk": { + "name": "vendor_response_attachments_response_id_vendor_responses_id_fk", + "tableFrom": "vendor_response_attachments", + "tableTo": "vendor_responses", + "columnsFrom": [ + "response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_response_attachments_technical_response_id_vendor_technical_responses_id_fk": { + "name": "vendor_response_attachments_technical_response_id_vendor_technical_responses_id_fk", + "tableFrom": "vendor_response_attachments", + "tableTo": "vendor_technical_responses", + "columnsFrom": [ + "technical_response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_response_attachments_commercial_response_id_vendor_commercial_responses_id_fk": { + "name": "vendor_response_attachments_commercial_response_id_vendor_commercial_responses_id_fk", + "tableFrom": "vendor_response_attachments", + "tableTo": "vendor_commercial_responses", + "columnsFrom": [ + "commercial_response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_responses": { + "name": "vendor_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'REVIEWING'" + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "responded_by": { + "name": "responded_by", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "responded_at": { + "name": "responded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "vendor_response_unique": { + "name": "vendor_response_unique", + "columns": [ + { + "expression": "rfq_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "vendor_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "vendor_responses_rfq_id_rfqs_id_fk": { + "name": "vendor_responses_rfq_id_rfqs_id_fk", + "tableFrom": "vendor_responses", + "tableTo": "rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_responses_vendor_id_vendors_id_fk": { + "name": "vendor_responses_vendor_id_vendors_id_fk", + "tableFrom": "vendor_responses", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_technical_responses": { + "name": "vendor_technical_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "response_id": { + "name": "response_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "summary": { + "name": "summary", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_technical_responses_response_id_vendor_responses_id_fk": { + "name": "vendor_technical_responses_response_id_vendor_responses_id_fk", + "tableFrom": "vendor_technical_responses", + "tableTo": "vendor_responses", + "columnsFrom": [ + "response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.departments": { + "name": "departments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "department_code": { + "name": "department_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "department_name": { + "name": "department_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "departments_department_code_unique": { + "name": "departments_department_code_unique", + "nullsNotDistinct": false, + "columns": [ + "department_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.login_attempts": { + "name": "login_attempts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "login_attempts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "success": { + "name": "success", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "ip_address": { + "name": "ip_address", + "type": "varchar(45)", + "primaryKey": false, + "notNull": true + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "failure_reason": { + "name": "failure_reason", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "attempted_at": { + "name": "attempted_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "country": { + "name": "country", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "city": { + "name": "city", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "login_attempts_email_idx": { + "name": "login_attempts_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "login_attempts_attempted_at_idx": { + "name": "login_attempts_attempted_at_idx", + "columns": [ + { + "expression": "attempted_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "login_attempts_ip_address_idx": { + "name": "login_attempts_ip_address_idx", + "columns": [ + { + "expression": "ip_address", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "login_attempts_user_id_users_id_fk": { + "name": "login_attempts_user_id_users_id_fk", + "tableFrom": "login_attempts", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.mfa_tokens": { + "name": "mfa_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "mfa_tokens_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "used_at": { + "name": "used_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "phone_number": { + "name": "phone_number", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "attempts": { + "name": "attempts", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + } + }, + "indexes": { + "mfa_tokens_user_id_idx": { + "name": "mfa_tokens_user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "mfa_tokens_token_idx": { + "name": "mfa_tokens_token_idx", + "columns": [ + { + "expression": "token", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "mfa_tokens_expires_at_idx": { + "name": "mfa_tokens_expires_at_idx", + "columns": [ + { + "expression": "expires_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "mfa_tokens_user_id_users_id_fk": { + "name": "mfa_tokens_user_id_users_id_fk", + "tableFrom": "mfa_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.otps": { + "name": "otps", + "schema": "", + "columns": { + "email": { + "name": "email", + "type": "varchar(256)", + "primaryKey": true, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(6)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "otpToken": { + "name": "otpToken", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "otp_expires": { + "name": "otp_expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.password_history": { + "name": "password_history", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "password_history_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "password_hash": { + "name": "password_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "salt": { + "name": "salt", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "replaced_at": { + "name": "replaced_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "password_history_user_id_idx": { + "name": "password_history_user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "password_history_created_at_idx": { + "name": "password_history_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "password_history_user_id_users_id_fk": { + "name": "password_history_user_id_users_id_fk", + "tableFrom": "password_history", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.passwords": { + "name": "passwords", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "passwords_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "password_hash": { + "name": "password_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "salt": { + "name": "salt", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "strength": { + "name": "strength", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "has_uppercase": { + "name": "has_uppercase", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "has_lowercase": { + "name": "has_lowercase", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "has_numbers": { + "name": "has_numbers", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "has_symbols": { + "name": "has_symbols", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "length": { + "name": "length", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "passwords_user_id_idx": { + "name": "passwords_user_id_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "passwords_active_idx": { + "name": "passwords_active_idx", + "columns": [ + { + "expression": "is_active", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "passwords_user_id_users_id_fk": { + "name": "passwords_user_id_users_id_fk", + "tableFrom": "passwords", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.permissions": { + "name": "permissions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "permissions_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "permission_key": { + "name": "permission_key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.role_permissions": { + "name": "role_permissions", + "schema": "", + "columns": { + "role_id": { + "name": "role_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "permission_id": { + "name": "permission_id", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "role_permissions_role_id_roles_id_fk": { + "name": "role_permissions_role_id_roles_id_fk", + "tableFrom": "role_permissions", + "tableTo": "roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "role_permissions_permission_id_permissions_id_fk": { + "name": "role_permissions_permission_id_permissions_id_fk", + "tableFrom": "role_permissions", + "tableTo": "permissions", + "columnsFrom": [ + "permission_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.roles": { + "name": "roles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "roles_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "domain": { + "name": "domain", + "type": "user_domain", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "company_id": { + "name": "company_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "roles_company_id_vendors_id_fk": { + "name": "roles_company_id_vendors_id_fk", + "tableFrom": "roles", + "tableTo": "vendors", + "columnsFrom": [ + "company_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.security_settings": { + "name": "security_settings", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "security_settings_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "min_password_length": { + "name": "min_password_length", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 8 + }, + "require_uppercase": { + "name": "require_uppercase", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "require_lowercase": { + "name": "require_lowercase", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "require_numbers": { + "name": "require_numbers", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "require_symbols": { + "name": "require_symbols", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "password_expiry_days": { + "name": "password_expiry_days", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 90 + }, + "password_history_count": { + "name": "password_history_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 5 + }, + "max_failed_attempts": { + "name": "max_failed_attempts", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 5 + }, + "lockout_duration_minutes": { + "name": "lockout_duration_minutes", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 30 + }, + "require_mfa_for_partners": { + "name": "require_mfa_for_partners", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "sms_token_expiry_minutes": { + "name": "sms_token_expiry_minutes", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 5 + }, + "max_sms_attempts_per_day": { + "name": "max_sms_attempts_per_day", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 10 + }, + "session_timeout_minutes": { + "name": "session_timeout_minutes", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 480 + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_roles": { + "name": "user_roles", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "role_id": { + "name": "role_id", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "user_roles_user_id_users_id_fk": { + "name": "user_roles_user_id_users_id_fk", + "tableFrom": "user_roles", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "user_roles_role_id_roles_id_fk": { + "name": "user_roles_role_id_roles_id_fk", + "tableFrom": "user_roles", + "tableTo": "roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "users_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "deptName": { + "name": "deptName", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "company_id": { + "name": "company_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tech_company_id": { + "name": "tech_company_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "domain": { + "name": "domain", + "type": "user_domain", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'partners'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "image_url": { + "name": "image_url", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false + }, + "language": { + "name": "language", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'en'" + }, + "phone": { + "name": "phone", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "mfa_enabled": { + "name": "mfa_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "mfa_secret": { + "name": "mfa_secret", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "is_locked": { + "name": "is_locked", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "lockout_until": { + "name": "lockout_until", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "failed_login_attempts": { + "name": "failed_login_attempts", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "last_login_at": { + "name": "last_login_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "password_change_required": { + "name": "password_change_required", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "deactivated_at": { + "name": "deactivated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "deactivation_reason": { + "name": "deactivation_reason", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_email_idx": { + "name": "users_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_phone_idx": { + "name": "users_phone_idx", + "columns": [ + { + "expression": "phone", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_company_id_vendors_id_fk": { + "name": "users_company_id_vendors_id_fk", + "tableFrom": "users", + "tableTo": "vendors", + "columnsFrom": [ + "company_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "users_tech_company_id_tech_vendors_id_fk": { + "name": "users_tech_company_id_tech_vendors_id_fk", + "tableFrom": "users", + "tableTo": "tech_vendors", + "columnsFrom": [ + "tech_company_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "users_email_unique": { + "name": "users_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.form_entries": { + "name": "form_entries", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "form_code": { + "name": "form_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "data": { + "name": "data", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "contract_item_id": { + "name": "contract_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "form_entries_contract_item_id_contract_items_id_fk": { + "name": "form_entries_contract_item_id_contract_items_id_fk", + "tableFrom": "form_entries", + "tableTo": "contract_items", + "columnsFrom": [ + "contract_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.form_metas": { + "name": "form_metas", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "form_code": { + "name": "form_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "form_name": { + "name": "form_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "columns": { + "name": "columns", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "form_metas_project_id_projects_id_fk": { + "name": "form_metas_project_id_projects_id_fk", + "tableFrom": "form_metas", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "form_code_project_unique": { + "name": "form_code_project_unique", + "nullsNotDistinct": false, + "columns": [ + "project_id", + "form_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.forms": { + "name": "forms", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "forms_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_item_id": { + "name": "contract_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "form_code": { + "name": "form_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "form_name": { + "name": "form_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "eng": { + "name": "eng", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "im": { + "name": "im", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "contract_item_form_code_unique": { + "name": "contract_item_form_code_unique", + "columns": [ + { + "expression": "contract_item_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "form_code", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "forms_contract_item_id_contract_items_id_fk": { + "name": "forms_contract_item_id_contract_items_id_fk", + "tableFrom": "forms", + "tableTo": "contract_items", + "columnsFrom": [ + "contract_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_class_attributes": { + "name": "tag_class_attributes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "tag_class_attributes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "tag_class_id": { + "name": "tag_class_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "att_id": { + "name": "att_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "def_val": { + "name": "def_val", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "uom_id": { + "name": "uom_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "seq": { + "name": "seq", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "tag_class_attributes_seq_idx": { + "name": "tag_class_attributes_seq_idx", + "columns": [ + { + "expression": "seq", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "tag_class_attributes_tag_class_id_tag_classes_id_fk": { + "name": "tag_class_attributes_tag_class_id_tag_classes_id_fk", + "tableFrom": "tag_class_attributes", + "tableTo": "tag_classes", + "columnsFrom": [ + "tag_class_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_att_id_in_tag_class": { + "name": "uniq_att_id_in_tag_class", + "nullsNotDistinct": false, + "columns": [ + "tag_class_id", + "att_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_classes": { + "name": "tag_classes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "tag_classes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tag_type_code": { + "name": "tag_type_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tag_classes_project_id_projects_id_fk": { + "name": "tag_classes_project_id_projects_id_fk", + "tableFrom": "tag_classes", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tag_classes_tag_type_code_project_id_tag_types_code_project_id_fk": { + "name": "tag_classes_tag_type_code_project_id_tag_types_code_project_id_fk", + "tableFrom": "tag_classes", + "tableTo": "tag_types", + "columnsFrom": [ + "tag_type_code", + "project_id" + ], + "columnsTo": [ + "code", + "project_id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_code_in_project": { + "name": "uniq_code_in_project", + "nullsNotDistinct": false, + "columns": [ + "project_id", + "code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_subfield_options": { + "name": "tag_subfield_options", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "attributes_id": { + "name": "attributes_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tag_subfield_options_project_id_projects_id_fk": { + "name": "tag_subfield_options_project_id_projects_id_fk", + "tableFrom": "tag_subfield_options", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_attribute_project_code": { + "name": "uniq_attribute_project_code", + "nullsNotDistinct": false, + "columns": [ + "project_id", + "attributes_id", + "code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_subfields": { + "name": "tag_subfields", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "tag_type_code": { + "name": "tag_type_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "attributes_id": { + "name": "attributes_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "attributes_description": { + "name": "attributes_description", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expression": { + "name": "expression", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delimiter": { + "name": "delimiter", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "sort_order": { + "name": "sort_order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tag_subfields_project_id_projects_id_fk": { + "name": "tag_subfields_project_id_projects_id_fk", + "tableFrom": "tag_subfields", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_tag_type_attribute": { + "name": "uniq_tag_type_attribute", + "nullsNotDistinct": false, + "columns": [ + "project_id", + "tag_type_code", + "attributes_id" + ] + }, + "uniq_attribute_id_project": { + "name": "uniq_attribute_id_project", + "nullsNotDistinct": false, + "columns": [ + "attributes_id", + "project_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_type_class_form_mappings": { + "name": "tag_type_class_form_mappings", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "tag_type_label": { + "name": "tag_type_label", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "class_label": { + "name": "class_label", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "form_code": { + "name": "form_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "form_name": { + "name": "form_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "ep": { + "name": "ep", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_mapping_in_project": { + "name": "uniq_mapping_in_project", + "nullsNotDistinct": false, + "columns": [ + "project_id", + "tag_type_label", + "class_label", + "form_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag_types": { + "name": "tag_types", + "schema": "", + "columns": { + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tag_types_project_id_projects_id_fk": { + "name": "tag_types_project_id_projects_id_fk", + "tableFrom": "tag_types", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "tag_types_code_project_id_pk": { + "name": "tag_types_code_project_id_pk", + "columns": [ + "code", + "project_id" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tags": { + "name": "tags", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "tags_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_item_id": { + "name": "contract_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "form_id": { + "name": "form_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tag_no": { + "name": "tag_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "tag_type": { + "name": "tag_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "class": { + "name": "class", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tags_contract_item_id_contract_items_id_fk": { + "name": "tags_contract_item_id_contract_items_id_fk", + "tableFrom": "tags", + "tableTo": "contract_items", + "columnsFrom": [ + "contract_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tags_form_id_forms_id_fk": { + "name": "tags_form_id_forms_id_fk", + "tableFrom": "tags", + "tableTo": "forms", + "columnsFrom": [ + "form_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "contract_item_tag_no_unique": { + "name": "contract_item_tag_no_unique", + "nullsNotDistinct": false, + "columns": [ + "contract_item_id", + "tag_no" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.template_items": { + "name": "template_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "form_mapping_id": { + "name": "form_mapping_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "tmpl_id": { + "name": "tmpl_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "tmpl_type": { + "name": "tmpl_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "spr_lst_setup": { + "name": "spr_lst_setup", + "type": "json", + "primaryKey": false, + "notNull": true + }, + "grd_lst_setup": { + "name": "grd_lst_setup", + "type": "json", + "primaryKey": false, + "notNull": true + }, + "spr_itm_lst_setup": { + "name": "spr_itm_lst_setup", + "type": "json", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "template_items_form_mapping_id_tag_type_class_form_mappings_id_fk": { + "name": "template_items_form_mapping_id_tag_type_class_form_mappings_id_fk", + "tableFrom": "template_items", + "tableTo": "tag_type_class_form_mappings", + "columnsFrom": [ + "form_mapping_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "uniq_tmpl_in_form_mapping": { + "name": "uniq_tmpl_in_form_mapping", + "nullsNotDistinct": false, + "columns": [ + "form_mapping_id", + "tmpl_id" + ] + }, + "uniq_name_in_form_mapping": { + "name": "uniq_name_in_form_mapping", + "nullsNotDistinct": false, + "columns": [ + "form_mapping_id", + "name" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_data_report_temps": { + "name": "vendor_data_report_temps", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contract_item_id": { + "name": "contract_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "form_id": { + "name": "form_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_data_report_temps_contract_item_id_contract_items_id_fk": { + "name": "vendor_data_report_temps_contract_item_id_contract_items_id_fk", + "tableFrom": "vendor_data_report_temps", + "tableTo": "contract_items", + "columnsFrom": [ + "contract_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_data_report_temps_form_id_forms_id_fk": { + "name": "vendor_data_report_temps_form_id_forms_id_fk", + "tableFrom": "vendor_data_report_temps", + "tableTo": "forms", + "columnsFrom": [ + "form_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.change_logs": { + "name": "change_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "entity_type": { + "name": "entity_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "entity_id": { + "name": "entity_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "changed_fields": { + "name": "changed_fields", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "old_values": { + "name": "old_values", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "new_values": { + "name": "new_values", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "user_name": { + "name": "user_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "is_synced": { + "name": "is_synced", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "sync_attempts": { + "name": "sync_attempts", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "last_sync_error": { + "name": "last_sync_error", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "synced_at": { + "name": "synced_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "target_systems": { + "name": "target_systems", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + } + }, + "indexes": { + "idx_change_logs_contract_synced": { + "name": "idx_change_logs_contract_synced", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "is_synced", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_change_logs_created_at": { + "name": "idx_change_logs_created_at", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_change_logs_entity": { + "name": "idx_change_logs_entity", + "columns": [ + { + "expression": "entity_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_change_logs_sync_attempts": { + "name": "idx_change_logs_sync_attempts", + "columns": [ + { + "expression": "sync_attempts", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.document_attachments": { + "name": "document_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "document_attachments_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "revision_id": { + "name": "revision_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "upload_id": { + "name": "upload_id", + "type": "varchar(36)", + "primaryKey": false, + "notNull": false + }, + "file_id": { + "name": "file_id", + "type": "varchar(36)", + "primaryKey": false, + "notNull": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "dolce_file_path": { + "name": "dolce_file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "document_attachments_revision_id_revisions_id_fk": { + "name": "document_attachments_revision_id_revisions_id_fk", + "tableFrom": "document_attachments", + "tableTo": "revisions", + "columnsFrom": [ + "revision_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.documents": { + "name": "documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "documents_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "pic": { + "name": "pic", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "doc_number": { + "name": "doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "vendor_doc_number": { + "name": "vendor_doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "issued_date": { + "name": "issued_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "drawing_kind": { + "name": "drawing_kind", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "drawing_move_gbn": { + "name": "drawing_move_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "discipline": { + "name": "discipline", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "external_document_id": { + "name": "external_document_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "external_system_type": { + "name": "external_system_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "external_synced_at": { + "name": "external_synced_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "c_gbn": { + "name": "c_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "d_gbn": { + "name": "d_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "degree_gbn": { + "name": "degree_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "dept_gbn": { + "name": "dept_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "j_gbn": { + "name": "j_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "s_gbn": { + "name": "s_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "shi_drawing_no": { + "name": "shi_drawing_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "manager": { + "name": "manager", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "manager_enm": { + "name": "manager_enm", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "manager_no": { + "name": "manager_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "register_group": { + "name": "register_group", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "register_group_id": { + "name": "register_group_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "create_user_no": { + "name": "create_user_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "create_user_id": { + "name": "create_user_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "create_user_enm": { + "name": "create_user_enm", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "unique_contract_doc_status": { + "name": "unique_contract_doc_status", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "doc_number", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "unique_contract_vendor_doc": { + "name": "unique_contract_vendor_doc", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "vendor_doc_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "where": "\"documents\".\"vendor_doc_number\" IS NOT NULL", + "concurrently": false, + "method": "btree", + "with": {} + }, + "unique_external_doc": { + "name": "unique_external_doc", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "external_document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "external_system_type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "where": "\"documents\".\"external_document_id\" IS NOT NULL", + "concurrently": false, + "method": "btree", + "with": {} + }, + "drawing_kind_idx": { + "name": "drawing_kind_idx", + "columns": [ + { + "expression": "drawing_kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "documents_contract_id_contracts_id_fk": { + "name": "documents_contract_id_contracts_id_fk", + "tableFrom": "documents", + "tableTo": "contracts", + "columnsFrom": [ + "contract_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.issue_stages": { + "name": "issue_stages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "issue_stages_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "document_id": { + "name": "document_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "stage_name": { + "name": "stage_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "plan_date": { + "name": "plan_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "actual_date": { + "name": "actual_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "stage_status": { + "name": "stage_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'PLANNED'" + }, + "stage_order": { + "name": "stage_order", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "priority": { + "name": "priority", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false, + "default": "'MEDIUM'" + }, + "assignee_id": { + "name": "assignee_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "assignee_name": { + "name": "assignee_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "reminder_days": { + "name": "reminder_days", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 3 + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "varchar(1000)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "unique_document_stage": { + "name": "unique_document_stage", + "columns": [ + { + "expression": "document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "stage_name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "document_stage_order": { + "name": "document_stage_order", + "columns": [ + { + "expression": "document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "stage_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "issue_stages_document_id_documents_id_fk": { + "name": "issue_stages_document_id_documents_id_fk", + "tableFrom": "issue_stages", + "tableTo": "documents", + "columnsFrom": [ + "document_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.revisions": { + "name": "revisions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "revisions_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "issue_stage_id": { + "name": "issue_stage_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "revision": { + "name": "revision", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "uploader_type": { + "name": "uploader_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'vendor'" + }, + "uploader_id": { + "name": "uploader_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "uploader_name": { + "name": "uploader_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "usage": { + "name": "usage", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "usage_type": { + "name": "usage_type", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "revision_status": { + "name": "revision_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'SUBMITTED'" + }, + "submitted_date": { + "name": "submitted_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "review_start_date": { + "name": "review_start_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "approved_date": { + "name": "approved_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "rejected_date": { + "name": "rejected_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "reviewer_id": { + "name": "reviewer_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "reviewer_name": { + "name": "reviewer_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "review_comments": { + "name": "review_comments", + "type": "varchar(1000)", + "primaryKey": false, + "notNull": false + }, + "external_upload_id": { + "name": "external_upload_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "register_id": { + "name": "register_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "unique_stage_revision_usage": { + "name": "unique_stage_revision_usage", + "columns": [ + { + "expression": "issue_stage_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "revision", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "usage", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "COALESCE(\"usage_type\", '')", + "asc": true, + "isExpression": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.sync_batches": { + "name": "sync_batches", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "target_system": { + "name": "target_system", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "batch_size": { + "name": "batch_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "started_at": { + "name": "started_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "error_message": { + "name": "error_message", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "retry_count": { + "name": "retry_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "change_log_ids": { + "name": "change_log_ids", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "success_count": { + "name": "success_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "failure_count": { + "name": "failure_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "sync_metadata": { + "name": "sync_metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_sync_batches_contract_system": { + "name": "idx_sync_batches_contract_system", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "target_system", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_sync_batches_status": { + "name": "idx_sync_batches_status", + "columns": [ + { + "expression": "status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_sync_batches_created_at": { + "name": "idx_sync_batches_created_at", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.sync_configs": { + "name": "sync_configs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "target_system": { + "name": "target_system", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "sync_enabled": { + "name": "sync_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "sync_interval_minutes": { + "name": "sync_interval_minutes", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 30 + }, + "last_successful_sync": { + "name": "last_successful_sync", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "last_sync_attempt": { + "name": "last_sync_attempt", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "endpoint_url": { + "name": "endpoint_url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "auth_token": { + "name": "auth_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "api_version": { + "name": "api_version", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false, + "default": "'v1'" + }, + "max_batch_size": { + "name": "max_batch_size", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 100 + }, + "retry_max_attempts": { + "name": "retry_max_attempts", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 3 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_sync_configs_contract_system": { + "name": "idx_sync_configs_contract_system", + "columns": [ + { + "expression": "contract_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "target_system", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "sync_configs_contract_id_contracts_id_fk": { + "name": "sync_configs_contract_id_contracts_id_fk", + "tableFrom": "sync_configs", + "tableTo": "contracts", + "columnsFrom": [ + "contract_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_attachments": { + "name": "vendor_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'GENERAL'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_attachments_vendor_id_vendors_id_fk": { + "name": "vendor_attachments_vendor_id_vendors_id_fk", + "tableFrom": "vendor_attachments", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_candidates": { + "name": "vendor_candidates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "company_name": { + "name": "company_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'COLLECTED'" + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_candidates_vendor_id_vendors_id_fk": { + "name": "vendor_candidates_vendor_id_vendors_id_fk", + "tableFrom": "vendor_candidates", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_contacts": { + "name": "vendor_contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "contact_name": { + "name": "contact_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_position": { + "name": "contact_position", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "is_primary": { + "name": "is_primary", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_contacts_vendor_id_vendors_id_fk": { + "name": "vendor_contacts_vendor_id_vendors_id_fk", + "tableFrom": "vendor_contacts", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_possible_items": { + "name": "vendor_possible_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_possible_items_vendor_id_vendors_id_fk": { + "name": "vendor_possible_items_vendor_id_vendors_id_fk", + "tableFrom": "vendor_possible_items", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendor_possible_items_item_code_items_item_code_fk": { + "name": "vendor_possible_items_item_code_items_item_code_fk", + "tableFrom": "vendor_possible_items", + "tableTo": "items", + "columnsFrom": [ + "item_code" + ], + "columnsTo": [ + "item_code" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_possible_materials": { + "name": "vendor_possible_materials", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_possible_materials_vendor_id_vendors_id_fk": { + "name": "vendor_possible_materials_vendor_id_vendors_id_fk", + "tableFrom": "vendor_possible_materials", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendor_possible_materials_item_code_materials_item_code_fk": { + "name": "vendor_possible_materials_item_code_materials_item_code_fk", + "tableFrom": "vendor_possible_materials", + "tableTo": "materials", + "columnsFrom": [ + "item_code" + ], + "columnsTo": [ + "item_code" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_types": { + "name": "vendor_types", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "name_ko": { + "name": "name_ko", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "name_en": { + "name": "name_en", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "vendor_types_code_unique": { + "name": "vendor_types_code_unique", + "nullsNotDistinct": false, + "columns": [ + "code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendors": { + "name": "vendors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "website": { + "name": "website", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_REVIEW'" + }, + "vendor_type_id": { + "name": "vendor_type_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "representative_name": { + "name": "representative_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_birth": { + "name": "representative_birth", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "representative_email": { + "name": "representative_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_phone": { + "name": "representative_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "representative_work_expirence": { + "name": "representative_work_expirence", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "corporate_registration_number": { + "name": "corporate_registration_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "credit_agency": { + "name": "credit_agency", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "credit_rating": { + "name": "credit_rating", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "cash_flow_rating": { + "name": "cash_flow_rating", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "business_size": { + "name": "business_size", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendors_vendor_type_id_vendor_types_id_fk": { + "name": "vendors_vendor_type_id_vendor_types_id_fk", + "tableFrom": "vendors", + "tableTo": "vendor_types", + "columnsFrom": [ + "vendor_type_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tasks": { + "name": "tasks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "primaryKey": true, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'todo'" + }, + "label": { + "name": "label", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'bug'" + }, + "priority": { + "name": "priority", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'low'" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "current_timestamp" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "tasks_code_unique": { + "name": "tasks_code_unique", + "nullsNotDistinct": false, + "columns": [ + "code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_candidate_logs": { + "name": "vendor_candidate_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_candidate_id": { + "name": "vendor_candidate_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "old_status": { + "name": "old_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "new_status": { + "name": "new_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_candidate_logs_vendor_candidate_id_vendor_candidates_id_fk": { + "name": "vendor_candidate_logs_vendor_candidate_id_vendor_candidates_id_fk", + "tableFrom": "vendor_candidate_logs", + "tableTo": "vendor_candidates", + "columnsFrom": [ + "vendor_candidate_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_candidate_logs_user_id_users_id_fk": { + "name": "vendor_candidate_logs_user_id_users_id_fk", + "tableFrom": "vendor_candidate_logs", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendors_logs": { + "name": "vendors_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "old_status": { + "name": "old_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "new_status": { + "name": "new_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendors_logs_vendor_id_vendors_id_fk": { + "name": "vendors_logs_vendor_id_vendors_id_fk", + "tableFrom": "vendors_logs", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendors_logs_user_id_users_id_fk": { + "name": "vendors_logs_user_id_users_id_fk", + "tableFrom": "vendors_logs", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.basic_contract": { + "name": "basic_contract", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "basic_contract_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "template_id": { + "name": "template_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "requested_by": { + "name": "requested_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "basic_contract_template_id_basic_contract_templates_id_fk": { + "name": "basic_contract_template_id_basic_contract_templates_id_fk", + "tableFrom": "basic_contract", + "tableTo": "basic_contract_templates", + "columnsFrom": [ + "template_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "basic_contract_vendor_id_vendors_id_fk": { + "name": "basic_contract_vendor_id_vendors_id_fk", + "tableFrom": "basic_contract", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "basic_contract_requested_by_users_id_fk": { + "name": "basic_contract_requested_by_users_id_fk", + "tableFrom": "basic_contract", + "tableTo": "users", + "columnsFrom": [ + "requested_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.basic_contract_templates": { + "name": "basic_contract_templates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "basic_contract_templates_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "template_name": { + "name": "template_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "validity_period": { + "name": "validity_period", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.incoterms": { + "name": "incoterms", + "schema": "", + "columns": { + "code": { + "name": "code", + "type": "varchar(20)", + "primaryKey": true, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "incoterms_created_by_users_id_fk": { + "name": "incoterms_created_by_users_id_fk", + "tableFrom": "incoterms", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payment_terms": { + "name": "payment_terms", + "schema": "", + "columns": { + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": true, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "payment_terms_created_by_users_id_fk": { + "name": "payment_terms_created_by_users_id_fk", + "tableFrom": "payment_terms", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pr_items": { + "name": "pr_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "procurement_rfqs_id": { + "name": "procurement_rfqs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_item": { + "name": "rfq_item", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pr_item": { + "name": "pr_item", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pr_no": { + "name": "pr_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "material_code": { + "name": "material_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "material_category": { + "name": "material_category", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "acc": { + "name": "acc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "material_description": { + "name": "material_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "size": { + "name": "size", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "uom": { + "name": "uom", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "gross_weight": { + "name": "gross_weight", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "gw_uom": { + "name": "gw_uom", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "spec_no": { + "name": "spec_no", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "spec_url": { + "name": "spec_url", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "tracking_no": { + "name": "tracking_no", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "major_yn": { + "name": "major_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "project_def": { + "name": "project_def", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_sc": { + "name": "project_sc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_kl": { + "name": "project_kl", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_lc": { + "name": "project_lc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_dl": { + "name": "project_dl", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "pr_items_procurement_rfqs_id_procurement_rfqs_id_fk": { + "name": "pr_items_procurement_rfqs_id_procurement_rfqs_id_fk", + "tableFrom": "pr_items", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "procurement_rfqs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_attachments": { + "name": "procurement_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "procurement_rfqs_id": { + "name": "procurement_rfqs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "procurement_rfq_details_id": { + "name": "procurement_rfq_details_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_attachments_procurement_rfqs_id_procurement_rfqs_id_fk": { + "name": "procurement_attachments_procurement_rfqs_id_procurement_rfqs_id_fk", + "tableFrom": "procurement_attachments", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "procurement_rfqs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_attachments_procurement_rfq_details_id_procurement_rfq_details_id_fk": { + "name": "procurement_attachments_procurement_rfq_details_id_procurement_rfq_details_id_fk", + "tableFrom": "procurement_attachments", + "tableTo": "procurement_rfq_details", + "columnsFrom": [ + "procurement_rfq_details_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_attachments_created_by_users_id_fk": { + "name": "procurement_attachments_created_by_users_id_fk", + "tableFrom": "procurement_attachments", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": { + "attachment_type_check": { + "name": "attachment_type_check", + "value": "\"procurement_attachments\".\"procurement_rfqs_id\" IS NOT NULL OR \"procurement_attachments\".\"procurement_rfq_details_id\" IS NOT NULL" + } + }, + "isRLSEnabled": false + }, + "public.procurement_quotation_items": { + "name": "procurement_quotation_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "quotation_id": { + "name": "quotation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "pr_item_id": { + "name": "pr_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "material_code": { + "name": "material_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "material_description": { + "name": "material_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "uom": { + "name": "uom", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "unit_price": { + "name": "unit_price", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "total_price": { + "name": "total_price", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'USD'" + }, + "vendor_material_code": { + "name": "vendor_material_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_material_description": { + "name": "vendor_material_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "lead_time_in_days": { + "name": "lead_time_in_days", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tax_rate": { + "name": "tax_rate", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "tax_amount": { + "name": "tax_amount", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "discount_rate": { + "name": "discount_rate", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "discount_amount": { + "name": "discount_amount", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_alternative": { + "name": "is_alternative", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "is_recommended": { + "name": "is_recommended", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_quotation_items_quotation_id_procurement_vendor_quotations_id_fk": { + "name": "procurement_quotation_items_quotation_id_procurement_vendor_quotations_id_fk", + "tableFrom": "procurement_quotation_items", + "tableTo": "procurement_vendor_quotations", + "columnsFrom": [ + "quotation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_quotation_items_pr_item_id_pr_items_id_fk": { + "name": "procurement_quotation_items_pr_item_id_pr_items_id_fk", + "tableFrom": "procurement_quotation_items", + "tableTo": "pr_items", + "columnsFrom": [ + "pr_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_rfq_attachments": { + "name": "procurement_rfq_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "comment_id": { + "name": "comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "quotation_id": { + "name": "quotation_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "file_path": { + "name": "file_path", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "is_vendor_upload": { + "name": "is_vendor_upload", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_rfq_attachments_rfq_id_procurement_rfqs_id_fk": { + "name": "procurement_rfq_attachments_rfq_id_procurement_rfqs_id_fk", + "tableFrom": "procurement_rfq_attachments", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_rfq_attachments_comment_id_procurement_rfq_comments_id_fk": { + "name": "procurement_rfq_attachments_comment_id_procurement_rfq_comments_id_fk", + "tableFrom": "procurement_rfq_attachments", + "tableTo": "procurement_rfq_comments", + "columnsFrom": [ + "comment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_rfq_attachments_quotation_id_procurement_vendor_quotations_id_fk": { + "name": "procurement_rfq_attachments_quotation_id_procurement_vendor_quotations_id_fk", + "tableFrom": "procurement_rfq_attachments", + "tableTo": "procurement_vendor_quotations", + "columnsFrom": [ + "quotation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_rfq_attachments_uploaded_by_users_id_fk": { + "name": "procurement_rfq_attachments_uploaded_by_users_id_fk", + "tableFrom": "procurement_rfq_attachments", + "tableTo": "users", + "columnsFrom": [ + "uploaded_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_attachments_vendor_id_vendors_id_fk": { + "name": "procurement_rfq_attachments_vendor_id_vendors_id_fk", + "tableFrom": "procurement_rfq_attachments", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_rfq_comments": { + "name": "procurement_rfq_comments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_vendor_comment": { + "name": "is_vendor_comment", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "is_read": { + "name": "is_read", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "parent_comment_id": { + "name": "parent_comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_rfq_comments_rfq_id_procurement_rfqs_id_fk": { + "name": "procurement_rfq_comments_rfq_id_procurement_rfqs_id_fk", + "tableFrom": "procurement_rfq_comments", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_rfq_comments_vendor_id_vendors_id_fk": { + "name": "procurement_rfq_comments_vendor_id_vendors_id_fk", + "tableFrom": "procurement_rfq_comments", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_comments_user_id_users_id_fk": { + "name": "procurement_rfq_comments_user_id_users_id_fk", + "tableFrom": "procurement_rfq_comments", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_comments_parent_comment_id_procurement_rfq_comments_id_fk": { + "name": "procurement_rfq_comments_parent_comment_id_procurement_rfq_comments_id_fk", + "tableFrom": "procurement_rfq_comments", + "tableTo": "procurement_rfq_comments", + "columnsFrom": [ + "parent_comment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_rfq_details": { + "name": "procurement_rfq_details", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "procurement_rfqs_id": { + "name": "procurement_rfqs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendors_id": { + "name": "vendors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'USD'" + }, + "payment_terms_code": { + "name": "payment_terms_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "incoterms_detail": { + "name": "incoterms_detail", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "tax_code": { + "name": "tax_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "default": "'VV'" + }, + "place_of_shipping": { + "name": "place_of_shipping", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "place_of_destination": { + "name": "place_of_destination", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cancel_reason": { + "name": "cancel_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "material_price_related_yn": { + "name": "material_price_related_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_rfq_details_procurement_rfqs_id_procurement_rfqs_id_fk": { + "name": "procurement_rfq_details_procurement_rfqs_id_procurement_rfqs_id_fk", + "tableFrom": "procurement_rfq_details", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "procurement_rfqs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_details_vendors_id_vendors_id_fk": { + "name": "procurement_rfq_details_vendors_id_vendors_id_fk", + "tableFrom": "procurement_rfq_details", + "tableTo": "vendors", + "columnsFrom": [ + "vendors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_details_payment_terms_code_payment_terms_code_fk": { + "name": "procurement_rfq_details_payment_terms_code_payment_terms_code_fk", + "tableFrom": "procurement_rfq_details", + "tableTo": "payment_terms", + "columnsFrom": [ + "payment_terms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_details_incoterms_code_incoterms_code_fk": { + "name": "procurement_rfq_details_incoterms_code_incoterms_code_fk", + "tableFrom": "procurement_rfq_details", + "tableTo": "incoterms", + "columnsFrom": [ + "incoterms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfq_details_updated_by_users_id_fk": { + "name": "procurement_rfq_details_updated_by_users_id_fk", + "tableFrom": "procurement_rfq_details", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_rfqs": { + "name": "procurement_rfqs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "series": { + "name": "series", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "rfq_send_date": { + "name": "rfq_send_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'RFQ Created'" + }, + "rfq_sealed_yn": { + "name": "rfq_sealed_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "pic_code": { + "name": "pic_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sent_by": { + "name": "sent_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_rfqs_project_id_projects_id_fk": { + "name": "procurement_rfqs_project_id_projects_id_fk", + "tableFrom": "procurement_rfqs", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfqs_sent_by_users_id_fk": { + "name": "procurement_rfqs_sent_by_users_id_fk", + "tableFrom": "procurement_rfqs", + "tableTo": "users", + "columnsFrom": [ + "sent_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfqs_created_by_users_id_fk": { + "name": "procurement_rfqs_created_by_users_id_fk", + "tableFrom": "procurement_rfqs", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_rfqs_updated_by_users_id_fk": { + "name": "procurement_rfqs_updated_by_users_id_fk", + "tableFrom": "procurement_rfqs", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "procurement_rfqs_rfq_code_unique": { + "name": "procurement_rfqs_rfq_code_unique", + "nullsNotDistinct": false, + "columns": [ + "rfq_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.procurement_vendor_quotations": { + "name": "procurement_vendor_quotations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "quotation_code": { + "name": "quotation_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "quotation_version": { + "name": "quotation_version", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "total_items_count": { + "name": "total_items_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "sub_total": { + "name": "sub_total", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "tax_total": { + "name": "tax_total", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "discount_total": { + "name": "discount_total", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "total_price": { + "name": "total_price", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'USD'" + }, + "valid_until": { + "name": "valid_until", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "estimated_delivery_date": { + "name": "estimated_delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "payment_terms_code": { + "name": "payment_terms_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "incoterms_detail": { + "name": "incoterms_detail", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'Draft'" + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rejection_reason": { + "name": "rejection_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "accepted_at": { + "name": "accepted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "procurement_vendor_quotations_rfq_id_procurement_rfqs_id_fk": { + "name": "procurement_vendor_quotations_rfq_id_procurement_rfqs_id_fk", + "tableFrom": "procurement_vendor_quotations", + "tableTo": "procurement_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "procurement_vendor_quotations_vendor_id_vendors_id_fk": { + "name": "procurement_vendor_quotations_vendor_id_vendors_id_fk", + "tableFrom": "procurement_vendor_quotations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_vendor_quotations_payment_terms_code_payment_terms_code_fk": { + "name": "procurement_vendor_quotations_payment_terms_code_payment_terms_code_fk", + "tableFrom": "procurement_vendor_quotations", + "tableTo": "payment_terms", + "columnsFrom": [ + "payment_terms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "procurement_vendor_quotations_incoterms_code_incoterms_code_fk": { + "name": "procurement_vendor_quotations_incoterms_code_incoterms_code_fk", + "tableFrom": "procurement_vendor_quotations", + "tableTo": "incoterms", + "columnsFrom": [ + "incoterms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.preset_shares": { + "name": "preset_shares", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "preset_id": { + "name": "preset_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "shared_with_user_id": { + "name": "shared_with_user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'read'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "preset_shares_preset_id_table_presets_id_fk": { + "name": "preset_shares_preset_id_table_presets_id_fk", + "tableFrom": "preset_shares", + "tableTo": "table_presets", + "columnsFrom": [ + "preset_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.table_presets": { + "name": "table_presets", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "table_id": { + "name": "table_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "settings": { + "name": "settings", + "type": "json", + "primaryKey": false, + "notNull": true + }, + "is_default": { + "name": "is_default", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "is_shared": { + "name": "is_shared", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_by": { + "name": "created_by", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_attachments": { + "name": "tech_sales_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "tech_sales_rfq_id": { + "name": "tech_sales_rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_attachments_tech_sales_rfq_id_tech_sales_rfqs_id_fk": { + "name": "tech_sales_attachments_tech_sales_rfq_id_tech_sales_rfqs_id_fk", + "tableFrom": "tech_sales_attachments", + "tableTo": "tech_sales_rfqs", + "columnsFrom": [ + "tech_sales_rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_attachments_created_by_users_id_fk": { + "name": "tech_sales_attachments_created_by_users_id_fk", + "tableFrom": "tech_sales_attachments", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_rfq_comment_attachments": { + "name": "tech_sales_rfq_comment_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "comment_id": { + "name": "comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "quotation_id": { + "name": "quotation_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "file_path": { + "name": "file_path", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "is_vendor_upload": { + "name": "is_vendor_upload", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_rfq_comment_attachments_rfq_id_tech_sales_rfqs_id_fk": { + "name": "tech_sales_rfq_comment_attachments_rfq_id_tech_sales_rfqs_id_fk", + "tableFrom": "tech_sales_rfq_comment_attachments", + "tableTo": "tech_sales_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_comment_attachments_comment_id_tech_sales_rfq_comments_id_fk": { + "name": "tech_sales_rfq_comment_attachments_comment_id_tech_sales_rfq_comments_id_fk", + "tableFrom": "tech_sales_rfq_comment_attachments", + "tableTo": "tech_sales_rfq_comments", + "columnsFrom": [ + "comment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_comment_attachments_quotation_id_tech_sales_vendor_quotations_id_fk": { + "name": "tech_sales_rfq_comment_attachments_quotation_id_tech_sales_vendor_quotations_id_fk", + "tableFrom": "tech_sales_rfq_comment_attachments", + "tableTo": "tech_sales_vendor_quotations", + "columnsFrom": [ + "quotation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_comment_attachments_uploaded_by_users_id_fk": { + "name": "tech_sales_rfq_comment_attachments_uploaded_by_users_id_fk", + "tableFrom": "tech_sales_rfq_comment_attachments", + "tableTo": "users", + "columnsFrom": [ + "uploaded_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfq_comment_attachments_vendor_id_tech_vendors_id_fk": { + "name": "tech_sales_rfq_comment_attachments_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_sales_rfq_comment_attachments", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_rfq_comments": { + "name": "tech_sales_rfq_comments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_vendor_comment": { + "name": "is_vendor_comment", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "is_read": { + "name": "is_read", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "parent_comment_id": { + "name": "parent_comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_rfq_comments_rfq_id_tech_sales_rfqs_id_fk": { + "name": "tech_sales_rfq_comments_rfq_id_tech_sales_rfqs_id_fk", + "tableFrom": "tech_sales_rfq_comments", + "tableTo": "tech_sales_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_comments_vendor_id_tech_vendors_id_fk": { + "name": "tech_sales_rfq_comments_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_sales_rfq_comments", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfq_comments_user_id_users_id_fk": { + "name": "tech_sales_rfq_comments_user_id_users_id_fk", + "tableFrom": "tech_sales_rfq_comments", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfq_comments_parent_comment_id_tech_sales_rfq_comments_id_fk": { + "name": "tech_sales_rfq_comments_parent_comment_id_tech_sales_rfq_comments_id_fk", + "tableFrom": "tech_sales_rfq_comments", + "tableTo": "tech_sales_rfq_comments", + "columnsFrom": [ + "parent_comment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_rfq_items": { + "name": "tech_sales_rfq_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_shipbuilding_id": { + "name": "item_shipbuilding_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "item_offshore_top_id": { + "name": "item_offshore_top_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "item_offshore_hull_id": { + "name": "item_offshore_hull_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "item_type": { + "name": "item_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_rfq_items_rfq_id_tech_sales_rfqs_id_fk": { + "name": "tech_sales_rfq_items_rfq_id_tech_sales_rfqs_id_fk", + "tableFrom": "tech_sales_rfq_items", + "tableTo": "tech_sales_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_items_item_shipbuilding_id_item_shipbuilding_id_fk": { + "name": "tech_sales_rfq_items_item_shipbuilding_id_item_shipbuilding_id_fk", + "tableFrom": "tech_sales_rfq_items", + "tableTo": "item_shipbuilding", + "columnsFrom": [ + "item_shipbuilding_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_items_item_offshore_top_id_item_offshore_top_id_fk": { + "name": "tech_sales_rfq_items_item_offshore_top_id_item_offshore_top_id_fk", + "tableFrom": "tech_sales_rfq_items", + "tableTo": "item_offshore_top", + "columnsFrom": [ + "item_offshore_top_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_rfq_items_item_offshore_hull_id_item_offshore_hull_id_fk": { + "name": "tech_sales_rfq_items_item_offshore_hull_id_item_offshore_hull_id_fk", + "tableFrom": "tech_sales_rfq_items", + "tableTo": "item_offshore_hull", + "columnsFrom": [ + "item_offshore_hull_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_rfqs": { + "name": "tech_sales_rfqs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "bidding_project_id": { + "name": "bidding_project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "material_code": { + "name": "material_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "rfq_send_date": { + "name": "rfq_send_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'RFQ Created'" + }, + "pic_code": { + "name": "pic_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "sent_by": { + "name": "sent_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "cancel_reason": { + "name": "cancel_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'SHIP'" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_rfqs_bidding_project_id_bidding_projects_id_fk": { + "name": "tech_sales_rfqs_bidding_project_id_bidding_projects_id_fk", + "tableFrom": "tech_sales_rfqs", + "tableTo": "bidding_projects", + "columnsFrom": [ + "bidding_project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfqs_sent_by_users_id_fk": { + "name": "tech_sales_rfqs_sent_by_users_id_fk", + "tableFrom": "tech_sales_rfqs", + "tableTo": "users", + "columnsFrom": [ + "sent_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfqs_created_by_users_id_fk": { + "name": "tech_sales_rfqs_created_by_users_id_fk", + "tableFrom": "tech_sales_rfqs", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_rfqs_updated_by_users_id_fk": { + "name": "tech_sales_rfqs_updated_by_users_id_fk", + "tableFrom": "tech_sales_rfqs", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "tech_sales_rfqs_rfq_code_unique": { + "name": "tech_sales_rfqs_rfq_code_unique", + "nullsNotDistinct": false, + "columns": [ + "rfq_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_vendor_quotation_attachments": { + "name": "tech_sales_vendor_quotation_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "quotation_id": { + "name": "quotation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "revision_id": { + "name": "revision_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "file_path": { + "name": "file_path", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "is_vendor_upload": { + "name": "is_vendor_upload", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_vendor_quotation_attachments_quotation_id_tech_sales_vendor_quotations_id_fk": { + "name": "tech_sales_vendor_quotation_attachments_quotation_id_tech_sales_vendor_quotations_id_fk", + "tableFrom": "tech_sales_vendor_quotation_attachments", + "tableTo": "tech_sales_vendor_quotations", + "columnsFrom": [ + "quotation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_vendor_quotation_attachments_uploaded_by_users_id_fk": { + "name": "tech_sales_vendor_quotation_attachments_uploaded_by_users_id_fk", + "tableFrom": "tech_sales_vendor_quotation_attachments", + "tableTo": "users", + "columnsFrom": [ + "uploaded_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "tech_sales_vendor_quotation_attachments_vendor_id_tech_vendors_id_fk": { + "name": "tech_sales_vendor_quotation_attachments_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_sales_vendor_quotation_attachments", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_vendor_quotation_revisions": { + "name": "tech_sales_vendor_quotation_revisions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "quotation_id": { + "name": "quotation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "version": { + "name": "version", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "snapshot": { + "name": "snapshot", + "type": "json", + "primaryKey": false, + "notNull": true + }, + "change_reason": { + "name": "change_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "revision_note": { + "name": "revision_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "revised_by": { + "name": "revised_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "revised_at": { + "name": "revised_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "tech_sales_quotation_revisions_quotation_version_idx": { + "name": "tech_sales_quotation_revisions_quotation_version_idx", + "columns": [ + { + "expression": "quotation_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "version", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "tech_sales_vendor_quotation_revisions_quotation_id_tech_sales_vendor_quotations_id_fk": { + "name": "tech_sales_vendor_quotation_revisions_quotation_id_tech_sales_vendor_quotations_id_fk", + "tableFrom": "tech_sales_vendor_quotation_revisions", + "tableTo": "tech_sales_vendor_quotations", + "columnsFrom": [ + "quotation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_sales_vendor_quotations": { + "name": "tech_sales_vendor_quotations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "quotation_code": { + "name": "quotation_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "quotation_version": { + "name": "quotation_version", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "total_price": { + "name": "total_price", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "valid_until": { + "name": "valid_until", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'Assigned'" + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rejection_reason": { + "name": "rejection_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "accepted_at": { + "name": "accepted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_sales_vendor_quotations_rfq_id_tech_sales_rfqs_id_fk": { + "name": "tech_sales_vendor_quotations_rfq_id_tech_sales_rfqs_id_fk", + "tableFrom": "tech_sales_vendor_quotations", + "tableTo": "tech_sales_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "tech_sales_vendor_quotations_vendor_id_tech_vendors_id_fk": { + "name": "tech_sales_vendor_quotations_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_sales_vendor_quotations", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocr_rotation_attempts": { + "name": "ocr_rotation_attempts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "session_id": { + "name": "session_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "rotation": { + "name": "rotation", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "confidence": { + "name": "confidence", + "type": "numeric(5, 4)", + "primaryKey": false, + "notNull": false + }, + "tables_found": { + "name": "tables_found", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "text_quality": { + "name": "text_quality", + "type": "numeric(5, 4)", + "primaryKey": false, + "notNull": false + }, + "keyword_count": { + "name": "keyword_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "score": { + "name": "score", + "type": "numeric(5, 4)", + "primaryKey": false, + "notNull": false + }, + "extracted_rows_count": { + "name": "extracted_rows_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "ocr_rotation_attempts_session_id_ocr_sessions_id_fk": { + "name": "ocr_rotation_attempts_session_id_ocr_sessions_id_fk", + "tableFrom": "ocr_rotation_attempts", + "tableTo": "ocr_sessions", + "columnsFrom": [ + "session_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocr_rows": { + "name": "ocr_rows", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "table_id": { + "name": "table_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "session_id": { + "name": "session_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "row_index": { + "name": "row_index", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "report_no": { + "name": "report_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "inspection_date": { + "name": "inspection_date", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "no": { + "name": "no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "identification_no": { + "name": "identification_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tag_no": { + "name": "tag_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "joint_no": { + "name": "joint_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "joint_type": { + "name": "joint_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "welding_date": { + "name": "welding_date", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "confidence": { + "name": "confidence", + "type": "numeric(5, 4)", + "primaryKey": false, + "notNull": false + }, + "source_table": { + "name": "source_table", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "source_row": { + "name": "source_row", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_ocr_report_no_unique": { + "name": "idx_ocr_report_no_unique", + "columns": [ + { + "expression": "report_no", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "no", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "tag_no", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "joint_no", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "joint_type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "ocr_rows_table_id_ocr_tables_id_fk": { + "name": "ocr_rows_table_id_ocr_tables_id_fk", + "tableFrom": "ocr_rows", + "tableTo": "ocr_tables", + "columnsFrom": [ + "table_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "ocr_rows_session_id_ocr_sessions_id_fk": { + "name": "ocr_rows_session_id_ocr_sessions_id_fk", + "tableFrom": "ocr_rows", + "tableTo": "ocr_sessions", + "columnsFrom": [ + "session_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "ocr_rows_user_id_users_id_fk": { + "name": "ocr_rows_user_id_users_id_fk", + "tableFrom": "ocr_rows", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocr_sessions": { + "name": "ocr_sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_type": { + "name": "file_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "processing_time": { + "name": "processing_time", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "best_rotation": { + "name": "best_rotation", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "total_tables": { + "name": "total_tables", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "total_rows": { + "name": "total_rows", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "image_enhanced": { + "name": "image_enhanced", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "pdf_converted": { + "name": "pdf_converted", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "success": { + "name": "success", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "error_message": { + "name": "error_message", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "warnings": { + "name": "warnings", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocr_tables": { + "name": "ocr_tables", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "session_id": { + "name": "session_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "table_index": { + "name": "table_index", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "row_count": { + "name": "row_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "ocr_tables_session_id_ocr_sessions_id_fk": { + "name": "ocr_tables_session_id_ocr_sessions_id_fk", + "tableFrom": "ocr_tables", + "tableTo": "ocr_sessions", + "columnsFrom": [ + "session_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.b_rfq_attachment_revisions": { + "name": "b_rfq_attachment_revisions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "revision_no": { + "name": "revision_no", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "revision_comment": { + "name": "revision_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_latest": { + "name": "is_latest", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "latest_revision_idx": { + "name": "latest_revision_idx", + "columns": [ + { + "expression": "attachment_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "is_latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "where": "\"b_rfq_attachment_revisions\".\"is_latest\" = $1", + "concurrently": false, + "method": "btree", + "with": {} + }, + "attachment_revision_idx": { + "name": "attachment_revision_idx", + "columns": [ + { + "expression": "attachment_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "revision_no", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "b_rfq_attachment_revisions_attachment_id_b_rfq_attachments_id_fk": { + "name": "b_rfq_attachment_revisions_attachment_id_b_rfq_attachments_id_fk", + "tableFrom": "b_rfq_attachment_revisions", + "tableTo": "b_rfq_attachments", + "columnsFrom": [ + "attachment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "b_rfq_attachment_revisions_created_by_users_id_fk": { + "name": "b_rfq_attachment_revisions_created_by_users_id_fk", + "tableFrom": "b_rfq_attachment_revisions", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.b_rfqs": { + "name": "b_rfqs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'DRAFT'" + }, + "pic_code": { + "name": "pic_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pic_name": { + "name": "pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "eng_pic_name": { + "name": "eng_pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_company": { + "name": "project_company", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_flag": { + "name": "project_flag", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_site": { + "name": "project_site", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "package_no": { + "name": "package_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "package_name": { + "name": "package_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "b_rfqs_project_id_projects_id_fk": { + "name": "b_rfqs_project_id_projects_id_fk", + "tableFrom": "b_rfqs", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "b_rfqs_created_by_users_id_fk": { + "name": "b_rfqs_created_by_users_id_fk", + "tableFrom": "b_rfqs", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "b_rfqs_updated_by_users_id_fk": { + "name": "b_rfqs_updated_by_users_id_fk", + "tableFrom": "b_rfqs", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "b_rfqs_rfq_code_unique": { + "name": "b_rfqs_rfq_code_unique", + "nullsNotDistinct": false, + "columns": [ + "rfq_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.b_rfq_attachments": { + "name": "b_rfq_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "serial_no": { + "name": "serial_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "current_revision": { + "name": "current_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true, + "default": "'Rev.0'" + }, + "latest_revision_id": { + "name": "latest_revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "b_rfq_attachments_rfq_id_b_rfqs_id_fk": { + "name": "b_rfq_attachments_rfq_id_b_rfqs_id_fk", + "tableFrom": "b_rfq_attachments", + "tableTo": "b_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "b_rfq_attachments_created_by_users_id_fk": { + "name": "b_rfq_attachments_created_by_users_id_fk", + "tableFrom": "b_rfq_attachments", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.final_rfq": { + "name": "final_rfq", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "final_rfq_status": { + "name": "final_rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'DRAFT'" + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "valid_date": { + "name": "valid_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "gtc": { + "name": "gtc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "gtc_valid_date": { + "name": "gtc_valid_date", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "sparepart": { + "name": "sparepart", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "short_list": { + "name": "short_list", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "return_yn": { + "name": "return_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "cp_request_yn": { + "name": "cp_request_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "prject_gtc_yn": { + "name": "prject_gtc_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "return_revision": { + "name": "return_revision", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "payment_terms_code": { + "name": "payment_terms_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "tax_code": { + "name": "tax_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "default": "'VV'" + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "place_of_shipping": { + "name": "place_of_shipping", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "place_of_destination": { + "name": "place_of_destination", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "firsttime_yn": { + "name": "firsttime_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "material_price_related_yn": { + "name": "material_price_related_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor_remark": { + "name": "vendor_remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "final_rfq_rfq_id_b_rfqs_id_fk": { + "name": "final_rfq_rfq_id_b_rfqs_id_fk", + "tableFrom": "final_rfq", + "tableTo": "b_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "final_rfq_vendor_id_vendors_id_fk": { + "name": "final_rfq_vendor_id_vendors_id_fk", + "tableFrom": "final_rfq", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "final_rfq_incoterms_code_incoterms_code_fk": { + "name": "final_rfq_incoterms_code_incoterms_code_fk", + "tableFrom": "final_rfq", + "tableTo": "incoterms", + "columnsFrom": [ + "incoterms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "final_rfq_payment_terms_code_payment_terms_code_fk": { + "name": "final_rfq_payment_terms_code_payment_terms_code_fk", + "tableFrom": "final_rfq", + "tableTo": "payment_terms", + "columnsFrom": [ + "payment_terms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.initial_rfq": { + "name": "initial_rfq", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "initial_rfq_status": { + "name": "initial_rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'DRAFT'" + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "valid_date": { + "name": "valid_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "gtc": { + "name": "gtc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "gtc_valid_date": { + "name": "gtc_valid_date", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "sparepart": { + "name": "sparepart", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "short_list": { + "name": "short_list", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "return_yn": { + "name": "return_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "cp_request_yn": { + "name": "cp_request_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "prject_gtc_yn": { + "name": "prject_gtc_yn", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "return_revision": { + "name": "return_revision", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "rfq_revision": { + "name": "rfq_revision", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "initial_rfq_rfq_id_b_rfqs_id_fk": { + "name": "initial_rfq_rfq_id_b_rfqs_id_fk", + "tableFrom": "initial_rfq", + "tableTo": "b_rfqs", + "columnsFrom": [ + "rfq_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "initial_rfq_vendor_id_vendors_id_fk": { + "name": "initial_rfq_vendor_id_vendors_id_fk", + "tableFrom": "initial_rfq", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "initial_rfq_incoterms_code_incoterms_code_fk": { + "name": "initial_rfq_incoterms_code_incoterms_code_fk", + "tableFrom": "initial_rfq", + "tableTo": "incoterms", + "columnsFrom": [ + "incoterms_code" + ], + "columnsTo": [ + "code" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_attachment_responses": { + "name": "vendor_attachment_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "rfq_record_id": { + "name": "rfq_record_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'NOT_RESPONDED'" + }, + "current_revision": { + "name": "current_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'Rev.0'" + }, + "responded_revision": { + "name": "responded_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "response_comment": { + "name": "response_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor_comment": { + "name": "vendor_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "revision_request_comment": { + "name": "revision_request_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "requested_at": { + "name": "requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "responded_at": { + "name": "responded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "revision_requested_at": { + "name": "revision_requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "vendor_response_idx": { + "name": "vendor_response_idx", + "columns": [ + { + "expression": "attachment_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "vendor_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "rfq_type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "vendor_attachment_responses_attachment_id_b_rfq_attachments_id_fk": { + "name": "vendor_attachment_responses_attachment_id_b_rfq_attachments_id_fk", + "tableFrom": "vendor_attachment_responses", + "tableTo": "b_rfq_attachments", + "columnsFrom": [ + "attachment_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_attachment_responses_vendor_id_vendors_id_fk": { + "name": "vendor_attachment_responses_vendor_id_vendors_id_fk", + "tableFrom": "vendor_attachment_responses", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_attachment_responses_created_by_users_id_fk": { + "name": "vendor_attachment_responses_created_by_users_id_fk", + "tableFrom": "vendor_attachment_responses", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "vendor_attachment_responses_updated_by_users_id_fk": { + "name": "vendor_attachment_responses_updated_by_users_id_fk", + "tableFrom": "vendor_attachment_responses", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_response_attachments_b": { + "name": "vendor_response_attachments_b", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_response_id": { + "name": "vendor_response_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_response_attachments_b_vendor_response_id_vendor_attachment_responses_id_fk": { + "name": "vendor_response_attachments_b_vendor_response_id_vendor_attachment_responses_id_fk", + "tableFrom": "vendor_response_attachments_b", + "tableTo": "vendor_attachment_responses", + "columnsFrom": [ + "vendor_response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_response_attachments_b_uploaded_by_users_id_fk": { + "name": "vendor_response_attachments_b_uploaded_by_users_id_fk", + "tableFrom": "vendor_response_attachments_b", + "tableTo": "users", + "columnsFrom": [ + "uploaded_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_response_history": { + "name": "vendor_response_history", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_response_id": { + "name": "vendor_response_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "previous_status": { + "name": "previous_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "new_status": { + "name": "new_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "action_by": { + "name": "action_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "action_at": { + "name": "action_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_response_history_vendor_response_id_vendor_attachment_responses_id_fk": { + "name": "vendor_response_history_vendor_response_id_vendor_attachment_responses_id_fk", + "tableFrom": "vendor_response_history", + "tableTo": "vendor_attachment_responses", + "columnsFrom": [ + "vendor_response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_response_history_action_by_users_id_fk": { + "name": "vendor_response_history_action_by_users_id_fk", + "tableFrom": "vendor_response_history", + "tableTo": "users", + "columnsFrom": [ + "action_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_vendor_attachments": { + "name": "tech_vendor_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'GENERAL'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_vendor_attachments_vendor_id_tech_vendors_id_fk": { + "name": "tech_vendor_attachments_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_vendor_attachments", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_vendor_candidates": { + "name": "tech_vendor_candidates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "company_name": { + "name": "company_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'COLLECTED'" + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_vendor_candidates_vendor_id_tech_vendors_id_fk": { + "name": "tech_vendor_candidates_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_vendor_candidates", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_vendor_contacts": { + "name": "tech_vendor_contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "contact_name": { + "name": "contact_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_position": { + "name": "contact_position", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "is_primary": { + "name": "is_primary", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_vendor_contacts_vendor_id_tech_vendors_id_fk": { + "name": "tech_vendor_contacts_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_vendor_contacts", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_vendor_possible_items": { + "name": "tech_vendor_possible_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "tech_vendor_possible_items_vendor_id_tech_vendors_id_fk": { + "name": "tech_vendor_possible_items_vendor_id_tech_vendors_id_fk", + "tableFrom": "tech_vendor_possible_items", + "tableTo": "tech_vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tech_vendors": { + "name": "tech_vendors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "country_eng": { + "name": "country_eng", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "country_fab": { + "name": "country_fab", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "agent_name": { + "name": "agent_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "agent_phone": { + "name": "agent_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "agent_email": { + "name": "agent_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "website": { + "name": "website", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "tech_vendor_type": { + "name": "tech_vendor_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "representative_name": { + "name": "representative_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_email": { + "name": "representative_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_phone": { + "name": "representative_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "representative_birth": { + "name": "representative_birth", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.esg_answer_options": { + "name": "esg_answer_options", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "esg_evaluation_item_id": { + "name": "esg_evaluation_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "answer_text": { + "name": "answer_text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "score": { + "name": "score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": true + }, + "order_index": { + "name": "order_index", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "esg_answer_options_esg_evaluation_item_id_esg_evaluation_items_id_fk": { + "name": "esg_answer_options_esg_evaluation_item_id_esg_evaluation_items_id_fk", + "tableFrom": "esg_answer_options", + "tableTo": "esg_evaluation_items", + "columnsFrom": [ + "esg_evaluation_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.esg_evaluation_items": { + "name": "esg_evaluation_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "esg_evaluation_id": { + "name": "esg_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_item": { + "name": "evaluation_item", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "evaluation_item_description": { + "name": "evaluation_item_description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "order_index": { + "name": "order_index", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "esg_evaluation_items_esg_evaluation_id_esg_evaluations_id_fk": { + "name": "esg_evaluation_items_esg_evaluation_id_esg_evaluations_id_fk", + "tableFrom": "esg_evaluation_items", + "tableTo": "esg_evaluations", + "columnsFrom": [ + "esg_evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.esg_evaluation_responses": { + "name": "esg_evaluation_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "submission_id": { + "name": "submission_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "esg_evaluation_item_id": { + "name": "esg_evaluation_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "esg_answer_option_id": { + "name": "esg_answer_option_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "selected_score": { + "name": "selected_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": true + }, + "additional_comments": { + "name": "additional_comments", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "esg_evaluation_responses_submission_id_evaluation_submissions_id_fk": { + "name": "esg_evaluation_responses_submission_id_evaluation_submissions_id_fk", + "tableFrom": "esg_evaluation_responses", + "tableTo": "evaluation_submissions", + "columnsFrom": [ + "submission_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "esg_evaluation_responses_esg_evaluation_item_id_esg_evaluation_items_id_fk": { + "name": "esg_evaluation_responses_esg_evaluation_item_id_esg_evaluation_items_id_fk", + "tableFrom": "esg_evaluation_responses", + "tableTo": "esg_evaluation_items", + "columnsFrom": [ + "esg_evaluation_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "esg_evaluation_responses_esg_answer_option_id_esg_answer_options_id_fk": { + "name": "esg_evaluation_responses_esg_answer_option_id_esg_answer_options_id_fk", + "tableFrom": "esg_evaluation_responses", + "tableTo": "esg_answer_options", + "columnsFrom": [ + "esg_answer_option_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.esg_evaluations": { + "name": "esg_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "serial_number": { + "name": "serial_number", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "inspection_item": { + "name": "inspection_item", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "esg_evaluations_serial_number_unique": { + "name": "esg_evaluations_serial_number_unique", + "nullsNotDistinct": false, + "columns": [ + "serial_number" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.evaluation_submissions": { + "name": "evaluation_submissions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "submission_id": { + "name": "submission_id", + "type": "uuid", + "primaryKey": false, + "notNull": true, + "default": "gen_random_uuid()" + }, + "periodic_evaluation_id": { + "name": "periodic_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "company_id": { + "name": "company_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_year": { + "name": "evaluation_year", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_round": { + "name": "evaluation_round", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "submission_status": { + "name": "submission_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'draft'" + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reviewed_at": { + "name": "reviewed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reviewed_by": { + "name": "reviewed_by", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "review_comments": { + "name": "review_comments", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "average_esg_score": { + "name": "average_esg_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "total_general_items": { + "name": "total_general_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "completed_general_items": { + "name": "completed_general_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "total_esg_items": { + "name": "total_esg_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "completed_esg_items": { + "name": "completed_esg_items", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "evaluation_submissions_periodic_evaluation_id_periodic_evaluations_id_fk": { + "name": "evaluation_submissions_periodic_evaluation_id_periodic_evaluations_id_fk", + "tableFrom": "evaluation_submissions", + "tableTo": "periodic_evaluations", + "columnsFrom": [ + "periodic_evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "evaluation_submissions_company_id_vendors_id_fk": { + "name": "evaluation_submissions_company_id_vendors_id_fk", + "tableFrom": "evaluation_submissions", + "tableTo": "vendors", + "columnsFrom": [ + "company_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "evaluation_submissions_submission_id_unique": { + "name": "evaluation_submissions_submission_id_unique", + "nullsNotDistinct": false, + "columns": [ + "submission_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.general_evaluation_responses": { + "name": "general_evaluation_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "submission_id": { + "name": "submission_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "general_evaluation_id": { + "name": "general_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "response_text": { + "name": "response_text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "has_attachments": { + "name": "has_attachments", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "review_comments": { + "name": "review_comments", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "general_evaluation_responses_submission_id_evaluation_submissions_id_fk": { + "name": "general_evaluation_responses_submission_id_evaluation_submissions_id_fk", + "tableFrom": "general_evaluation_responses", + "tableTo": "evaluation_submissions", + "columnsFrom": [ + "submission_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "general_evaluation_responses_general_evaluation_id_general_evaluations_id_fk": { + "name": "general_evaluation_responses_general_evaluation_id_general_evaluations_id_fk", + "tableFrom": "general_evaluation_responses", + "tableTo": "general_evaluations", + "columnsFrom": [ + "general_evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.general_evaluations": { + "name": "general_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "serial_number": { + "name": "serial_number", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "inspection_item": { + "name": "inspection_item", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "general_evaluations_serial_number_unique": { + "name": "general_evaluations_serial_number_unique", + "nullsNotDistinct": false, + "columns": [ + "serial_number" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendor_evaluation_attachments": { + "name": "vendor_evaluation_attachments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "file_id": { + "name": "file_id", + "type": "uuid", + "primaryKey": false, + "notNull": true, + "default": "gen_random_uuid()" + }, + "submission_id": { + "name": "submission_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "general_evaluation_response_id": { + "name": "general_evaluation_response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "stored_file_name": { + "name": "stored_file_name", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "mime_type": { + "name": "mime_type", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "uploaded_by": { + "name": "uploaded_by", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "vendor_evaluation_attachments_submission_id_evaluation_submissions_id_fk": { + "name": "vendor_evaluation_attachments_submission_id_evaluation_submissions_id_fk", + "tableFrom": "vendor_evaluation_attachments", + "tableTo": "evaluation_submissions", + "columnsFrom": [ + "submission_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "vendor_evaluation_attachments_general_evaluation_response_id_general_evaluation_responses_id_fk": { + "name": "vendor_evaluation_attachments_general_evaluation_response_id_general_evaluation_responses_id_fk", + "tableFrom": "vendor_evaluation_attachments", + "tableTo": "general_evaluation_responses", + "columnsFrom": [ + "general_evaluation_response_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "vendor_evaluation_attachments_file_id_unique": { + "name": "vendor_evaluation_attachments_file_id_unique", + "nullsNotDistinct": false, + "columns": [ + "file_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.evaluation_target_reviewers": { + "name": "evaluation_target_reviewers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_target_id": { + "name": "evaluation_target_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "department_code": { + "name": "department_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "department_name_from": { + "name": "department_name_from", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "reviewer_user_id": { + "name": "reviewer_user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "assigned_at": { + "name": "assigned_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "assigned_by": { + "name": "assigned_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "evaluation_target_reviewers_evaluation_target_id_evaluation_targets_id_fk": { + "name": "evaluation_target_reviewers_evaluation_target_id_evaluation_targets_id_fk", + "tableFrom": "evaluation_target_reviewers", + "tableTo": "evaluation_targets", + "columnsFrom": [ + "evaluation_target_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "evaluation_target_reviewers_reviewer_user_id_users_id_fk": { + "name": "evaluation_target_reviewers_reviewer_user_id_users_id_fk", + "tableFrom": "evaluation_target_reviewers", + "tableTo": "users", + "columnsFrom": [ + "reviewer_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "evaluation_target_reviewers_assigned_by_users_id_fk": { + "name": "evaluation_target_reviewers_assigned_by_users_id_fk", + "tableFrom": "evaluation_target_reviewers", + "tableTo": "users", + "columnsFrom": [ + "assigned_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "unique_target_department": { + "name": "unique_target_department", + "nullsNotDistinct": false, + "columns": [ + "evaluation_target_id", + "department_code" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.evaluation_target_reviews": { + "name": "evaluation_target_reviews", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_target_id": { + "name": "evaluation_target_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "reviewer_user_id": { + "name": "reviewer_user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "department_code": { + "name": "department_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "is_approved": { + "name": "is_approved", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "review_comment": { + "name": "review_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "reviewed_at": { + "name": "reviewed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "evaluation_target_reviews_evaluation_target_id_evaluation_targets_id_fk": { + "name": "evaluation_target_reviews_evaluation_target_id_evaluation_targets_id_fk", + "tableFrom": "evaluation_target_reviews", + "tableTo": "evaluation_targets", + "columnsFrom": [ + "evaluation_target_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "evaluation_target_reviews_reviewer_user_id_users_id_fk": { + "name": "evaluation_target_reviews_reviewer_user_id_users_id_fk", + "tableFrom": "evaluation_target_reviews", + "tableTo": "users", + "columnsFrom": [ + "reviewer_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "unique_target_reviewer": { + "name": "unique_target_reviewer", + "nullsNotDistinct": false, + "columns": [ + "evaluation_target_id", + "reviewer_user_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.evaluation_targets": { + "name": "evaluation_targets", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_year": { + "name": "evaluation_year", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "division": { + "name": "division", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "domestic_foreign": { + "name": "domestic_foreign", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "material_type": { + "name": "material_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "admin_comment": { + "name": "admin_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "admin_user_id": { + "name": "admin_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consolidated_comment": { + "name": "consolidated_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consensus_status": { + "name": "consensus_status", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "confirmed_by": { + "name": "confirmed_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "ld_claim_count": { + "name": "ld_claim_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "ld_claim_amount": { + "name": "ld_claim_amount", + "type": "numeric(15, 2)", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "ld_claim_currency": { + "name": "ld_claim_currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "evaluation_targets_vendor_id_vendors_id_fk": { + "name": "evaluation_targets_vendor_id_vendors_id_fk", + "tableFrom": "evaluation_targets", + "tableTo": "vendors", + "columnsFrom": [ + "vendor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "evaluation_targets_admin_user_id_users_id_fk": { + "name": "evaluation_targets_admin_user_id_users_id_fk", + "tableFrom": "evaluation_targets", + "tableTo": "users", + "columnsFrom": [ + "admin_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "evaluation_targets_confirmed_by_users_id_fk": { + "name": "evaluation_targets_confirmed_by_users_id_fk", + "tableFrom": "evaluation_targets", + "tableTo": "users", + "columnsFrom": [ + "confirmed_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.periodic_evaluations": { + "name": "periodic_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_target_id": { + "name": "evaluation_target_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_period": { + "name": "evaluation_period", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "documents_submitted": { + "name": "documents_submitted", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "submission_date": { + "name": "submission_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "submission_deadline": { + "name": "submission_deadline", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "final_score": { + "name": "final_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_grade": { + "name": "final_grade", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "evaluation_score": { + "name": "evaluation_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "evaluation_grade": { + "name": "evaluation_grade", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_SUBMISSION'" + }, + "review_completed_at": { + "name": "review_completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_at": { + "name": "finalized_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_by": { + "name": "finalized_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluation_note": { + "name": "evaluation_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "periodic_evaluations_evaluation_target_id_evaluation_targets_id_fk": { + "name": "periodic_evaluations_evaluation_target_id_evaluation_targets_id_fk", + "tableFrom": "periodic_evaluations", + "tableTo": "evaluation_targets", + "columnsFrom": [ + "evaluation_target_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "periodic_evaluations_finalized_by_users_id_fk": { + "name": "periodic_evaluations_finalized_by_users_id_fk", + "tableFrom": "periodic_evaluations", + "tableTo": "users", + "columnsFrom": [ + "finalized_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "unique_evaluation_target": { + "name": "unique_evaluation_target", + "nullsNotDistinct": false, + "columns": [ + "evaluation_target_id", + "evaluation_period" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.reviewer_evaluation_details": { + "name": "reviewer_evaluation_details", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "reviewer_evaluation_id": { + "name": "reviewer_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "reg_eval_criteria_details_id": { + "name": "reg_eval_criteria_details_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "score": { + "name": "score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "reviewer_evaluation_details_reviewer_evaluation_id_reviewer_evaluations_id_fk": { + "name": "reviewer_evaluation_details_reviewer_evaluation_id_reviewer_evaluations_id_fk", + "tableFrom": "reviewer_evaluation_details", + "tableTo": "reviewer_evaluations", + "columnsFrom": [ + "reviewer_evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "reviewer_evaluation_details_reg_eval_criteria_details_id_reg_eval_criteria_details_id_fk": { + "name": "reviewer_evaluation_details_reg_eval_criteria_details_id_reg_eval_criteria_details_id_fk", + "tableFrom": "reviewer_evaluation_details", + "tableTo": "reg_eval_criteria_details", + "columnsFrom": [ + "reg_eval_criteria_details_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "unique_reviewer_criteria": { + "name": "unique_reviewer_criteria", + "nullsNotDistinct": false, + "columns": [ + "reviewer_evaluation_id", + "reg_eval_criteria_details_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.reviewer_evaluations": { + "name": "reviewer_evaluations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "periodic_evaluation_id": { + "name": "periodic_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_target_reviewer_id": { + "name": "evaluation_target_reviewer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "is_completed": { + "name": "is_completed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reviewer_comment": { + "name": "reviewer_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "reviewer_evaluations_periodic_evaluation_id_periodic_evaluations_id_fk": { + "name": "reviewer_evaluations_periodic_evaluation_id_periodic_evaluations_id_fk", + "tableFrom": "reviewer_evaluations", + "tableTo": "periodic_evaluations", + "columnsFrom": [ + "periodic_evaluation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "reviewer_evaluations_evaluation_target_reviewer_id_evaluation_target_reviewers_id_fk": { + "name": "reviewer_evaluations_evaluation_target_reviewer_id_evaluation_target_reviewers_id_fk", + "tableFrom": "reviewer_evaluations", + "tableTo": "evaluation_target_reviewers", + "columnsFrom": [ + "evaluation_target_reviewer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "unique_reviewer_evaluation": { + "name": "unique_reviewer_evaluation", + "nullsNotDistinct": false, + "columns": [ + "periodic_evaluation_id", + "evaluation_target_reviewer_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.reg_eval_criteria": { + "name": "reg_eval_criteria", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "category": { + "name": "category", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'quality'" + }, + "category2": { + "name": "category2", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'processScore'" + }, + "item": { + "name": "item", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'quality'" + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "range": { + "name": "range", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_by": { + "name": "updated_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "variable_score_min ": { + "name": "variable_score_min ", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "variable_score_max ": { + "name": "variable_score_max ", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "variable_score_unit ": { + "name": "variable_score_unit ", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "score_type": { + "name": "score_type", + "type": "score_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'fixed'" + } + }, + "indexes": {}, + "foreignKeys": { + "reg_eval_criteria_created_by_users_id_fk": { + "name": "reg_eval_criteria_created_by_users_id_fk", + "tableFrom": "reg_eval_criteria", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "reg_eval_criteria_updated_by_users_id_fk": { + "name": "reg_eval_criteria_updated_by_users_id_fk", + "tableFrom": "reg_eval_criteria", + "tableTo": "users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.reg_eval_criteria_details": { + "name": "reg_eval_criteria_details", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "criteria_id": { + "name": "criteria_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "detail": { + "name": "detail", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "order_index": { + "name": "order_index", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "score_equip_ship": { + "name": "score_equip_ship", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_equip_marine": { + "name": "score_equip_marine", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_bulk_ship": { + "name": "score_bulk_ship", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_bulk_marine": { + "name": "score_bulk_marine", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "reg_eval_criteria_details_criteria_id_reg_eval_criteria_id_fk": { + "name": "reg_eval_criteria_details_criteria_id_reg_eval_criteria_id_fk", + "tableFrom": "reg_eval_criteria_details", + "tableTo": "reg_eval_criteria", + "columnsFrom": [ + "criteria_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.project_gtc_files": { + "name": "project_gtc_files", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": true + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "project_gtc_files_project_id_projects_id_fk": { + "name": "project_gtc_files_project_id_projects_id_fk", + "tableFrom": "project_gtc_files", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu_assignments": { + "name": "menu_assignments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "menu_assignments_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "menu_path": { + "name": "menu_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "menu_title": { + "name": "menu_title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "menu_description": { + "name": "menu_description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "menu_group": { + "name": "menu_group", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "section_title": { + "name": "section_title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "domain": { + "name": "domain", + "type": "user_domain", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'evcp'" + }, + "manager1_id": { + "name": "manager1_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "manager2_id": { + "name": "manager2_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "menu_assignments_path_idx": { + "name": "menu_assignments_path_idx", + "columns": [ + { + "expression": "menu_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_assignments_manager1_idx": { + "name": "menu_assignments_manager1_idx", + "columns": [ + { + "expression": "manager1_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_assignments_manager2_idx": { + "name": "menu_assignments_manager2_idx", + "columns": [ + { + "expression": "manager2_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_assignments_domain_idx": { + "name": "menu_assignments_domain_idx", + "columns": [ + { + "expression": "domain", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "menu_assignments_manager1_id_users_id_fk": { + "name": "menu_assignments_manager1_id_users_id_fk", + "tableFrom": "menu_assignments", + "tableTo": "users", + "columnsFrom": [ + "manager1_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "menu_assignments_manager2_id_users_id_fk": { + "name": "menu_assignments_manager2_id_users_id_fk", + "tableFrom": "menu_assignments", + "tableTo": "users", + "columnsFrom": [ + "manager2_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "menu_assignments_menu_path_unique": { + "name": "menu_assignments_menu_path_unique", + "nullsNotDistinct": false, + "columns": [ + "menu_path" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.page_information": { + "name": "page_information", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "page_path": { + "name": "page_path", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "page_name": { + "name": "page_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "information_content": { + "name": "information_content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "attachment_file_name": { + "name": "attachment_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "attachment_file_path": { + "name": "attachment_file_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false + }, + "attachment_file_size": { + "name": "attachment_file_size", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "page_information_page_path_unique": { + "name": "page_information_page_path_unique", + "nullsNotDistinct": false, + "columns": [ + "page_path" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.qna": { + "name": "qna", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "qna_category", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "is_deleted": { + "name": "is_deleted", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "idx_qna_author": { + "name": "idx_qna_author", + "columns": [ + { + "expression": "author", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "qna_author_users_id_fk": { + "name": "qna_author_users_id_fk", + "tableFrom": "qna", + "tableTo": "users", + "columnsFrom": [ + "author" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.qna_answer": { + "name": "qna_answer", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "qna_id": { + "name": "qna_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "is_deleted": { + "name": "is_deleted", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "idx_answer_qna": { + "name": "idx_answer_qna", + "columns": [ + { + "expression": "qna_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_answer_author": { + "name": "idx_answer_author", + "columns": [ + { + "expression": "author", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "qna_answer_qna_id_qna_id_fk": { + "name": "qna_answer_qna_id_qna_id_fk", + "tableFrom": "qna_answer", + "tableTo": "qna", + "columnsFrom": [ + "qna_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "qna_answer_author_users_id_fk": { + "name": "qna_answer_author_users_id_fk", + "tableFrom": "qna_answer", + "tableTo": "users", + "columnsFrom": [ + "author" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.qna_comments": { + "name": "qna_comments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "answer_id": { + "name": "answer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_comment_id": { + "name": "parent_comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "is_deleted": { + "name": "is_deleted", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "idx_comment_answer": { + "name": "idx_comment_answer", + "columns": [ + { + "expression": "answer_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_comment_parent": { + "name": "idx_comment_parent", + "columns": [ + { + "expression": "parent_comment_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "qna_comments_author_users_id_fk": { + "name": "qna_comments_author_users_id_fk", + "tableFrom": "qna_comments", + "tableTo": "users", + "columnsFrom": [ + "author" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "qna_comments_answer_id_qna_answer_id_fk": { + "name": "qna_comments_answer_id_qna_answer_id_fk", + "tableFrom": "qna_comments", + "tableTo": "qna_answer", + "columnsFrom": [ + "answer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notice": { + "name": "notice", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "page_path": { + "name": "page_path", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author_id": { + "name": "author_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "notice_author_id_users_id_fk": { + "name": "notice_author_id_users_id_fk", + "tableFrom": "notice", + "tableTo": "users", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.daily_access_stats": { + "name": "daily_access_stats", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "date": { + "name": "date", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "total_visits": { + "name": "total_visits", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "unique_users": { + "name": "unique_users", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "total_sessions": { + "name": "total_sessions", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "avg_session_duration": { + "name": "avg_session_duration", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.login_sessions": { + "name": "login_sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "login_at": { + "name": "login_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "logout_at": { + "name": "logout_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "ip_address": { + "name": "ip_address", + "type": "inet", + "primaryKey": false, + "notNull": true + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "session_token": { + "name": "session_token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "nextauth_session_id": { + "name": "nextauth_session_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "auth_method": { + "name": "auth_method", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "last_activity_at": { + "name": "last_activity_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "session_expired_at": { + "name": "session_expired_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "login_sessions_user_id_users_id_fk": { + "name": "login_sessions_user_id_users_id_fk", + "tableFrom": "login_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "login_sessions_session_token_unique": { + "name": "login_sessions_session_token_unique", + "nullsNotDistinct": false, + "columns": [ + "session_token" + ] + }, + "login_sessions_nextauth_session_id_unique": { + "name": "login_sessions_nextauth_session_id_unique", + "nullsNotDistinct": false, + "columns": [ + "nextauth_session_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.page_visits": { + "name": "page_visits", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "session_id": { + "name": "session_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "route": { + "name": "route", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "page_title": { + "name": "page_title", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "referrer": { + "name": "referrer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ip_address": { + "name": "ip_address", + "type": "inet", + "primaryKey": false, + "notNull": true + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "visited_at": { + "name": "visited_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "duration": { + "name": "duration", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "query_params": { + "name": "query_params", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "device_type": { + "name": "device_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "browser_name": { + "name": "browser_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "os_name": { + "name": "os_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "page_visits_user_id_users_id_fk": { + "name": "page_visits_user_id_users_id_fk", + "tableFrom": "page_visits", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "page_visits_session_id_login_sessions_id_fk": { + "name": "page_visits_session_id_login_sessions_id_fk", + "tableFrom": "page_visits", + "tableTo": "login_sessions", + "columnsFrom": [ + "session_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.temp_auth_sessions": { + "name": "temp_auth_sessions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "temp_auth_key": { + "name": "temp_auth_key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "auth_method": { + "name": "auth_method", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "is_used": { + "name": "is_used", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "temp_auth_sessions_user_id_users_id_fk": { + "name": "temp_auth_sessions_user_id_users_id_fk", + "tableFrom": "temp_auth_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "temp_auth_sessions_temp_auth_key_unique": { + "name": "temp_auth_sessions_temp_auth_key_unique", + "nullsNotDistinct": false, + "columns": [ + "temp_auth_key" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER": { + "name": "CUSTOMER_MASTER_BP_HEADER", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "CUSTOMER_MASTER_BP_HEADER_BP_HEADER_unique": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_HEADER_unique", + "nullsNotDistinct": false, + "columns": [ + "BP_HEADER" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ADDRNO": { + "name": "ADDRNO", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CONSNUMBER": { + "name": "CONSNUMBER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "DATE_FROM": { + "name": "DATE_FROM", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "SMTP_ADDR": { + "name": "SMTP_ADDR", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_EMAIL", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CONSNUMBER": { + "name": "CONSNUMBER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "COUNTRY": { + "name": "COUNTRY", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "DATE_FROM": { + "name": "DATE_FROM", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "FAX_EXTENS": { + "name": "FAX_EXTENS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "FAX_NUMBER": { + "name": "FAX_NUMBER", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_FAX", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CITY1": { + "name": "CITY1", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "CITY2": { + "name": "CITY2", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "COUNTRY": { + "name": "COUNTRY", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "HOUSE_NUM1": { + "name": "HOUSE_NUM1", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LANGU": { + "name": "LANGU", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "NAME1": { + "name": "NAME1", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "NAME2": { + "name": "NAME2", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "NAME3": { + "name": "NAME3", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "NAME4": { + "name": "NAME4", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "NATION": { + "name": "NATION", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "POST_CODE1": { + "name": "POST_CODE1", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "POST_CODE2": { + "name": "POST_CODE2", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "PO_BOX": { + "name": "PO_BOX", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "REGION": { + "name": "REGION", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "SORT1": { + "name": "SORT1", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "SORT2": { + "name": "SORT2", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "STREET": { + "name": "STREET", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "TAXJURCODE": { + "name": "TAXJURCODE", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "TIME_ZONE": { + "name": "TIME_ZONE", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "TITLE": { + "name": "TITLE", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "TRANSPZONE": { + "name": "TRANSPZONE", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_POSTAL", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CONSNUMBER": { + "name": "CONSNUMBER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "COUNTRY": { + "name": "COUNTRY", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "DATE_FROM": { + "name": "DATE_FROM", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "R3_USER": { + "name": "R3_USER", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "TEL_EXTENS": { + "name": "TEL_EXTENS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "TEL_NUMBER": { + "name": "TEL_NUMBER", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_TEL", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CONSNUMBER": { + "name": "CONSNUMBER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "DATE_FROM": { + "name": "DATE_FROM", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "URI_ADDR": { + "name": "URI_ADDR", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_ADDRESS_AD_URL", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ANRED": { + "name": "ANRED", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "AUFSD": { + "name": "AUFSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "FAKSD": { + "name": "FAKSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "GFORM": { + "name": "GFORM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "JMJAH": { + "name": "JMJAH", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "JMZAH": { + "name": "JMZAH", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "J_1KFREPRE": { + "name": "J_1KFREPRE", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "J_1KFTBUS": { + "name": "J_1KFTBUS", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "J_1KFTIND": { + "name": "J_1KFTIND", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "KATR1": { + "name": "KATR1", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KDKG1": { + "name": "KDKG1", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KTOKD": { + "name": "KTOKD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KUNNR": { + "name": "KUNNR", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "LIFNR": { + "name": "LIFNR", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LIFSD": { + "name": "LIFSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LOEVM": { + "name": "LOEVM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "NIELS": { + "name": "NIELS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "NODEL": { + "name": "NODEL", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "PUGRP": { + "name": "PUGRP", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "SPERR": { + "name": "SPERR", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "STCD1": { + "name": "STCD1", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "STCD2": { + "name": "STCD2", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "STCD3": { + "name": "STCD3", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "STCD4": { + "name": "STCD4", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "STCEG": { + "name": "STCEG", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "UMJAH": { + "name": "UMJAH", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "UWAER": { + "name": "UWAER", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "VBUND": { + "name": "VBUND", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZAPPDT_C": { + "name": "ZZAPPDT_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZAPPTM_C": { + "name": "ZZAPPTM_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZAPPUS_C": { + "name": "ZZAPPUS_C", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZBA": { + "name": "ZZBA", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZBRSCH_C": { + "name": "ZZBRSCH_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZCRMCD": { + "name": "ZZCRMCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKAR_C": { + "name": "ZZDOKAR_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZDOKNR_C": { + "name": "ZZDOKNR_C", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKTL_C": { + "name": "ZZDOKTL_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZDOKVR_C": { + "name": "ZZDOKVR_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZDUNS": { + "name": "ZZDUNS", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "ZZFTBU": { + "name": "ZZFTBU", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZFTBUNM": { + "name": "ZZFTBUNM", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZFTDT": { + "name": "ZZFTDT", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZFTDTNM": { + "name": "ZZFTDTNM", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZFTGT": { + "name": "ZZFTGT", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZFTGTNM": { + "name": "ZZFTGTNM", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZINBFLGC": { + "name": "ZZINBFLGC", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT_C": { + "name": "ZZLAMDT_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM_C": { + "name": "ZZLAMTM_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS_C": { + "name": "ZZLAMUS_C", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZORT01_C": { + "name": "ZZORT01_C", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "ZZORT02_C": { + "name": "ZZORT02_C", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "ZZREASON": { + "name": "ZZREASON", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT_C": { + "name": "ZZREGDT_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM_C": { + "name": "ZZREGTM_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS_C": { + "name": "ZZREGUS_C", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZSTCDT_C": { + "name": "ZZSTCDT_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZZSTRAS_C": { + "name": "ZZSTRAS_C", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "ZZSUBSEQ_C": { + "name": "ZZSUBSEQ_C", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "AKONT": { + "name": "AKONT", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "BUKRS": { + "name": "BUKRS", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "FDGRV": { + "name": "FDGRV", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LOEVM": { + "name": "LOEVM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "SPERR": { + "name": "SPERR", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZAHLS": { + "name": "ZAHLS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZTERM": { + "name": "ZTERM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZUAWA": { + "name": "ZUAWA", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZWELS": { + "name": "ZWELS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZCOMPANY", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "AUFSD": { + "name": "AUFSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "AWAHR": { + "name": "AWAHR", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "BZIRK": { + "name": "BZIRK", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "FAKSD": { + "name": "FAKSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "INCO1": { + "name": "INCO1", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "INCO2": { + "name": "INCO2", + "type": "varchar(28)", + "primaryKey": false, + "notNull": false + }, + "KALKS": { + "name": "KALKS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KDGRP": { + "name": "KDGRP", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KONDA": { + "name": "KONDA", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KTGRD": { + "name": "KTGRD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KURST": { + "name": "KURST", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KZAZU": { + "name": "KZAZU", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LIFSD": { + "name": "LIFSD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LOEVM": { + "name": "LOEVM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "LPRIO": { + "name": "LPRIO", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "PLTYP": { + "name": "PLTYP", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "SPART": { + "name": "SPART", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "VERSG": { + "name": "VERSG", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "VKBUR": { + "name": "VKBUR", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "VKGRP": { + "name": "VKGRP", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "VKORG": { + "name": "VKORG", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "VSBED": { + "name": "VSBED", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "VTWEG": { + "name": "VTWEG", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "VWERK": { + "name": "VWERK", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "WAERS": { + "name": "WAERS", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ZTERM": { + "name": "ZTERM", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEFPA": { + "name": "DEFPA", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "KUNN2": { + "name": "KUNN2", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "PARVW": { + "name": "PARVW", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "PARZA": { + "name": "PARZA", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZSALES_ZCPFN", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ALAND": { + "name": "ALAND", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "TATYP": { + "name": "TATYP", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "TAXKD": { + "name": "TAXKD", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZTAXIND", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LAND1": { + "name": "LAND1", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "STCEG": { + "name": "STCEG", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_CUSGEN_ZVATREG", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM", + "schema": "mdg", + "columns": { + "BP_HEADER": { + "name": "BP_HEADER", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "TAXNUM": { + "name": "TAXNUM", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "TAXTYPE": { + "name": "TAXTYPE", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk": { + "name": "CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM_BP_HEADER_CUSTOMER_MASTER_BP_HEADER_BP_HEADER_fk", + "tableFrom": "CUSTOMER_MASTER_BP_HEADER_BP_TAXNUM", + "tableTo": "CUSTOMER_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "BP_HEADER" + ], + "columnsTo": [ + "BP_HEADER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.DEPARTMENT_CODE_CMCTB_DEPT_MDG": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BICD": { + "name": "BICD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "BIZAREA": { + "name": "BIZAREA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CCCD": { + "name": "CCCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "COMPCD": { + "name": "COMPCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "CORPCD": { + "name": "CORPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "DEPTCD": { + "name": "DEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "DEPTLVL": { + "name": "DEPTLVL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEPTPOSNO": { + "name": "DEPTPOSNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "DHEMPID": { + "name": "DHEMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "GNCD": { + "name": "GNCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "PCCD": { + "name": "PCCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PDEPTCD": { + "name": "PDEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VALIDFROMDT": { + "name": "VALIDFROMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VALIDTODT": { + "name": "VALIDTODT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WERKS": { + "name": "WERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_unique": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_unique", + "nullsNotDistinct": false, + "columns": [ + "DEPTCD" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM", + "schema": "mdg", + "columns": { + "DEPTCD": { + "name": "DEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "COMPNM": { + "name": "COMPNM", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk", + "tableFrom": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_COMPNM", + "tableTo": "DEPARTMENT_CODE_CMCTB_DEPT_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "DEPTCD" + ], + "columnsTo": [ + "DEPTCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM", + "schema": "mdg", + "columns": { + "DEPTCD": { + "name": "DEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CORPNM": { + "name": "CORPNM", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk", + "tableFrom": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_CORPNM", + "tableTo": "DEPARTMENT_CODE_CMCTB_DEPT_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "DEPTCD" + ], + "columnsTo": [ + "DEPTCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM", + "schema": "mdg", + "columns": { + "DEPTCD": { + "name": "DEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEPTNM": { + "name": "DEPTNM", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk": { + "name": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM_DEPTCD_DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTCD_fk", + "tableFrom": "DEPARTMENT_CODE_CMCTB_DEPT_MDG_DEPTNM", + "tableTo": "DEPARTMENT_CODE_CMCTB_DEPT_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "DEPTCD" + ], + "columnsTo": [ + "DEPTCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ADDRCNTRY": { + "name": "ADDRCNTRY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "AEDAT": { + "name": "AEDAT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "AENAM": { + "name": "AENAM", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "AEZET": { + "name": "AEZET", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BICD": { + "name": "BICD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "BIZAREA": { + "name": "BIZAREA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BSCADDR": { + "name": "BSCADDR", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "COMPCD": { + "name": "COMPCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "CORPCD": { + "name": "CORPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "COUNTRYCD": { + "name": "COUNTRYCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CSFROMDT": { + "name": "CSFROMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CSTODT": { + "name": "CSTODT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CTIROLE": { + "name": "CTIROLE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEL": { + "name": "DEL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEPENDDT": { + "name": "DEPENDDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEPTCD": { + "name": "DEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DHJOBGRDCD": { + "name": "DHJOBGRDCD", + "type": "varchar(29)", + "primaryKey": false, + "notNull": false + }, + "DHNAME": { + "name": "DHNAME", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "DHSINGLID": { + "name": "DHSINGLID", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "DISPATCH": { + "name": "DISPATCH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DPSTARTDT": { + "name": "DPSTARTDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DTLADDR": { + "name": "DTLADDR", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "DTLADDR2": { + "name": "DTLADDR2", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "EMAIL": { + "name": "EMAIL", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "EMPADR": { + "name": "EMPADR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "EMPTYPE": { + "name": "EMPTYPE", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "ENGNAME": { + "name": "ENGNAME", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "EPID": { + "name": "EPID", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "ERDAT": { + "name": "ERDAT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ERNAM": { + "name": "ERNAM", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ERZET": { + "name": "ERZET", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FORIGNFLG": { + "name": "FORIGNFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GJOBCD": { + "name": "GJOBCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "GJOBDUTYCD": { + "name": "GJOBDUTYCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "GJOBGRDCD": { + "name": "GJOBGRDCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "GNCD": { + "name": "GNCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "HRMANAGE": { + "name": "HRMANAGE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IDNO": { + "name": "IDNO", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "JOBCD": { + "name": "JOBCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "JOBCLASS": { + "name": "JOBCLASS", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "JOBDUTYCD": { + "name": "JOBDUTYCD", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "JOBGRDCD": { + "name": "JOBGRDCD", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "KTL_EMP": { + "name": "KTL_EMP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LVABSENCE": { + "name": "LVABSENCE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MBPHONE": { + "name": "MBPHONE", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "NAME": { + "name": "NAME", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "OKTL_EMPL": { + "name": "OKTL_EMPL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORGBICD": { + "name": "ORGBICD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "ORGCOMPCD": { + "name": "ORGCOMPCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "ORGCORPCD": { + "name": "ORGCORPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORGDEPTCD": { + "name": "ORGDEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORGPDEPCD": { + "name": "ORGPDEPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PAYPLC": { + "name": "PAYPLC", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PDEPTCD": { + "name": "PDEPTCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PSTLCODE": { + "name": "PSTLCODE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "RETIRE": { + "name": "RETIRE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SEX": { + "name": "SEX", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SINGLEID": { + "name": "SINGLEID", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "SINGLRQ": { + "name": "SINGLRQ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SOCIALID": { + "name": "SOCIALID", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "SOCIALID_DECR": { + "name": "SOCIALID_DECR", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "SOJRNEMP": { + "name": "SOJRNEMP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TELNUM": { + "name": "TELNUM", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "TMPJDIV": { + "name": "TMPJDIV", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "USEDSYS": { + "name": "USEDSYS", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "VALFROMDT": { + "name": "VALFROMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VALTODT": { + "name": "VALTODT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WFREQUIRE": { + "name": "WFREQUIRE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WORKPLC": { + "name": "WORKPLC", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ZPRFLG": { + "name": "ZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZBUKRS": { + "name": "ZZBUKRS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_unique": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_unique", + "nullsNotDistinct": false, + "columns": [ + "EMPID" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GTEXT": { + "name": "GTEXT", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BANM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BINM": { + "name": "BINM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_BINM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "COMPNM": { + "name": "COMPNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COMPNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CORPNM": { + "name": "CORPNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_CORPNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "COUNTRYNM": { + "name": "COUNTRYNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_COUNTRYNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "PCCD": { + "name": "PCCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WERKS": { + "name": "WERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "KTEXT": { + "name": "KTEXT", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "LTEXT": { + "name": "LTEXT", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTCODE_PCCDNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEPTNM": { + "name": "DEPTNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DEPTNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "JOBGRDNM": { + "name": "JOBGRDNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_DHJOBGDNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GJOBDUTYNM": { + "name": "GJOBDUTYNM", + "type": "varchar(21)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBDUTYNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GJOBGRDNM": { + "name": "GJOBGRDNM", + "type": "varchar(21)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ISEXECUT": { + "name": "ISEXECUT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "JOBGRDTYPE": { + "name": "JOBGRDTYPE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBGRDTYPE", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GJOBNM": { + "name": "GJOBNM", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GJOBNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GNNM": { + "name": "GNNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_GNNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "JOBDUTYNM": { + "name": "JOBDUTYNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBDUTYNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ISEXECUT": { + "name": "ISEXECUT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "JOBGRDNM": { + "name": "JOBGRDNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "JOBGRDTYPE": { + "name": "JOBGRDTYPE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBGRDNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "JOBNM": { + "name": "JOBNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_JOBNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LTEXT": { + "name": "LTEXT", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_KTLNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LTEXT": { + "name": "LTEXT", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_OKTLNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BINM": { + "name": "BINM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGBICDNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "COMPNM": { + "name": "COMPNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCOMPNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CORPNM": { + "name": "CORPNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGCORPNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEPTNM": { + "name": "DEPTNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGDEPTNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEPTNM": { + "name": "DEPTNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_ORGPDEPNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM", + "schema": "mdg", + "columns": { + "EMPID": { + "name": "EMPID", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DEPTNM": { + "name": "DEPTNM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk": { + "name": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM_EMPID_EMPLOYEE_MASTER_CMCTB_EMP_MDG_EMPID_fk", + "tableFrom": "EMPLOYEE_MASTER_CMCTB_EMP_MDG_PDEPTNM", + "tableTo": "EMPLOYEE_MASTER_CMCTB_EMP_MDG", + "schemaTo": "mdg", + "columnsFrom": [ + "EMPID" + ], + "columnsTo": [ + "EMPID" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF": { + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ADTL_01": { + "name": "ADTL_01", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ADTL_02": { + "name": "ADTL_02", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CORPCD": { + "name": "CORPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "GRPCD": { + "name": "GRPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "MAINCD": { + "name": "MAINCD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "VALIDFROMDT": { + "name": "VALIDFROMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VALIDTODT": { + "name": "VALIDTODT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_GRPCD_unique": { + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_GRPCD_unique", + "nullsNotDistinct": false, + "columns": [ + "GRPCD" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME": { + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME", + "schema": "mdg", + "columns": { + "GRPCD": { + "name": "GRPCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "NAME": { + "name": "NAME", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME_GRPCD_EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_GRPCD_fk": { + "name": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME_GRPCD_EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_GRPCD_fk", + "tableFrom": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF_NAME", + "tableTo": "EMPLOYEE_REFERENCE_MASTER_CMCTB_EMP_REF_MDG_IF", + "schemaTo": "mdg", + "columnsFrom": [ + "GRPCD" + ], + "columnsTo": [ + "GRPCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL": { + "name": "EQUP_MASTER_MATL", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BISMT": { + "name": "BISMT", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "BRGEW": { + "name": "BRGEW", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GROES": { + "name": "GROES", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MAGRV": { + "name": "MAGRV", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATKL": { + "name": "MATKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "MBRSH": { + "name": "MBRSH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINS": { + "name": "MEINS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTAE": { + "name": "MSTAE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTDE": { + "name": "MSTDE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MTART": { + "name": "MTART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTGEW": { + "name": "NTGEW", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "PRDHA": { + "name": "PRDHA", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "SPART": { + "name": "SPART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VHART": { + "name": "VHART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPDT": { + "name": "ZZAPPDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPTM": { + "name": "ZZAPPTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPUS": { + "name": "ZZAPPUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZDESC": { + "name": "ZZDESC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZNAME": { + "name": "ZZNAME", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZSPEC": { + "name": "ZZSPEC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "EQUP_MASTER_MATL_MATNR_unique": { + "name": "EQUP_MASTER_MATL_MATNR_unique", + "nullsNotDistinct": false, + "columns": [ + "MATNR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL_CHARASGN": { + "name": "EQUP_MASTER_MATL_CHARASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_CHARASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ATAW1": { + "name": "ATAW1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATAWE": { + "name": "ATAWE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATBEZ": { + "name": "ATBEZ", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATFLB": { + "name": "ATFLB", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATFLV": { + "name": "ATFLV", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATNAM": { + "name": "ATNAM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATWRT": { + "name": "ATWRT", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATWTB": { + "name": "ATWTB", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EQUP_MASTER_MATL_CHARASGN_MATNR_EQUP_MASTER_MATL_MATNR_fk": { + "name": "EQUP_MASTER_MATL_CHARASGN_MATNR_EQUP_MASTER_MATL_MATNR_fk", + "tableFrom": "EQUP_MASTER_MATL_CHARASGN", + "tableTo": "EQUP_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL_CLASSASGN": { + "name": "EQUP_MASTER_MATL_CLASSASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_CLASSASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EQUP_MASTER_MATL_CLASSASGN_MATNR_EQUP_MASTER_MATL_MATNR_fk": { + "name": "EQUP_MASTER_MATL_CLASSASGN_MATNR_EQUP_MASTER_MATL_MATNR_fk", + "tableFrom": "EQUP_MASTER_MATL_CLASSASGN", + "tableTo": "EQUP_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL_DESC": { + "name": "EQUP_MASTER_MATL_DESC", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_DESC_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "MAKTX": { + "name": "MAKTX", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EQUP_MASTER_MATL_DESC_MATNR_EQUP_MASTER_MATL_MATNR_fk": { + "name": "EQUP_MASTER_MATL_DESC_MATNR_EQUP_MASTER_MATL_MATNR_fk", + "tableFrom": "EQUP_MASTER_MATL_DESC", + "tableTo": "EQUP_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL_PLNT": { + "name": "EQUP_MASTER_MATL_PLNT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_PLNT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTA": { + "name": "MMSTA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTD": { + "name": "MMSTD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WERKS": { + "name": "WERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZMTARP": { + "name": "ZZMTARP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EQUP_MASTER_MATL_PLNT_MATNR_EQUP_MASTER_MATL_MATNR_fk": { + "name": "EQUP_MASTER_MATL_PLNT_MATNR_EQUP_MASTER_MATL_MATNR_fk", + "tableFrom": "EQUP_MASTER_MATL_PLNT", + "tableTo": "EQUP_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.EQUP_MASTER_MATL_UNIT": { + "name": "EQUP_MASTER_MATL_UNIT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "EQUP_MASTER_MATL_UNIT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINH": { + "name": "MEINH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "UMREN": { + "name": "UMREN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "UMREZ": { + "name": "UMREZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "EQUP_MASTER_MATL_UNIT_MATNR_EQUP_MASTER_MATL_MATNR_fk": { + "name": "EQUP_MASTER_MATL_UNIT_MATNR_EQUP_MASTER_MATL_MATNR_fk", + "tableFrom": "EQUP_MASTER_MATL_UNIT", + "tableTo": "EQUP_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL": { + "name": "MATERIAL_MASTER_PART_MATL", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BISMT": { + "name": "BISMT", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "BRGEW": { + "name": "BRGEW", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GROES": { + "name": "GROES", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MAGRV": { + "name": "MAGRV", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATKL": { + "name": "MATKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "MBRSH": { + "name": "MBRSH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINS": { + "name": "MEINS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTAE": { + "name": "MSTAE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTDE": { + "name": "MSTDE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MTART": { + "name": "MTART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTGEW": { + "name": "NTGEW", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "PRDHA": { + "name": "PRDHA", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "SPART": { + "name": "SPART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VHART": { + "name": "VHART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZACT": { + "name": "ZZACT", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPDT": { + "name": "ZZAPPDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPTM": { + "name": "ZZAPPTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPUS": { + "name": "ZZAPPUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZCERT": { + "name": "ZZCERT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDESC": { + "name": "ZZDESC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "ZZINSP": { + "name": "ZZINSP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZMMTYP": { + "name": "ZZMMTYP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZMRC": { + "name": "ZZMRC", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZNAME": { + "name": "ZZNAME", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZPJT": { + "name": "ZZPJT", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "ZZPLMID": { + "name": "ZZPLMID", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "ZZPRCD_SCV_CTLP": { + "name": "ZZPRCD_SCV_CTLP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZREPMAT": { + "name": "ZZREPMAT", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "ZZREP_DIA": { + "name": "ZZREP_DIA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREP_DIA_UOM": { + "name": "ZZREP_DIA_UOM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREP_ITM_MATL": { + "name": "ZZREP_ITM_MATL", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "ZZSMID": { + "name": "ZZSMID", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "ZZSPEC": { + "name": "ZZSPEC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "ZZSTL": { + "name": "ZZSTL", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "MATERIAL_MASTER_PART_MATL_MATNR_unique": { + "name": "MATERIAL_MASTER_PART_MATL_MATNR_unique", + "nullsNotDistinct": false, + "columns": [ + "MATNR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL_CHARASGN": { + "name": "MATERIAL_MASTER_PART_MATL_CHARASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_CHARASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ATAW1": { + "name": "ATAW1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATAWE": { + "name": "ATAWE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATBEZ": { + "name": "ATBEZ", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATFLB": { + "name": "ATFLB", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATFLV": { + "name": "ATFLV", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATNAM": { + "name": "ATNAM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "ATWRT": { + "name": "ATWRT", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATWTB": { + "name": "ATWTB", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MATERIAL_MASTER_PART_MATL_CHARASGN_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk": { + "name": "MATERIAL_MASTER_PART_MATL_CHARASGN_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk", + "tableFrom": "MATERIAL_MASTER_PART_MATL_CHARASGN", + "tableTo": "MATERIAL_MASTER_PART_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL_CLASSASGN": { + "name": "MATERIAL_MASTER_PART_MATL_CLASSASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_CLASSASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MATERIAL_MASTER_PART_MATL_CLASSASGN_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk": { + "name": "MATERIAL_MASTER_PART_MATL_CLASSASGN_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk", + "tableFrom": "MATERIAL_MASTER_PART_MATL_CLASSASGN", + "tableTo": "MATERIAL_MASTER_PART_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL_DESC": { + "name": "MATERIAL_MASTER_PART_MATL_DESC", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_DESC_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "MAKTX": { + "name": "MAKTX", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MATERIAL_MASTER_PART_MATL_DESC_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk": { + "name": "MATERIAL_MASTER_PART_MATL_DESC_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk", + "tableFrom": "MATERIAL_MASTER_PART_MATL_DESC", + "tableTo": "MATERIAL_MASTER_PART_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL_PLNT": { + "name": "MATERIAL_MASTER_PART_MATL_PLNT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_PLNT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTA": { + "name": "MMSTA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTD": { + "name": "MMSTD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WERKS": { + "name": "WERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZMTARP": { + "name": "ZZMTARP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MATERIAL_MASTER_PART_MATL_PLNT_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk": { + "name": "MATERIAL_MASTER_PART_MATL_PLNT_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk", + "tableFrom": "MATERIAL_MASTER_PART_MATL_PLNT", + "tableTo": "MATERIAL_MASTER_PART_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_MATL_UNIT": { + "name": "MATERIAL_MASTER_PART_MATL_UNIT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_MATL_UNIT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BREIT": { + "name": "BREIT", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "BRGEW": { + "name": "BRGEW", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HOEHE": { + "name": "HOEHE", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "LAENG": { + "name": "LAENG", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINH": { + "name": "MEINH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "UMREN": { + "name": "UMREN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "UMREZ": { + "name": "UMREZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLUM": { + "name": "VOLUM", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MATERIAL_MASTER_PART_MATL_UNIT_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk": { + "name": "MATERIAL_MASTER_PART_MATL_UNIT_MATNR_MATERIAL_MASTER_PART_MATL_MATNR_fk", + "tableFrom": "MATERIAL_MASTER_PART_MATL_UNIT", + "tableTo": "MATERIAL_MASTER_PART_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MATERIAL_MASTER_PART_RETURN_CMCTB_MAT_BSE": { + "name": "MATERIAL_MASTER_PART_RETURN_CMCTB_MAT_BSE", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MATERIAL_MASTER_PART_RETURN_CMCTB_MAT_BSE_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MAT_CD": { + "name": "MAT_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "MAT_ID": { + "name": "MAT_ID", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "MATERIAL_MASTER_PART_RETURN_CMCTB_MAT_BSE_MAT_CD_unique": { + "name": "MATERIAL_MASTER_PART_RETURN_CMCTB_MAT_BSE_MAT_CD_unique", + "nullsNotDistinct": false, + "columns": [ + "MAT_CD" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL": { + "name": "MODEL_MASTER_MATL", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BISMT": { + "name": "BISMT", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "BRGEW": { + "name": "BRGEW", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GROES": { + "name": "GROES", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MAGRV": { + "name": "MAGRV", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATKL": { + "name": "MATKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "MBRSH": { + "name": "MBRSH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINS": { + "name": "MEINS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTAE": { + "name": "MSTAE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MSTDE": { + "name": "MSTDE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MTART": { + "name": "MTART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTGEW": { + "name": "NTGEW", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "PRDHA": { + "name": "PRDHA", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "SPART": { + "name": "SPART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VHART": { + "name": "VHART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPDT": { + "name": "ZZAPPDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPTM": { + "name": "ZZAPPTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZAPPUS": { + "name": "ZZAPPUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZDESC": { + "name": "ZZDESC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKAR": { + "name": "ZZDOKAR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKNR": { + "name": "ZZDOKNR", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKTL": { + "name": "ZZDOKTL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDOKVR": { + "name": "ZZDOKVR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZMMTYP": { + "name": "ZZMMTYP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZNAME": { + "name": "ZZNAME", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZSPEC": { + "name": "ZZSPEC", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "MODEL_MASTER_MATL_MATNR_unique": { + "name": "MODEL_MASTER_MATL_MATNR_unique", + "nullsNotDistinct": false, + "columns": [ + "MATNR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL_CHARASGN": { + "name": "MODEL_MASTER_MATL_CHARASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_CHARASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ATAW1": { + "name": "ATAW1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATAWE": { + "name": "ATAWE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ATBEZ": { + "name": "ATBEZ", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATFLB": { + "name": "ATFLB", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATFLV": { + "name": "ATFLV", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "ATNAM": { + "name": "ATNAM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATWRT": { + "name": "ATWRT", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ATWTB": { + "name": "ATWTB", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MODEL_MASTER_MATL_CHARASGN_MATNR_MODEL_MASTER_MATL_MATNR_fk": { + "name": "MODEL_MASTER_MATL_CHARASGN_MATNR_MODEL_MASTER_MATL_MATNR_fk", + "tableFrom": "MODEL_MASTER_MATL_CHARASGN", + "tableTo": "MODEL_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL_CLASSASGN": { + "name": "MODEL_MASTER_MATL_CLASSASGN", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_CLASSASGN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CLASS": { + "name": "CLASS", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "KLART": { + "name": "KLART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MODEL_MASTER_MATL_CLASSASGN_MATNR_MODEL_MASTER_MATL_MATNR_fk": { + "name": "MODEL_MASTER_MATL_CLASSASGN_MATNR_MODEL_MASTER_MATL_MATNR_fk", + "tableFrom": "MODEL_MASTER_MATL_CLASSASGN", + "tableTo": "MODEL_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL_DESC": { + "name": "MODEL_MASTER_MATL_DESC", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_DESC_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "MAKTX": { + "name": "MAKTX", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MODEL_MASTER_MATL_DESC_MATNR_MODEL_MASTER_MATL_MATNR_fk": { + "name": "MODEL_MASTER_MATL_DESC_MATNR_MODEL_MASTER_MATL_MATNR_fk", + "tableFrom": "MODEL_MASTER_MATL_DESC", + "tableTo": "MODEL_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL_PLNT": { + "name": "MODEL_MASTER_MATL_PLNT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_PLNT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LVORM": { + "name": "LVORM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTA": { + "name": "MMSTA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MMSTD": { + "name": "MMSTD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WERKS": { + "name": "WERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMDT": { + "name": "ZZLAMDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMTM": { + "name": "ZZLAMTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAMUS": { + "name": "ZZLAMUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZMTARP": { + "name": "ZZMTARP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZPRFLG": { + "name": "ZZPRFLG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGDT": { + "name": "ZZREGDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGTM": { + "name": "ZZREGTM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZREGUS": { + "name": "ZZREGUS", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MODEL_MASTER_MATL_PLNT_MATNR_MODEL_MASTER_MATL_MATNR_fk": { + "name": "MODEL_MASTER_MATL_PLNT_MATNR_MODEL_MASTER_MATL_MATNR_fk", + "tableFrom": "MODEL_MASTER_MATL_PLNT", + "tableTo": "MODEL_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.MODEL_MASTER_MATL_UNIT": { + "name": "MODEL_MASTER_MATL_UNIT", + "schema": "mdg", + "columns": { + "MATNR": { + "name": "MATNR", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "MODEL_MASTER_MATL_UNIT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BREIT": { + "name": "BREIT", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "BRGEW": { + "name": "BRGEW", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "GEWEI": { + "name": "GEWEI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HOEHE": { + "name": "HOEHE", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "LAENG": { + "name": "LAENG", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "MEABM": { + "name": "MEABM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEINH": { + "name": "MEINH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "UMREN": { + "name": "UMREN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "UMREZ": { + "name": "UMREZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLEH": { + "name": "VOLEH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VOLUM": { + "name": "VOLUM", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "MODEL_MASTER_MATL_UNIT_MATNR_MODEL_MASTER_MATL_MATNR_fk": { + "name": "MODEL_MASTER_MATL_UNIT_MATNR_MODEL_MASTER_MATL_MATNR_fk", + "tableFrom": "MODEL_MASTER_MATL_UNIT", + "tableTo": "MODEL_MASTER_MATL", + "schemaTo": "mdg", + "columnsFrom": [ + "MATNR" + ], + "columnsTo": [ + "MATNR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_CCTR": { + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ABTEI": { + "name": "ABTEI", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ANRED": { + "name": "ANRED", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "BKZER": { + "name": "BKZER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BKZKP": { + "name": "BKZKP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BKZKS": { + "name": "BKZKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BKZOB": { + "name": "BKZOB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BUKRS": { + "name": "BUKRS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CCTR": { + "name": "CCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "DATAB": { + "name": "DATAB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DATBI": { + "name": "DATBI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "DATLT": { + "name": "DATLT", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "DRNAM": { + "name": "DRNAM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FUNC_AREA": { + "name": "FUNC_AREA", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "GSBER": { + "name": "GSBER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "KHINR": { + "name": "KHINR", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "KOKRS": { + "name": "KOKRS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "KOSAR": { + "name": "KOSAR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LAND1": { + "name": "LAND1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MGEFL": { + "name": "MGEFL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NAME1": { + "name": "NAME1", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "NAME2": { + "name": "NAME2", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "NAME3": { + "name": "NAME3", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "NAME4": { + "name": "NAME4", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "ORT01": { + "name": "ORT01", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "ORT02": { + "name": "ORT02", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "PFACH": { + "name": "PFACH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PKZER": { + "name": "PKZER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PKZKP": { + "name": "PKZKP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PKZKS": { + "name": "PKZKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PRCTR": { + "name": "PRCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PSTL2": { + "name": "PSTL2", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PSTLZ": { + "name": "PSTLZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REGIO": { + "name": "REGIO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPRAS": { + "name": "SPRAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "STRAS": { + "name": "STRAS", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "TELBX": { + "name": "TELBX", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "TELF1": { + "name": "TELF1", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "TELF2": { + "name": "TELF2", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "TELFX": { + "name": "TELFX", + "type": "varchar(31)", + "primaryKey": false, + "notNull": false + }, + "TELTX": { + "name": "TELTX", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "TELX1": { + "name": "TELX1", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "TXJCD": { + "name": "TXJCD", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "VERAK": { + "name": "VERAK", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VERAK_USE": { + "name": "VERAK_USE", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "VMETH": { + "name": "VMETH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WAERS": { + "name": "WAERS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZBRANCH": { + "name": "ZZBRANCH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZFCTRI": { + "name": "ZZFCTRI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZSECCODE": { + "name": "ZZSECCODE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZSEGMENT": { + "name": "ZZSEGMENT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_CCTR_CCTR_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_CCTR_unique", + "nullsNotDistinct": false, + "columns": [ + "CCTR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT": { + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT", + "schema": "mdg", + "columns": { + "CCTR": { + "name": "CCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "KTEXT": { + "name": "KTEXT", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "LTEXT": { + "name": "LTEXT", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT_CCTR_ORGANIZATION_MASTER_HRHMTB_CCTR_CCTR_fk": { + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT_CCTR_ORGANIZATION_MASTER_HRHMTB_CCTR_CCTR_fk", + "tableFrom": "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT", + "tableTo": "ORGANIZATION_MASTER_HRHMTB_CCTR", + "schemaTo": "mdg", + "columnsFrom": [ + "CCTR" + ], + "columnsTo": [ + "CCTR" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT_CCTR_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_CCTR_TEXT_CCTR_unique", + "nullsNotDistinct": false, + "columns": [ + "CCTR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_PCTR": { + "name": "ORGANIZATION_MASTER_HRHMTB_PCTR", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_PCTR_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ABTEI": { + "name": "ABTEI", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "DATAB": { + "name": "DATAB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DATBI": { + "name": "DATBI", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "KHINR": { + "name": "KHINR", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "KOKRS": { + "name": "KOKRS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "LOCK_IND": { + "name": "LOCK_IND", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PCTR": { + "name": "PCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "SEGMENT": { + "name": "SEGMENT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TXJCD": { + "name": "TXJCD", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "VERAK": { + "name": "VERAK", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "VERAK_USE": { + "name": "VERAK_USE", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_PCTR_PCTR_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_PCTR_PCTR_unique", + "nullsNotDistinct": false, + "columns": [ + "PCTR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZBUKRS": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZBUKRS", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZBUKRS_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CURR_BUKR": { + "name": "CURR_BUKR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZBUKRS": { + "name": "ZBUKRS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZBUTXT": { + "name": "ZZBUTXT", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "ZZCITY": { + "name": "ZZCITY", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "ZZCOUNTRY": { + "name": "ZZCOUNTRY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLANGU": { + "name": "ZZLANGU", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZBUKRS_ZBUKRS_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZBUKRS_ZBUKRS_unique", + "nullsNotDistinct": false, + "columns": [ + "ZBUKRS" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZEKGRP": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKGRP", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKGRP_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZEKGRP": { + "name": "ZEKGRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZEKNAM": { + "name": "ZZEKNAM", + "type": "varchar(36)", + "primaryKey": false, + "notNull": false + }, + "ZZEKTEL": { + "name": "ZZEKTEL", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "ZZEMPNUM": { + "name": "ZZEMPNUM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZSINGLE": { + "name": "ZZSINGLE", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "ZZTELFX": { + "name": "ZZTELFX", + "type": "varchar(31)", + "primaryKey": false, + "notNull": false + }, + "ZZTEL_NUM": { + "name": "ZZTEL_NUM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZEKGRP_ZEKGRP_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKGRP_ZEKGRP_unique", + "nullsNotDistinct": false, + "columns": [ + "ZEKGRP" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZEKORG": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKORG", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKORG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZEKORG": { + "name": "ZEKORG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZEKOTX": { + "name": "ZZEKOTX", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZEKORG_ZEKORG_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZEKORG_ZEKORG_unique", + "nullsNotDistinct": false, + "columns": [ + "ZEKORG" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZGSBER": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZGSBER": { + "name": "ZGSBER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZGSBER_ZGSBER_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_ZGSBER_unique", + "nullsNotDistinct": false, + "columns": [ + "ZGSBER" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT", + "schema": "mdg", + "columns": { + "ZGSBER": { + "name": "ZGSBER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "LANGU": { + "name": "LANGU", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "TXTMI": { + "name": "TXTMI", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT_ZGSBER_ORGANIZATION_MASTER_HRHMTB_ZGSBER_ZGSBER_fk": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT_ZGSBER_ORGANIZATION_MASTER_HRHMTB_ZGSBER_ZGSBER_fk", + "tableFrom": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT", + "tableTo": "ORGANIZATION_MASTER_HRHMTB_ZGSBER", + "schemaTo": "mdg", + "columnsFrom": [ + "ZGSBER" + ], + "columnsTo": [ + "ZGSBER" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT_ZGSBER_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZGSBER_TEXT_ZGSBER_unique", + "nullsNotDistinct": false, + "columns": [ + "ZGSBER" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZLGORT": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZLGORT", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZLGORT_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZLGORT": { + "name": "ZLGORT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZWERKS": { + "name": "ZWERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLGOBE": { + "name": "ZZLGOBE", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZLGORT_ZLGORT_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZLGORT_ZLGORT_unique", + "nullsNotDistinct": false, + "columns": [ + "ZLGORT" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZSPART": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZSPART", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZSPART_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZSPART": { + "name": "ZSPART", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZSPART_ZSPART_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZSPART_ZSPART_unique", + "nullsNotDistinct": false, + "columns": [ + "ZSPART" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZVKBUR": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKBUR", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKBUR_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CTRY_SOFF": { + "name": "CTRY_SOFF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LANG_SOFF": { + "name": "LANG_SOFF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZVKBUR": { + "name": "ZVKBUR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZVKBUR_ZVKBUR_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKBUR_ZVKBUR_unique", + "nullsNotDistinct": false, + "columns": [ + "ZVKBUR" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZVKGRP": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKGRP", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKGRP_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZVKGRP": { + "name": "ZVKGRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZVKGRP_ZVKGRP_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKGRP_ZVKGRP_unique", + "nullsNotDistinct": false, + "columns": [ + "ZVKGRP" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZVKORG": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKORG", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKORG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZVKORG": { + "name": "ZVKORG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZBOAVO": { + "name": "ZZBOAVO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZKUNNR": { + "name": "ZZKUNNR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZVKOKL": { + "name": "ZZVKOKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZWAERS": { + "name": "ZZWAERS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZVKORG_ZVKORG_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVKORG_ZVKORG_unique", + "nullsNotDistinct": false, + "columns": [ + "ZVKORG" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZVSTEL": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVSTEL", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZVSTEL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ALAN_VSTE": { + "name": "ALAN_VSTE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "AZON_VSTE": { + "name": "AZON_VSTE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CTRY_SHPT": { + "name": "CTRY_SHPT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LANG_SHPT": { + "name": "LANG_SHPT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZVSTEL": { + "name": "ZVSTEL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZFABKL": { + "name": "ZZFABKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZLAZBS": { + "name": "ZZLAZBS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZRIZBS": { + "name": "ZZRIZBS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZVSTEL_ZVSTEL_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVSTEL_ZVSTEL_unique", + "nullsNotDistinct": false, + "columns": [ + "ZVSTEL" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZVTWEG": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVTWEG", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZVTWEG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ZVTWEG": { + "name": "ZVTWEG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZVTWEG_ZVTWEG_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZVTWEG_ZVTWEG_unique", + "nullsNotDistinct": false, + "columns": [ + "ZVTWEG" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.ORGANIZATION_MASTER_HRHMTB_ZWERKS": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZWERKS", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "ORGANIZATION_MASTER_HRHMTB_ZWERKS_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "CTRY_PLNT": { + "name": "CTRY_PLNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LANG_PLNT": { + "name": "LANG_PLNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZWERKS": { + "name": "ZWERKS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ZZDELETE": { + "name": "ZZDELETE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZFABKL": { + "name": "ZZFABKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ZZNAME1": { + "name": "ZZNAME1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "ZZNAME2": { + "name": "ZZNAME2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "ORGANIZATION_MASTER_HRHMTB_ZWERKS_ZWERKS_unique": { + "name": "ORGANIZATION_MASTER_HRHMTB_ZWERKS_ZWERKS_unique", + "nullsNotDistinct": false, + "columns": [ + "ZWERKS" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.PROJECT_MASTER_CMCTB_PROJ_MAST": { + "name": "PROJECT_MASTER_CMCTB_PROJ_MAST", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "PROJECT_MASTER_CMCTB_PROJ_MAST_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "AS_GRNT_PRD": { + "name": "AS_GRNT_PRD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZCLS": { + "name": "BIZCLS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZLOC_CD": { + "name": "BIZLOC_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZ_DMN": { + "name": "BIZ_DMN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BP_DL_DT": { + "name": "BP_DL_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CHN_PROJ_TP": { + "name": "CHN_PROJ_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CLS_1": { + "name": "CLS_1", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "CLS_2": { + "name": "CLS_2", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "CNRT_CNTN_YN": { + "name": "CNRT_CNTN_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNRT_DL_DT": { + "name": "CNRT_DL_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNRT_DT": { + "name": "CNRT_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNRT_RESV_YN": { + "name": "CNRT_RESV_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CO_CD": { + "name": "CO_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CSTM_PO_NO": { + "name": "CSTM_PO_NO", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DIGT_PDT_GRP": { + "name": "DIGT_PDT_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DIST_PATH": { + "name": "DIST_PATH", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DL_BF_PROJ_NM": { + "name": "DL_BF_PROJ_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "DL_CSTM_CD": { + "name": "DL_CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DOCK_CD": { + "name": "DOCK_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DSN_CHRGR": { + "name": "DSN_CHRGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FIN_GRNT_FN_DT": { + "name": "FIN_GRNT_FN_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GENT_CNT": { + "name": "GENT_CNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GOV": { + "name": "GOV", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "GRNT_STDT": { + "name": "GRNT_STDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IMO_NO": { + "name": "IMO_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "INQY_NO": { + "name": "INQY_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "INQY_SEQ": { + "name": "INQY_SEQ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IO_GB": { + "name": "IO_GB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MNG_ACOT_DMN": { + "name": "MNG_ACOT_DMN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MN_ENGN_TP_CD": { + "name": "MN_ENGN_TP_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "MSHIP_NO": { + "name": "MSHIP_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "NEW_MC_YN": { + "name": "NEW_MC_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTTP": { + "name": "NTTP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORDR_GRNT_FN_DT": { + "name": "ORDR_GRNT_FN_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORDR_GRNT_PRD": { + "name": "ORDR_GRNT_PRD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "OWN_1": { + "name": "OWN_1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "OWN_AB": { + "name": "OWN_AB", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "OWN_NM": { + "name": "OWN_NM", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "PDT_LVL_4": { + "name": "PDT_LVL_4", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "PLNT_CD": { + "name": "PLNT_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PRCTR": { + "name": "PRCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PRGS_STAT": { + "name": "PRGS_STAT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_CRTE_REQ_DT": { + "name": "PROJ_CRTE_REQ_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_CRTE_REQ_EMPNO": { + "name": "PROJ_CRTE_REQ_EMPNO", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DL_PLN_DT": { + "name": "PROJ_DL_PLN_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DL_RT_DT": { + "name": "PROJ_DL_RT_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DSC": { + "name": "PROJ_DSC", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DTL_TP": { + "name": "PROJ_DTL_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_ETC_TP": { + "name": "PROJ_ETC_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_GB": { + "name": "PROJ_GB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_NO": { + "name": "PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "PROJ_PRGS_YN": { + "name": "PROJ_PRGS_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_PROF": { + "name": "PROJ_PROF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_SCP": { + "name": "PROJ_SCP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PROJ_WBS_TP": { + "name": "PROJ_WBS_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PRO_PROJ_NO": { + "name": "PRO_PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "QM_CLS": { + "name": "QM_CLS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REF_NO": { + "name": "REF_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "RLTD_PROJ": { + "name": "RLTD_PROJ", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "RL_DL_DT": { + "name": "RL_DL_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SALE_GRP": { + "name": "SALE_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SALE_ORG_CD": { + "name": "SALE_ORG_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SA_DT": { + "name": "SA_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SERS_NO": { + "name": "SERS_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "SERS_YN": { + "name": "SERS_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE": { + "name": "SHTYPE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_CD": { + "name": "SHTYPE_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_GRP": { + "name": "SHTYPE_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_UOM": { + "name": "SHTYPE_UOM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SKND": { + "name": "SKND", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRC_SYS_ID": { + "name": "SRC_SYS_ID", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "STDT": { + "name": "STDT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SYS_ACOT_CLSD_DT": { + "name": "SYS_ACOT_CLSD_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TOT_CNRT_CNT": { + "name": "TOT_CNRT_CNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TYPE": { + "name": "TYPE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WP_PROJ_TP": { + "name": "WP_PROJ_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "PROJECT_MASTER_CMCTB_PROJ_MAST_PROJ_NO_unique": { + "name": "PROJECT_MASTER_CMCTB_PROJ_MAST_PROJ_NO_unique", + "nullsNotDistinct": false, + "columns": [ + "PROJ_NO" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER": { + "name": "VENDOR_MASTER_BP_HEADER", + "schema": "mdg", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "VENDOR_MASTER_BP_HEADER_VNDRCD_unique": { + "name": "VENDOR_MASTER_BP_HEADER_VNDRCD_unique", + "nullsNotDistinct": false, + "columns": [ + "VNDRCD" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ADDRNO": { + "name": "ADDRNO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "EMAIL_ADR": { + "name": "EMAIL_ADR", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_EMAIL", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "FAXNO": { + "name": "FAXNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "FAX_ETS_NO": { + "name": "FAX_ETS_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_FAX", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ADR_1": { + "name": "ADR_1", + "type": "varchar(190)", + "primaryKey": false, + "notNull": false + }, + "ADR_2": { + "name": "ADR_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "ADR_TMZ": { + "name": "ADR_TMZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CITY_ZIP_NO": { + "name": "CITY_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_1": { + "name": "ETC_ADR_1", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_2": { + "name": "ETC_ADR_2", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "INTL_ADR_VER_ID": { + "name": "INTL_ADR_VER_ID", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "POBX": { + "name": "POBX", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "POBX_ZIP_NO": { + "name": "POBX_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REGN_CD": { + "name": "REGN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TAX_JRDT_ZONE_CD": { + "name": "TAX_JRDT_ZONE_CD", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "TRANS_ZONE": { + "name": "TRANS_ZONE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TTL": { + "name": "TTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_1": { + "name": "VNDRNM_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_2": { + "name": "VNDRNM_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_3": { + "name": "VNDRNM_3", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_4": { + "name": "VNDRNM_4", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_1": { + "name": "VNDRNM_ABRV_1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_2": { + "name": "VNDRNM_ABRV_2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_POSTAL", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ETX_NO": { + "name": "ETX_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HP_ORDR": { + "name": "HP_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "TELNO": { + "name": "TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_TEL", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "URL": { + "name": "URL", + "type": "varchar(2000)", + "primaryKey": false, + "notNull": false + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_ADDRESS_AD_URL", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_TAXNUM": { + "name": "VENDOR_MASTER_BP_HEADER_BP_TAXNUM", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_TAXNUM_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BIZ_PTNR_TX_NO": { + "name": "BIZ_PTNR_TX_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "TX_NO_CTG": { + "name": "TX_NO_CTG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_TAXNUM_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_TAXNUM_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_TAXNUM", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_VENGEN": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ACNT_GRP": { + "name": "ACNT_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ACNT_GRP_TP": { + "name": "ACNT_GRP_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ADR_1": { + "name": "ADR_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "ADR_2": { + "name": "ADR_2", + "type": "varchar(512)", + "primaryKey": false, + "notNull": false + }, + "AGR_DT": { + "name": "AGR_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "AGR_R_ID": { + "name": "AGR_R_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "AGR_TM": { + "name": "AGR_TM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZCON": { + "name": "BIZCON", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BIZR_NO": { + "name": "BIZR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZTP": { + "name": "BIZTP", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BIZ_UOM_CD": { + "name": "BIZ_UOM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BIZ_UOM_NM": { + "name": "BIZ_UOM_NM", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "CHGR_ID": { + "name": "CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CO_ID": { + "name": "CO_ID", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CO_REG_NO": { + "name": "CO_REG_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "CO_VLM": { + "name": "CO_VLM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEL_HOLD_ORDR": { + "name": "DEL_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DMST_TOP_CD": { + "name": "DMST_TOP_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DMST_TOP_NM": { + "name": "DMST_TOP_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "DNS_NO": { + "name": "DNS_NO", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "DOC_NO": { + "name": "DOC_NO", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "DOC_TP": { + "name": "DOC_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DOC_VER": { + "name": "DOC_VER", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FIR_NM": { + "name": "FIR_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "GBL_TOP_CD": { + "name": "GBL_TOP_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "GBL_TOP_NM": { + "name": "GBL_TOP_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "GIRO_VNDR_ORDR": { + "name": "GIRO_VNDR_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HOLD_CAUS": { + "name": "HOLD_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "INB_FLAG": { + "name": "INB_FLAG", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "INTL_LCTN_CHK_NUM": { + "name": "INTL_LCTN_CHK_NUM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "OVLAP_CAUS_CD": { + "name": "OVLAP_CAUS_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PTNT_VNDRCD": { + "name": "PTNT_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PTN_DOC": { + "name": "PTN_DOC", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_DT": { + "name": "PUR_HOLD_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_ORDR": { + "name": "PUR_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_EMAIL": { + "name": "QLT_CHRGR_EMAIL", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_NM": { + "name": "QLT_CHRGR_NM", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_TELNO": { + "name": "QLT_CHRGR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "REGR_ID": { + "name": "REGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "REG_DT": { + "name": "REG_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REG_TM": { + "name": "REG_TM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_NM": { + "name": "REPR_NM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "REPR_RESNO": { + "name": "REPR_RESNO", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "REP_TEL_NO": { + "name": "REP_TEL_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "SB_WKA_SEQ": { + "name": "SB_WKA_SEQ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCETX_RP_SEX_KEY": { + "name": "SRCETX_RP_SEX_KEY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TTL": { + "name": "TTL", + "type": "varchar(45)", + "primaryKey": false, + "notNull": false + }, + "TX_CD_4": { + "name": "TX_CD_4", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "VAT_REG_NO": { + "name": "VAT_REG_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_1": { + "name": "VNDRNM_1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VNDRNO": { + "name": "VNDRNO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_VENGEN_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_VENGEN", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "ACOT_CHRGR_FAXNO": { + "name": "ACOT_CHRGR_FAXNO", + "type": "varchar(31)", + "primaryKey": false, + "notNull": false + }, + "ACOT_CHRGR_TELNO": { + "name": "ACOT_CHRGR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "AUTH_GRP": { + "name": "AUTH_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BF_VNDRCD": { + "name": "BF_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CO_CD": { + "name": "CO_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CSTM_VNDR_CLR_ORDR": { + "name": "CSTM_VNDR_CLR_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CTL_ACNT": { + "name": "CTL_ACNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FIN_IR_ACT_DT": { + "name": "FIN_IR_ACT_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FIN_IR_CALC_DT": { + "name": "FIN_IR_CALC_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IATA_BIC_GB": { + "name": "IATA_BIC_GB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "LOGST_VNDR_TP": { + "name": "LOGST_VNDR_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MEMO": { + "name": "MEMO", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "MIN_ORDR": { + "name": "MIN_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "MK_CHRGR_EMAIL": { + "name": "MK_CHRGR_EMAIL", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "MOFFC_ACNT_NO": { + "name": "MOFFC_ACNT_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "OVLAP_INVC_ORDR": { + "name": "OVLAP_INVC_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PLN_GRP": { + "name": "PLN_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REP_TP": { + "name": "REP_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPLY_COND": { + "name": "SPLY_COND", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPLY_HOLD_ORDR": { + "name": "SPLY_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPLY_MTHD": { + "name": "SPLY_MTHD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPRT_SPLY_ORDR": { + "name": "SPRT_SPLY_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_CD": { + "name": "SRCE_TX_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_NTN_CD": { + "name": "SRCE_TX_NTN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRT_KEY": { + "name": "SRT_KEY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TRD_BANK_SHRT_KEY": { + "name": "TRD_BANK_SHRT_KEY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VNDR_ACNT_NO": { + "name": "VNDR_ACNT_NO", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "VNDR_CHRGR_NM": { + "name": "VNDR_CHRGR_NM", + "type": "varchar(45)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "DCHAG_CAUS": { + "name": "DCHAG_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_CERT_NO": { + "name": "DCHAG_CERT_NO", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_ED_DT": { + "name": "DCHAG_ED_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_ST_DT": { + "name": "DCHAG_ST_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "RECIP_TP": { + "name": "RECIP_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_IDENT_NO": { + "name": "SRCE_TX_IDENT_NO", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_NO": { + "name": "SRCE_TX_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_REL_ORDR": { + "name": "SRCE_TX_REL_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_TP": { + "name": "SRCE_TX_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_COMPNY_BP_WHTAX", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "AT_PUR_ORD_ORDR": { + "name": "AT_PUR_ORD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CALC_SHM_GRP": { + "name": "CALC_SHM_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNFM_CTL_KEY": { + "name": "CNFM_CTL_KEY", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DL_COND_1": { + "name": "DL_COND_1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DL_COND_2": { + "name": "DL_COND_2", + "type": "varchar(28)", + "primaryKey": false, + "notNull": false + }, + "GR_BSE_INVC_VR": { + "name": "GR_BSE_INVC_VR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ORD_CNFM_REQ_ORDR": { + "name": "ORD_CNFM_REQ_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_CAUS": { + "name": "PUR_HOLD_CAUS", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_DT": { + "name": "PUR_HOLD_DT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_ORDR": { + "name": "PUR_HOLD_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_ORD_CUR": { + "name": "PUR_ORD_CUR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PUR_ORG_CD": { + "name": "PUR_ORG_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "SALE_CHRGR_NM": { + "name": "SALE_CHRGR_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "SPLY_COND": { + "name": "SPLY_COND", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VNDR_TELNO": { + "name": "VNDR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "mdg.VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN", + "schema": "mdg", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN_id_seq", + "schema": "mdg", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "BSE_PTNR_ORDR": { + "name": "BSE_PTNR_ORDR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ETC_REF_VNDRCD": { + "name": "ETC_REF_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PLNT_NO": { + "name": "PLNT_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PTNR_CNT": { + "name": "PTNR_CNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "PTNR_SKL": { + "name": "PTNR_SKL", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "VNDR_SUB_NO": { + "name": "VNDR_SUB_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk": { + "name": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN_VNDRCD_VENDOR_MASTER_BP_HEADER_VNDRCD_fk", + "tableFrom": "VENDOR_MASTER_BP_HEADER_BP_VENGEN_BP_PORG_ZVPFN", + "tableTo": "VENDOR_MASTER_BP_HEADER", + "schemaTo": "mdg", + "columnsFrom": [ + "VNDRCD" + ], + "columnsTo": [ + "VNDRCD" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "soap.soap_logs": { + "name": "soap_logs", + "schema": "soap", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "direction": { + "name": "direction", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "system": { + "name": "system", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "interface": { + "name": "interface", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "startedAt": { + "name": "startedAt", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "endedAt": { + "name": "endedAt", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "isSuccess": { + "name": "isSuccess", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "requestData": { + "name": "requestData", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "responseData": { + "name": "responseData", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "errorMessage": { + "name": "errorMessage", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_cd": { + "name": "cmctb_cd", + "schema": "nonsap", + "columns": { + "CD_CLF": { + "name": "CD_CLF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD": { + "name": "CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD2": { + "name": "CD2", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD3": { + "name": "CD3", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "USR_DF_CHAR_1": { + "name": "USR_DF_CHAR_1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_2": { + "name": "USR_DF_CHAR_2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_3": { + "name": "USR_DF_CHAR_3", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_4": { + "name": "USR_DF_CHAR_4", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_5": { + "name": "USR_DF_CHAR_5", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_6": { + "name": "USR_DF_CHAR_6", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_7": { + "name": "USR_DF_CHAR_7", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_8": { + "name": "USR_DF_CHAR_8", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_9": { + "name": "USR_DF_CHAR_9", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_10": { + "name": "USR_DF_CHAR_10", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_11": { + "name": "USR_DF_CHAR_11", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_12": { + "name": "USR_DF_CHAR_12", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_13": { + "name": "USR_DF_CHAR_13", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_14": { + "name": "USR_DF_CHAR_14", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_15": { + "name": "USR_DF_CHAR_15", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_16": { + "name": "USR_DF_CHAR_16", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_17": { + "name": "USR_DF_CHAR_17", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_18": { + "name": "USR_DF_CHAR_18", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_19": { + "name": "USR_DF_CHAR_19", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR_20": { + "name": "USR_DF_CHAR_20", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_1": { + "name": "USR_DF_CHK_1", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_2": { + "name": "USR_DF_CHK_2", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_3": { + "name": "USR_DF_CHK_3", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_4": { + "name": "USR_DF_CHK_4", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_5": { + "name": "USR_DF_CHK_5", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_6": { + "name": "USR_DF_CHK_6", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_7": { + "name": "USR_DF_CHK_7", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHK_8": { + "name": "USR_DF_CHK_8", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_DT_1": { + "name": "USR_DF_DT_1", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_DT_2": { + "name": "USR_DF_DT_2", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_DT_3": { + "name": "USR_DF_DT_3", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_DT_4": { + "name": "USR_DF_DT_4", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_TM_1": { + "name": "USR_DF_TM_1", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_TM_2": { + "name": "USR_DF_TM_2", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_TM_3": { + "name": "USR_DF_TM_3", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_TM_4": { + "name": "USR_DF_TM_4", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CRTER": { + "name": "CRTER", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR": { + "name": "CHGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_cd_clf": { + "name": "cmctb_cd_clf", + "schema": "nonsap", + "columns": { + "CD_CLF": { + "name": "CD_CLF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CRTER": { + "name": "CRTER", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR": { + "name": "CHGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "XSTAT": { + "name": "XSTAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "XMSGS": { + "name": "XMSGS", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "XDATS": { + "name": "XDATS", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "XTIMS": { + "name": "XTIMS", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_cd_clf_nm": { + "name": "cmctb_cd_clf_nm", + "schema": "nonsap", + "columns": { + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "CD_CLF": { + "name": "CD_CLF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD_CLF_NM": { + "name": "CD_CLF_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "GRP_DSC": { + "name": "GRP_DSC", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "CRTER": { + "name": "CRTER", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR": { + "name": "CHGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_cdnm": { + "name": "cmctb_cdnm", + "schema": "nonsap", + "columns": { + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "CD_CLF": { + "name": "CD_CLF", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD": { + "name": "CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD2": { + "name": "CD2", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CD3": { + "name": "CD3", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CDNM": { + "name": "CDNM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "GRP_DSC": { + "name": "GRP_DSC", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "CRTER": { + "name": "CRTER", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR": { + "name": "CHGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_addr": { + "name": "cmctb_customer_addr", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "INTL_ADR_VER_ID": { + "name": "INTL_ADR_VER_ID", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "CITY_ZIP_NO": { + "name": "CITY_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "POBX_ZIP_NO": { + "name": "POBX_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ADR_1": { + "name": "ADR_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "ADR_2": { + "name": "ADR_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "REGN_CD": { + "name": "REGN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_1": { + "name": "ETC_ADR_1", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_2": { + "name": "ETC_ADR_2", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "HOUSE_NR1": { + "name": "HOUSE_NR1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "POBX": { + "name": "POBX", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_1": { + "name": "VNDRNM_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_2": { + "name": "VNDRNM_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "TRANS_ZONE": { + "name": "TRANS_ZONE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_cfpn": { + "name": "cmctb_customer_cfpn", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "SALE_ORG_CD": { + "name": "SALE_ORG_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "DIST_PATH": { + "name": "DIST_PATH", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "PDT_GRP": { + "name": "PDT_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "PTNR_SKL": { + "name": "PTNR_SKL", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "PTNR_CNT": { + "name": "PTNR_CNT", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "BSE_PTNR_ORDR": { + "name": "BSE_PTNR_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_compny": { + "name": "cmctb_customer_compny", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CO_ID": { + "name": "CO_ID", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "AR_ACNT_HDL_GB": { + "name": "AR_ACNT_HDL_GB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRT_KEY": { + "name": "SRT_KEY", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "AMT_RNE_GB": { + "name": "AMT_RNE_GB", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "VNDR_PAY_FRM": { + "name": "VNDR_PAY_FRM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BILL_PAY_COND_CD": { + "name": "BILL_PAY_COND_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "BILL_PAY_BLOC_CD": { + "name": "BILL_PAY_BLOC_CD", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_general": { + "name": "cmctb_customer_general", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "ACNT_GRP": { + "name": "ACNT_GRP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "OVLAP_CAUS": { + "name": "OVLAP_CAUS", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "CSTM_TP": { + "name": "CSTM_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_BLOCK": { + "name": "DEL_BLOCK", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CO_ID": { + "name": "CO_ID", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "TTL": { + "name": "TTL", + "type": "varchar(45)", + "primaryKey": false, + "notNull": false + }, + "COND_GRP_1": { + "name": "COND_GRP_1", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "CSTM_GRP_NM": { + "name": "CSTM_GRP_NM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "REPR_NM": { + "name": "REPR_NM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BIZTP": { + "name": "BIZTP", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "BIZCON": { + "name": "BIZCON", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "TX_NO_2": { + "name": "TX_NO_2", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "TX_NO_3": { + "name": "TX_NO_3", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "TX_NO_4": { + "name": "TX_NO_4", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "TX_REG_NO": { + "name": "TX_REG_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "BA_CD": { + "name": "BA_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRCH_COND_1": { + "name": "SRCH_COND_1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "SRCH_COND_2": { + "name": "SRCH_COND_2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "CITY_DISP_NM": { + "name": "CITY_DISP_NM", + "type": "varchar(105)", + "primaryKey": false, + "notNull": false + }, + "CRM_CD": { + "name": "CRM_CD", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "IN_FLAG": { + "name": "IN_FLAG", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "INDST_CD": { + "name": "INDST_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "TX_NO_TP": { + "name": "TX_NO_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "REG_DT": { + "name": "REG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "REG_DTM": { + "name": "REG_DTM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "REGR_ID": { + "name": "REGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "AGR_DT": { + "name": "AGR_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "AGR_TM": { + "name": "AGR_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "AGR_R_ID": { + "name": "AGR_R_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR_ID": { + "name": "CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FTGT_CD": { + "name": "FTGT_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FTGT_NM": { + "name": "FTGT_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "FTDT_CD": { + "name": "FTDT_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FTDT_NM": { + "name": "FTDT_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "FTBU_CD": { + "name": "FTBU_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FTBU_NM": { + "name": "FTBU_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_repremail": { + "name": "cmctb_customer_repremail", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "EMAIL_ADR": { + "name": "EMAIL_ADR", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_reprfax": { + "name": "cmctb_customer_reprfax", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "FAXNO": { + "name": "FAXNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "FAX_ETS_NO": { + "name": "FAX_ETS_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_reprtel": { + "name": "cmctb_customer_reprtel", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "TELNO": { + "name": "TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ETX_NO": { + "name": "ETX_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HP_ORDR": { + "name": "HP_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_reprurl": { + "name": "cmctb_customer_reprurl", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "URL": { + "name": "URL", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_sorg": { + "name": "cmctb_customer_sorg", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "SALE_ORG_CD": { + "name": "SALE_ORG_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "DIST_PATH": { + "name": "DIST_PATH", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "PDT_GRP": { + "name": "PDT_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "SALE_REGN": { + "name": "SALE_REGN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SALE_OFC": { + "name": "SALE_OFC", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "SALE_GRP": { + "name": "SALE_GRP", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "CSTM_GRP": { + "name": "CSTM_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "PSBL": { + "name": "PSBL", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "TRD_CUR": { + "name": "TRD_CUR", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "EXRAT_TP": { + "name": "EXRAT_TP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PRC_PRCS_DSC_CD": { + "name": "PRC_PRCS_DSC_CD", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CSTM_STAT_GRP": { + "name": "CSTM_STAT_GRP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SHIPMT_COND": { + "name": "SHIPMT_COND", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "MAX_TRD_QTY": { + "name": "MAX_TRD_QTY", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "DL_COND_1": { + "name": "DL_COND_1", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "DL_COND_2": { + "name": "DL_COND_2", + "type": "varchar(84)", + "primaryKey": false, + "notNull": false + }, + "SPLY_COND": { + "name": "SPLY_COND", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "ACNT_ASGN_GRP": { + "name": "ACNT_ASGN_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_taxcd": { + "name": "cmctb_customer_taxcd", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "DPRT_NTN": { + "name": "DPRT_NTN", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "TX_CTG": { + "name": "TX_CTG", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "CSTM_TX_CLF": { + "name": "CSTM_TX_CLF", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_customer_taxnum": { + "name": "cmctb_customer_taxnum", + "schema": "nonsap", + "columns": { + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "TX_NO_CTG": { + "name": "TX_NO_CTG", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "BIZ_PTNR_TX_NO": { + "name": "BIZ_PTNR_TX_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_bse": { + "name": "cmctb_mat_bse", + "schema": "nonsap", + "columns": { + "MAT_NO": { + "name": "MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "SM_CD": { + "name": "SM_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "MAT_ID": { + "name": "MAT_ID", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "CLAS_CD": { + "name": "CLAS_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "MAT_TP": { + "name": "MAT_TP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "MAT_GB": { + "name": "MAT_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "MAT_DTL": { + "name": "MAT_DTL", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "MAT_DTL_SPEC": { + "name": "MAT_DTL_SPEC", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "MATL": { + "name": "MATL", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "OLD_MAT_NO": { + "name": "OLD_MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "SBST_MAT_NO": { + "name": "SBST_MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "UOM": { + "name": "UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PDT_GRP": { + "name": "PDT_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "MRC": { + "name": "MRC", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "STOR_MAT_ORDR": { + "name": "STOR_MAT_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "STYPE": { + "name": "STYPE", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "CLS": { + "name": "CLS", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "WGT": { + "name": "WGT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "NET_WGT": { + "name": "NET_WGT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "WGT_UOM": { + "name": "WGT_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "LTH": { + "name": "LTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "LTH_2": { + "name": "LTH_2", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "WTH": { + "name": "WTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "WTH_2": { + "name": "WTH_2", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "THK": { + "name": "THK", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "STD": { + "name": "STD", + "type": "varchar(70)", + "primaryKey": false, + "notNull": false + }, + "PROF_STD": { + "name": "PROF_STD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CBL_OUT_DIA": { + "name": "CBL_OUT_DIA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "LTRM_MAT_YN": { + "name": "LTRM_MAT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PNT_AREA": { + "name": "PNT_AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "PNTIN_AREA": { + "name": "PNTIN_AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "PNTIN_SPEC": { + "name": "PNTIN_SPEC", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "PNTOUT_AREA": { + "name": "PNTOUT_AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "PNTOUT_SPEC_1": { + "name": "PNTOUT_SPEC_1", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "PNTOUT_SPEC_2": { + "name": "PNTOUT_SPEC_2", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "PNTOUT_SPEC_3": { + "name": "PNTOUT_SPEC_3", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "RT_INSPEC": { + "name": "RT_INSPEC", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "UT_INSPEC": { + "name": "UT_INSPEC", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "MT_INSPEC": { + "name": "MT_INSPEC", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "PT_INSPEC": { + "name": "PT_INSPEC", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "MK_DWG_NO": { + "name": "MK_DWG_NO", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "CUT_DWG_NO": { + "name": "CUT_DWG_NO", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "PIPE_SPL_NO": { + "name": "PIPE_SPL_NO", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "PIPE_LINE_NO": { + "name": "PIPE_LINE_NO", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "PIPE_CLAS": { + "name": "PIPE_CLAS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "FLUID_KND": { + "name": "FLUID_KND", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "REP_ITM_MATL": { + "name": "REP_ITM_MATL", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "REP_DIA": { + "name": "REP_DIA", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REP_DIA_UOM": { + "name": "REP_DIA_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "REP_SCH": { + "name": "REP_SCH", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "REP_DIA_LTH": { + "name": "REP_DIA_LTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "DBLN_GB": { + "name": "DBLN_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PIPE_GRD": { + "name": "PIPE_GRD", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "HTRET_YN": { + "name": "HTRET_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "BA_GALV_SPEC": { + "name": "BA_GALV_SPEC", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "SSIDE_YN": { + "name": "SSIDE_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PNTR_PIPE_YN": { + "name": "PNTR_PIPE_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "UBOLT_YN": { + "name": "UBOLT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CTLP_PRCD_PNT": { + "name": "CTLP_PRCD_PNT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PRCD_SCV_CTLP": { + "name": "PRCD_SCV_CTLP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "PMI_INSPEC": { + "name": "PMI_INSPEC", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "WTRPRS": { + "name": "WTRPRS", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "VLV_FIT_NO": { + "name": "VLV_FIT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "TAG_NO": { + "name": "TAG_NO", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "TAG_SB_NO": { + "name": "TAG_SB_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NM_PLATE_TP": { + "name": "NM_PLATE_TP", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "NM_PLATE_SVC_NM": { + "name": "NM_PLATE_SVC_NM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VRCS_MAT_NO": { + "name": "VRCS_MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "TRSM_FIT_NO": { + "name": "TRSM_FIT_NO", + "type": "varchar(7)", + "primaryKey": false, + "notNull": false + }, + "VLV_OPT_CD_LIST": { + "name": "VLV_OPT_CD_LIST", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "PUR_REQ_NO": { + "name": "PUR_REQ_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ITM_NO": { + "name": "ITM_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "MDL_NO": { + "name": "MDL_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BL_NO": { + "name": "BL_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "VNDR_EQP_NO": { + "name": "VNDR_EQP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BOX_NO": { + "name": "BOX_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "MMT_NO": { + "name": "MMT_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "INSTL_LOC": { + "name": "INSTL_LOC", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "MN_EQP_YN": { + "name": "MN_EQP_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "FIXED_MAT_YN": { + "name": "FIXED_MAT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SPRE_YN": { + "name": "SPRE_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "TOOL_YN": { + "name": "TOOL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CBL_YN": { + "name": "CBL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "OWN_INSTL_MAT_YN": { + "name": "OWN_INSTL_MAT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "NONINSTL_MAT_YN": { + "name": "NONINSTL_MAT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "BLK_NO": { + "name": "BLK_NO", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "GYEL": { + "name": "GYEL", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "LNK_PTLST_NO": { + "name": "LNK_PTLST_NO", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "AREA": { + "name": "AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "STOR_LOC": { + "name": "STOR_LOC", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SGUB_WGT": { + "name": "SGUB_WGT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "DGUB_WGT": { + "name": "DGUB_WGT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "PROJ_NO": { + "name": "PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "DSN_SKL": { + "name": "DSN_SKL", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "RMK": { + "name": "RMK", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_DT": { + "name": "DEL_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "MAT_STAT": { + "name": "MAT_STAT", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "IF_SYS_NO": { + "name": "IF_SYS_NO", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "GLAND_SPEC_1": { + "name": "GLAND_SPEC_1", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "GLAND_SPEC_2": { + "name": "GLAND_SPEC_2", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "GLAND_SPEC_3": { + "name": "GLAND_SPEC_3", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "MCT_MDLE_STD_1": { + "name": "MCT_MDLE_STD_1", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "MCT_MDLE_STD_2": { + "name": "MCT_MDLE_STD_2", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BEELE_RISE": { + "name": "BEELE_RISE", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "MAX_DRUM_LTH": { + "name": "MAX_DRUM_LTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "AGR_DTM": { + "name": "AGR_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "AGR_R_ID": { + "name": "AGR_R_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "DISPLN": { + "name": "DISPLN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "LRG_KWK": { + "name": "LRG_KWK", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DTL_KWK": { + "name": "DTL_KWK", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SP_INSP_GB": { + "name": "SP_INSP_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PNTOUT_SPEC_4": { + "name": "PNTOUT_SPEC_4", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "OFE_MAT_NO": { + "name": "OFE_MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "OFE_CAB_YN": { + "name": "OFE_CAB_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "INSTL_PSB_CNT": { + "name": "INSTL_PSB_CNT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "CUTL_ML_GB": { + "name": "CUTL_ML_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "FCM_INSP": { + "name": "FCM_INSP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "DOC_NO": { + "name": "DOC_NO", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "HOLD_CAUS": { + "name": "HOLD_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "HOLD_DT": { + "name": "HOLD_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "HOLD_LIFT_DT": { + "name": "HOLD_LIFT_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "MAT_KND_GB": { + "name": "MAT_KND_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "BATCH_MNG_ORDR": { + "name": "BATCH_MNG_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "FS_INPR_ID": { + "name": "FS_INPR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FS_INP_DTM": { + "name": "FS_INP_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "FIN_CHGR_ID": { + "name": "FIN_CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FIN_CHG_DTM": { + "name": "FIN_CHG_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "DWG_FILE_NM": { + "name": "DWG_FILE_NM", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "TAG_NO_CHG_DT": { + "name": "TAG_NO_CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "SUB_EQP_YN": { + "name": "SUB_EQP_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "ATT_MAT_YN": { + "name": "ATT_MAT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DSN_REV_NO": { + "name": "DSN_REV_NO", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR1": { + "name": "USR_DF_CHAR1", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR2": { + "name": "USR_DF_CHAR2", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR3": { + "name": "USR_DF_CHAR3", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR4": { + "name": "USR_DF_CHAR4", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "USR_DF_CHAR5": { + "name": "USR_DF_CHAR5", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_clas": { + "name": "cmctb_mat_clas", + "schema": "nonsap", + "columns": { + "CLAS_CD": { + "name": "CLAS_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "CLAS_NM": { + "name": "CLAS_NM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "CLAS_DTL": { + "name": "CLAS_DTL", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "PRNT_CLAS_CD": { + "name": "PRNT_CLAS_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "CLAS_LVL": { + "name": "CLAS_LVL", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "UOM": { + "name": "UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "STYPE": { + "name": "STYPE", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "GRD_MATL": { + "name": "GRD_MATL", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "BSE_UOM": { + "name": "BSE_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_clas_spchar": { + "name": "cmctb_mat_clas_spchar", + "schema": "nonsap", + "columns": { + "CLAS_CD": { + "name": "CLAS_CD", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_CD": { + "name": "SPCHAR_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_SEQ": { + "name": "SPCHAR_SEQ", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "MNDT_YN": { + "name": "MNDT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cmctb_mat_clas_spchar_CLAS_CD_SPCHAR_CD_pk": { + "name": "cmctb_mat_clas_spchar_CLAS_CD_SPCHAR_CD_pk", + "columns": [ + "CLAS_CD", + "SPCHAR_CD" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_dsc": { + "name": "cmctb_mat_dsc", + "schema": "nonsap", + "columns": { + "MAT_NO": { + "name": "MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "MAT_DTL": { + "name": "MAT_DTL", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_plnt": { + "name": "cmctb_mat_plnt", + "schema": "nonsap", + "columns": { + "MAT_NO": { + "name": "MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "PLNT": { + "name": "PLNT", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "DELV_UOM": { + "name": "DELV_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "EA_BTCH_ND_GB": { + "name": "EA_BTCH_ND_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PRCR_CLF": { + "name": "PRCR_CLF", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PUR_CHRGR_CD": { + "name": "PUR_CHRGR_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PRCR_CHRGR_CD": { + "name": "PRCR_CHRGR_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "GOODS_CHRGR_CD": { + "name": "GOODS_CHRGR_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PUR_LT": { + "name": "PUR_LT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "MRP_TP": { + "name": "MRP_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "MAT_STAT": { + "name": "MAT_STAT", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "BULK_MAT_ORDR": { + "name": "BULK_MAT_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PRCR_TP": { + "name": "PRCR_TP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SFTY_STCK_QTY": { + "name": "SFTY_STCK_QTY", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SER_PROF": { + "name": "SER_PROF", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "BATCH_MNG_ORDR": { + "name": "BATCH_MNG_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "SP_PRCR_TP": { + "name": "SP_PRCR_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_spchar": { + "name": "cmctb_mat_spchar", + "schema": "nonsap", + "columns": { + "MAT_NO": { + "name": "MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_CD": { + "name": "SPCHAR_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_DTL": { + "name": "SPCHAR_DTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_CD": { + "name": "SPCHAR_VAL_CD", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_DTL": { + "name": "SPCHAR_VAL_DTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_NUM": { + "name": "SPCHAR_VAL_NUM", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_UOM": { + "name": "SPCHAR_VAL_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_spchar_mast": { + "name": "cmctb_mat_spchar_mast", + "schema": "nonsap", + "columns": { + "SPCHAR_CD": { + "name": "SPCHAR_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_DTL": { + "name": "SPCHAR_DTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_TP": { + "name": "SPCHAR_TP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_UOM": { + "name": "SPCHAR_VAL_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_VAL_YN": { + "name": "SPCHAR_VAL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SPCHAR_GRP": { + "name": "SPCHAR_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cmctb_mat_spchar_mast_SPCHAR_CD_pk": { + "name": "cmctb_mat_spchar_mast_SPCHAR_CD_pk", + "columns": [ + "SPCHAR_CD" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_spchar_val": { + "name": "cmctb_mat_spchar_val", + "schema": "nonsap", + "columns": { + "SPCHAR_CD": { + "name": "SPCHAR_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_VAL_CD": { + "name": "SPCHAR_VAL_CD", + "type": "varchar(90)", + "primaryKey": false, + "notNull": true + }, + "SPCHAR_VAL_DTL": { + "name": "SPCHAR_VAL_DTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cmctb_mat_spchar_val_SPCHAR_CD_SPCHAR_VAL_CD_pk": { + "name": "cmctb_mat_spchar_val_SPCHAR_CD_SPCHAR_VAL_CD_pk", + "columns": [ + "SPCHAR_CD", + "SPCHAR_VAL_CD" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_mat_uom": { + "name": "cmctb_mat_uom", + "schema": "nonsap", + "columns": { + "MAT_NO": { + "name": "MAT_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": true + }, + "SBST_UOM": { + "name": "SBST_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "CNVRT_FCTR_1": { + "name": "CNVRT_FCTR_1", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "CNVRT_FCTR_2": { + "name": "CNVRT_FCTR_2", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "LTH": { + "name": "LTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "WTH": { + "name": "WTH", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "HGT": { + "name": "HGT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SZ_UOM": { + "name": "SZ_UOM", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_proj_bizcls": { + "name": "cmctb_proj_bizcls", + "schema": "nonsap", + "columns": { + "PROJ_NO": { + "name": "PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "TYPE": { + "name": "TYPE", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "BIZCLS": { + "name": "BIZCLS", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "QM_CLS": { + "name": "QM_CLS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NEW_MC_YN": { + "name": "NEW_MC_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_proj_mast": { + "name": "cmctb_proj_mast", + "schema": "nonsap", + "columns": { + "PROJ_NO": { + "name": "PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "MSHIP_NO": { + "name": "MSHIP_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "SERS_NO": { + "name": "SERS_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "REF_NO": { + "name": "REF_NO", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "SKND": { + "name": "SKND", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE": { + "name": "SHTYPE", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_UOM": { + "name": "SHTYPE_UOM", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "DOCK_CD": { + "name": "DOCK_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "OWN_1": { + "name": "OWN_1", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "CLS_1": { + "name": "CLS_1", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "CNRT_DT": { + "name": "CNRT_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CNRT_DL_DT": { + "name": "CNRT_DL_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DSC": { + "name": "PROJ_DSC", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "PROJ_GB": { + "name": "PROJ_GB", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "OWN_NM": { + "name": "OWN_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "NEW_SKND2": { + "name": "NEW_SKND2", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "OWN_AB": { + "name": "OWN_AB", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "CHINA_YN": { + "name": "CHINA_YN", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DTL_TP": { + "name": "PROJ_DTL_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "PROJ_PROF": { + "name": "PROJ_PROF", + "type": "varchar(7)", + "primaryKey": false, + "notNull": false + }, + "INQY_NO": { + "name": "INQY_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "INQY_SEQ": { + "name": "INQY_SEQ", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "NTTP": { + "name": "NTTP", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "RLTD_PROJ": { + "name": "RLTD_PROJ", + "type": "varchar(40)", + "primaryKey": false, + "notNull": false + }, + "DIGT_PDT_GRP": { + "name": "DIGT_PDT_GRP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "WP_PROJ_TP": { + "name": "WP_PROJ_TP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "TOT_CNRT_CNT": { + "name": "TOT_CNRT_CNT", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PROJ_ETC_TP": { + "name": "PROJ_ETC_TP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SRC_SYS_ID": { + "name": "SRC_SYS_ID", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PRGS_STAT": { + "name": "PRGS_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_YN": { + "name": "DEL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DL_CSTM_CD": { + "name": "DL_CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PDT_LVL_4": { + "name": "PDT_LVL_4", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "AS_GRNT_PRD": { + "name": "AS_GRNT_PRD", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "RL_DL_DT": { + "name": "RL_DL_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "SA_DT": { + "name": "SA_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "GOV": { + "name": "GOV", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "DL_BF_PROJ_NM": { + "name": "DL_BF_PROJ_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "IMO_NO": { + "name": "IMO_NO", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DIST_PATH": { + "name": "DIST_PATH", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "SALE_ORG_CD": { + "name": "SALE_ORG_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "SALE_GRP": { + "name": "SALE_GRP", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "BIZLOC_CD": { + "name": "BIZLOC_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "MNG_ACOT_DMN": { + "name": "MNG_ACOT_DMN", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "CO_CD": { + "name": "CO_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "BIZ_DMN": { + "name": "BIZ_DMN", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PLNT_CD": { + "name": "PLNT_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PRCTR": { + "name": "PRCTR", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNRT_CNTN_YN": { + "name": "CNRT_CNTN_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CNRT_RESV_YN": { + "name": "CNRT_RESV_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PROJ_PRGS_YN": { + "name": "PROJ_PRGS_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SYS_ACOT_CLSD_DT": { + "name": "SYS_ACOT_CLSD_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "PROJ_SCP": { + "name": "PROJ_SCP", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "LOA": { + "name": "LOA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "MN_ENGN_TP_CD": { + "name": "MN_ENGN_TP_CD", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "SPD": { + "name": "SPD", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "GT": { + "name": "GT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "BP_DL_DT": { + "name": "BP_DL_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_GRP": { + "name": "SHTYPE_GRP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PROJ_CRTE_REQ_EMPNO": { + "name": "PROJ_CRTE_REQ_EMPNO", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "PROJ_CRTE_REQ_DT": { + "name": "PROJ_CRTE_REQ_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IO_GB": { + "name": "IO_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CSTM_PO_NO": { + "name": "CSTM_PO_NO", + "type": "varchar(35)", + "primaryKey": false, + "notNull": false + }, + "GENT_CNT": { + "name": "GENT_CNT", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "ORDR_GRNT_PRD": { + "name": "ORDR_GRNT_PRD", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "ORDR_GRNT_FN_DT": { + "name": "ORDR_GRNT_FN_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DSN_CHRGR": { + "name": "DSN_CHRGR", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_PROJ_NM": { + "name": "DL_AF_PROJ_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_RL_CLNT": { + "name": "DL_AF_RL_CLNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_SHPSRV_SCP": { + "name": "DL_AF_SHPSRV_SCP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_NTTP": { + "name": "DL_AF_NTTP", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_CLS": { + "name": "DL_AF_CLS", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_CALL_SIGN": { + "name": "DL_AF_CALL_SIGN", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_TEL_NO": { + "name": "DL_AF_TEL_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_FAX_NO": { + "name": "DL_AF_FAX_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "DL_AF_EMAIL_ADR": { + "name": "DL_AF_EMAIL_ADR", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "PROJ_WBS_TP": { + "name": "PROJ_WBS_TP", + "type": "varchar(7)", + "primaryKey": false, + "notNull": false + }, + "XSTAT": { + "name": "XSTAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "XMSGS": { + "name": "XMSGS", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "XDATS": { + "name": "XDATS", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "XTIMS": { + "name": "XTIMS", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHN_PROJ_TP": { + "name": "CHN_PROJ_TP", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "FIN_GRNT_FN_DT": { + "name": "FIN_GRNT_FN_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "STDT": { + "name": "STDT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "SERS_YN": { + "name": "SERS_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "TYPE": { + "name": "TYPE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PRO_PROJ_NO": { + "name": "PRO_PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "PBSD_PROJ_NO": { + "name": "PBSD_PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "PBSD_SHIP_NM": { + "name": "PBSD_SHIP_NM", + "type": "varchar(150)", + "primaryKey": false, + "notNull": false + }, + "BIZCLS": { + "name": "BIZCLS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CLS_2": { + "name": "CLS_2", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_CD": { + "name": "SHTYPE_CD", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DL_PLN_DT": { + "name": "PROJ_DL_PLN_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "PROJ_DL_RT_DT": { + "name": "PROJ_DL_RT_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "TOT_AREA": { + "name": "TOT_AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "EXMPT_AREA": { + "name": "EXMPT_AREA", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "EXMPT_RAT": { + "name": "EXMPT_RAT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "QM_CLS": { + "name": "QM_CLS", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CNCT_PROJ_NO": { + "name": "CNCT_PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "EQP_DTL_YN": { + "name": "EQP_DTL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "EXP_YN": { + "name": "EXP_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "ACT_MH_YN": { + "name": "ACT_MH_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SPEC": { + "name": "SPEC", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DSGN_LIFE": { + "name": "DSGN_LIFE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NEW_MC_YN": { + "name": "NEW_MC_YN", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "WK_ENV_WT_VAL_YN": { + "name": "WK_ENV_WT_VAL_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "GRNT_STDT": { + "name": "GRNT_STDT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "TMH_ADPT_YN": { + "name": "TMH_ADPT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "ZV_YN": { + "name": "ZV_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SEC_YN": { + "name": "SEC_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_proj_wbs": { + "name": "cmctb_proj_wbs", + "schema": "nonsap", + "columns": { + "PROJ_NO": { + "name": "PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "WBS_ELMT": { + "name": "WBS_ELMT", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "WBS_ELMT_NM": { + "name": "WBS_ELMT_NM", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "WBS_LVL": { + "name": "WBS_LVL", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "FLAG": { + "name": "FLAG", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "WBS_INSD_ELMT": { + "name": "WBS_INSD_ELMT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "HGRK_WBS_ELMT": { + "name": "HGRK_WBS_ELMT", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "XSTAT": { + "name": "XSTAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "XMSGS": { + "name": "XMSGS", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "XDATS": { + "name": "XDATS", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "XTIMS": { + "name": "XTIMS", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "SYS_STAT": { + "name": "SYS_STAT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_1": { + "name": "WBS_ELMT_1", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_2": { + "name": "WBS_ELMT_2", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_3": { + "name": "WBS_ELMT_3", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_4": { + "name": "WBS_ELMT_4", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_5": { + "name": "WBS_ELMT_5", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_6": { + "name": "WBS_ELMT_6", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_7": { + "name": "WBS_ELMT_7", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_8": { + "name": "WBS_ELMT_8", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_9": { + "name": "WBS_ELMT_9", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + }, + "WBS_ELMT_10": { + "name": "WBS_ELMT_10", + "type": "varchar(24)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_addr": { + "name": "cmctb_vendor_addr", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "INTL_ADR_VER_ID": { + "name": "INTL_ADR_VER_ID", + "type": "varchar(1)", + "primaryKey": false, + "notNull": true + }, + "CITY_ZIP_NO": { + "name": "CITY_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "POBX_ZIP_NO": { + "name": "POBX_ZIP_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ADR_1": { + "name": "ADR_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "ADR_2": { + "name": "ADR_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "REGN_CD": { + "name": "REGN_CD", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "TTL": { + "name": "TTL", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_1": { + "name": "VNDRNM_ABRV_1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_2": { + "name": "VNDRNM_ABRV_2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_1": { + "name": "VNDRNM_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_2": { + "name": "VNDRNM_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "LANG_KEY": { + "name": "LANG_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_1": { + "name": "ETC_ADR_1", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "ETC_ADR_2": { + "name": "ETC_ADR_2", + "type": "varchar(180)", + "primaryKey": false, + "notNull": false + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "POBX": { + "name": "POBX", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "TRANS_ZONE": { + "name": "TRANS_ZONE", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_3": { + "name": "VNDRNM_3", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_4": { + "name": "VNDRNM_4", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "TAX_JRDT_ZONE_CD": { + "name": "TAX_JRDT_ZONE_CD", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "ADR_TMZ": { + "name": "ADR_TMZ", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_compny": { + "name": "cmctb_vendor_compny", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CO_CD": { + "name": "CO_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "CTL_ACNT": { + "name": "CTL_ACNT", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SRT_KEY": { + "name": "SRT_KEY", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "PLN_GRP": { + "name": "PLN_GRP", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BF_VNDRCD": { + "name": "BF_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPLY_COND": { + "name": "SPLY_COND", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "OVLAP_INVC_ORDR": { + "name": "OVLAP_INVC_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SPLY_MTHD": { + "name": "SPLY_MTHD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SPLY_HOLD_ORDR": { + "name": "SPLY_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "TRD_BANK_SHRT_KEY": { + "name": "TRD_BANK_SHRT_KEY", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "HOLD_CAUS": { + "name": "HOLD_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_NTN_CD": { + "name": "SRCE_TX_NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "MIN_ORDR": { + "name": "MIN_ORDR", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "SPRT_SPLY_ORDR": { + "name": "SPRT_SPLY_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CSTM_VNDR_CLR_ORDR": { + "name": "CSTM_VNDR_CLR_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_CD": { + "name": "SRCE_TX_CD", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "IATA_BIC_GB": { + "name": "IATA_BIC_GB", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "REP_TP": { + "name": "REP_TP", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "LOGST_VNDR_TP": { + "name": "LOGST_VNDR_TP", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "VNDR_ACNT_NO": { + "name": "VNDR_ACNT_NO", + "type": "varchar(12)", + "primaryKey": false, + "notNull": false + }, + "VNDR_CHRGR_NM": { + "name": "VNDR_CHRGR_NM", + "type": "varchar(45)", + "primaryKey": false, + "notNull": false + }, + "ACOT_CHRGR_TELNO": { + "name": "ACOT_CHRGR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "AUTH_GRP": { + "name": "AUTH_GRP", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "FIN_IR_CALC_DT": { + "name": "FIN_IR_CALC_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "FIN_IR_ACT_DT": { + "name": "FIN_IR_ACT_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "ACOT_CHRGR_FAXNO": { + "name": "ACOT_CHRGR_FAXNO", + "type": "varchar(31)", + "primaryKey": false, + "notNull": false + }, + "MK_CHRGR_EMAIL": { + "name": "MK_CHRGR_EMAIL", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "MEMO": { + "name": "MEMO", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "MOFFC_ACNT_NO": { + "name": "MOFFC_ACNT_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "cmctb_vendor_compny_VNDRCD_CO_CD_pk": { + "name": "cmctb_vendor_compny_VNDRCD_CO_CD_pk", + "columns": [ + "VNDRCD", + "CO_CD" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_general": { + "name": "cmctb_vendor_general", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ACNT_GRP": { + "name": "ACNT_GRP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "ACNT_GRP_TP": { + "name": "ACNT_GRP_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "CSTM_CD": { + "name": "CSTM_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "PST_HOLD_ORDR": { + "name": "PST_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_ORDR": { + "name": "PUR_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "HOLD_CAUS": { + "name": "HOLD_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CO_ID": { + "name": "CO_ID", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "REPR_NM": { + "name": "REPR_NM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "BIZTP": { + "name": "BIZTP", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "BIZCON": { + "name": "BIZCON", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "REG_DT": { + "name": "REG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "REG_DTM": { + "name": "REG_DTM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "REGR_ID": { + "name": "REGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "AGR_DT": { + "name": "AGR_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "AGR_TM": { + "name": "AGR_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "AGR_R_ID": { + "name": "AGR_R_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR_ID": { + "name": "CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "REP_TEL_NO": { + "name": "REP_TEL_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "REP_FAX_NO": { + "name": "REP_FAX_NO", + "type": "varchar(31)", + "primaryKey": false, + "notNull": false + }, + "BIZR_NO": { + "name": "BIZR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CO_REG_NO": { + "name": "CO_REG_NO", + "type": "varchar(18)", + "primaryKey": false, + "notNull": false + }, + "TX_CD_4": { + "name": "TX_CD_4", + "type": "varchar(54)", + "primaryKey": false, + "notNull": false + }, + "CO_INST_DT": { + "name": "CO_INST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "VNDR_TP": { + "name": "VNDR_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "GBL_TOP_CD": { + "name": "GBL_TOP_CD", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "GBL_TOP_NM": { + "name": "GBL_TOP_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "DMST_TOP_CD": { + "name": "DMST_TOP_CD", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "DMST_TOP_NM": { + "name": "DMST_TOP_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "BIZ_UOM_CD": { + "name": "BIZ_UOM_CD", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "BIZ_UOM_NM": { + "name": "BIZ_UOM_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "DNS_NO": { + "name": "DNS_NO", + "type": "varchar(11)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "TTL": { + "name": "TTL", + "type": "varchar(45)", + "primaryKey": false, + "notNull": false + }, + "VAT_REG_NO": { + "name": "VAT_REG_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "GIRO_VNDR_ORDR": { + "name": "GIRO_VNDR_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_1": { + "name": "VNDRNM_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_2": { + "name": "VNDRNM_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_3": { + "name": "VNDRNM_3", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_4": { + "name": "VNDRNM_4", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_1": { + "name": "VNDRNM_ABRV_1", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "VNDRNM_ABRV_2": { + "name": "VNDRNM_ABRV_2", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "PTNT_VNDRCD": { + "name": "PTNT_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "ADR_1": { + "name": "ADR_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "ADR_2": { + "name": "ADR_2", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_NM": { + "name": "QLT_CHRGR_NM", + "type": "varchar(60)", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_TELNO": { + "name": "QLT_CHRGR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "QLT_CHRGR_EMAIL": { + "name": "QLT_CHRGR_EMAIL", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "SB_WKA_SEQ": { + "name": "SB_WKA_SEQ", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "OVLAP_CAUS_CD": { + "name": "OVLAP_CAUS_CD", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "DOC_TP": { + "name": "DOC_TP", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "DOC_NO": { + "name": "DOC_NO", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "PTN_DOC": { + "name": "PTN_DOC", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "DOC_VER": { + "name": "DOC_VER", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "INB_FLAG": { + "name": "INB_FLAG", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_HOLD_ORDR": { + "name": "DEL_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_DT": { + "name": "PUR_HOLD_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "POBX": { + "name": "POBX", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "INTL_LCTN_CHK_NUM": { + "name": "INTL_LCTN_CHK_NUM", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SRCETX_RP_SEX_KEY": { + "name": "SRCETX_RP_SEX_KEY", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "VNDR_CNRT_CHRGR_1": { + "name": "VNDR_CNRT_CHRGR_1", + "type": "varchar(105)", + "primaryKey": false, + "notNull": false + }, + "VNDR_CNRT_CHRGR_2": { + "name": "VNDR_CNRT_CHRGR_2", + "type": "varchar(105)", + "primaryKey": false, + "notNull": false + }, + "REPR_RESNO": { + "name": "REPR_RESNO", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CO_VLM": { + "name": "CO_VLM", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_grp": { + "name": "cmctb_vendor_grp", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "BIZ_GRP_CD": { + "name": "BIZ_GRP_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CRTER_ID": { + "name": "CRTER_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHGR_ID": { + "name": "CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_inco": { + "name": "cmctb_vendor_inco", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "VNDRNM": { + "name": "VNDRNM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "REPR_NM": { + "name": "REPR_NM", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "PRTNR_GB": { + "name": "PRTNR_GB", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_CD": { + "name": "INCO_PRTNR_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_WKA_1": { + "name": "INCO_PRTNR_WKA_1", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_WKA_2": { + "name": "INCO_PRTNR_WKA_2", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_WKA_3": { + "name": "INCO_PRTNR_WKA_3", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "JBTYPE_CD": { + "name": "JBTYPE_CD", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "JBTYPE_CD_2": { + "name": "JBTYPE_CD_2", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "INDV_CO_GB": { + "name": "INDV_CO_GB", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "INCO_FOND_YN": { + "name": "INCO_FOND_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DOCK_NO": { + "name": "DOCK_NO", + "type": "varchar(25)", + "primaryKey": false, + "notNull": false + }, + "OCMP_INP_DT": { + "name": "OCMP_INP_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "INCO_DUSE_DT": { + "name": "INCO_DUSE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "INDST_INS_PMRAT": { + "name": "INDST_INS_PMRAT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "CNRT_PFRM_GRAMT": { + "name": "CNRT_PFRM_GRAMT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "WGE_RAT": { + "name": "WGE_RAT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "CRSPD_DEPTCD_1": { + "name": "CRSPD_DEPTCD_1", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CRSPD_DEPTCD_2": { + "name": "CRSPD_DEPTCD_2", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CRSPD_TEAM_BLNG": { + "name": "CRSPD_TEAM_BLNG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_ITM_1": { + "name": "INCO_PRTNR_ITM_1", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "INCO_PRTNR_ITM_2": { + "name": "INCO_PRTNR_ITM_2", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "OFC_LOC": { + "name": "OFC_LOC", + "type": "varchar(240)", + "primaryKey": false, + "notNull": false + }, + "REP_OCMP_CARR": { + "name": "REP_OCMP_CARR", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "INCO_DUSE_CAUS": { + "name": "INCO_DUSE_CAUS", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "TEL_NO": { + "name": "TEL_NO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ADR1": { + "name": "ADR1", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "ADR2": { + "name": "ADR2", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "OLD_VNDRCD": { + "name": "OLD_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "TREE_NUM": { + "name": "TREE_NUM", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "CRTE_DT": { + "name": "CRTE_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CRTE_TM": { + "name": "CRTE_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CRTE_USR_ID": { + "name": "CRTE_USR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "CHG_DT": { + "name": "CHG_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "CHG_TM": { + "name": "CHG_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "CHG_USR_ID": { + "name": "CHG_USR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "UPR_JBTYPE": { + "name": "UPR_JBTYPE", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "ZBYBP": { + "name": "ZBYBP", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "RMK": { + "name": "RMK", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "WDL_PLN_YN": { + "name": "WDL_PLN_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "WGE_DELY_DVL": { + "name": "WGE_DELY_DVL", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "ESCROW_YN": { + "name": "ESCROW_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_porg": { + "name": "cmctb_vendor_porg", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "PUR_ORG_CD": { + "name": "PUR_ORG_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "PUR_ORD_CUR": { + "name": "PUR_ORD_CUR", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "SPLY_COND": { + "name": "SPLY_COND", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "DL_COND_1": { + "name": "DL_COND_1", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "DL_COND_2": { + "name": "DL_COND_2", + "type": "varchar(90)", + "primaryKey": false, + "notNull": false + }, + "CALC_SHM_GRP": { + "name": "CALC_SHM_GRP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "GR_BSE_INVC_VR": { + "name": "GR_BSE_INVC_VR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "AT_PUR_ORD_ORDR": { + "name": "AT_PUR_ORD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_ORDR": { + "name": "PUR_HOLD_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "DEL_ORDR": { + "name": "DEL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "ORD_CNFM_REQ_ORDR": { + "name": "ORD_CNFM_REQ_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "SALE_CHRGR_NM": { + "name": "SALE_CHRGR_NM", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + }, + "VNDR_TELNO": { + "name": "VNDR_TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "CNFM_CTL_KEY": { + "name": "CNFM_CTL_KEY", + "type": "varchar(4)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_DT": { + "name": "PUR_HOLD_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "PUR_HOLD_CAUS": { + "name": "PUR_HOLD_CAUS", + "type": "varchar(120)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_repremail": { + "name": "cmctb_vendor_repremail", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "EMAIL_ADR": { + "name": "EMAIL_ADR", + "type": "varchar(241)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_reprfax": { + "name": "cmctb_vendor_reprfax", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "FAXNO": { + "name": "FAXNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "FAX_ETS_NO": { + "name": "FAX_ETS_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_reprtel": { + "name": "cmctb_vendor_reprtel", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "NTN_CD": { + "name": "NTN_CD", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "TELNO": { + "name": "TELNO", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "ETX_NO": { + "name": "ETX_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "HP_ORDR": { + "name": "HP_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_reprurl": { + "name": "cmctb_vendor_reprurl", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "ADR_NO": { + "name": "ADR_NO", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "REPR_SER": { + "name": "REPR_SER", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "VLD_ST_DT": { + "name": "VLD_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": true + }, + "URL": { + "name": "URL", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_taxnum": { + "name": "cmctb_vendor_taxnum", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "TX_NO_CTG": { + "name": "TX_NO_CTG", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "BIZ_PTNR_TX_NO": { + "name": "BIZ_PTNR_TX_NO", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_vfpn": { + "name": "cmctb_vendor_vfpn", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "PUR_ORG_CD": { + "name": "PUR_ORG_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "VNDR_SUB_NO": { + "name": "VNDR_SUB_NO", + "type": "varchar(6)", + "primaryKey": false, + "notNull": true + }, + "PLNT_CD": { + "name": "PLNT_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "PTNR_SKL": { + "name": "PTNR_SKL", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "PTNR_CNT": { + "name": "PTNR_CNT", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true + }, + "ETC_REF_VNDRCD": { + "name": "ETC_REF_VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "BSE_PTNR_ORDR": { + "name": "BSE_PTNR_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.cmctb_vendor_whthx": { + "name": "cmctb_vendor_whthx", + "schema": "nonsap", + "columns": { + "VNDRCD": { + "name": "VNDRCD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "CO_CD": { + "name": "CO_CD", + "type": "varchar(4)", + "primaryKey": false, + "notNull": true + }, + "SRCE_TX_TP": { + "name": "SRCE_TX_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": true + }, + "SRCE_TX_REL_ORDR": { + "name": "SRCE_TX_REL_ORDR", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "RECIP_TP": { + "name": "RECIP_TP", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_IDENT_NO": { + "name": "SRCE_TX_IDENT_NO", + "type": "varchar(16)", + "primaryKey": false, + "notNull": false + }, + "SRCE_TX_NO": { + "name": "SRCE_TX_NO", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_CERT_NO": { + "name": "DCHAG_CERT_NO", + "type": "varchar(15)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_RAT": { + "name": "DCHAG_RAT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "DCHAG_ST_DT": { + "name": "DCHAG_ST_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_ED_DT": { + "name": "DCHAG_ED_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "DCHAG_CAUS": { + "name": "DCHAG_CAUS", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "IF_DT": { + "name": "IF_DT", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "IF_TM": { + "name": "IF_TM", + "type": "varchar(6)", + "primaryKey": false, + "notNull": false + }, + "IF_STAT": { + "name": "IF_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "IF_MSG": { + "name": "IF_MSG", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "nonsap.plftb_estm_proj_mast": { + "name": "plftb_estm_proj_mast", + "schema": "nonsap", + "columns": { + "ESTM_PROJ_NO": { + "name": "ESTM_PROJ_NO", + "type": "varchar(24)", + "primaryKey": false, + "notNull": true + }, + "AGND_NO": { + "name": "AGND_NO", + "type": "varchar(8)", + "primaryKey": false, + "notNull": false + }, + "ESTM_PROJ_NM": { + "name": "ESTM_PROJ_NM", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "BIZ_CLS": { + "name": "BIZ_CLS", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "REV_NO": { + "name": "REV_NO", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "ESTM_TYPE": { + "name": "ESTM_TYPE", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "OWNER_CD": { + "name": "OWNER_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SERS_CNT": { + "name": "SERS_CNT", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SKND_CD": { + "name": "SKND_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_CD": { + "name": "SHTYPE_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_SIZE": { + "name": "SHTYPE_SIZE", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "SHTYPE_UOM": { + "name": "SHTYPE_UOM", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CHRTR_CD": { + "name": "CHRTR_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "NATN_CD": { + "name": "NATN_CD", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CLS_1": { + "name": "CLS_1", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CLS_2": { + "name": "CLS_2", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "CLS_3": { + "name": "CLS_3", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "DATA_CRTE_GB": { + "name": "DATA_CRTE_GB", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "FS_INPR_ID": { + "name": "FS_INPR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FS_INP_DTM": { + "name": "FS_INP_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "FIN_CHGR_ID": { + "name": "FIN_CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "FIN_CHG_DTM": { + "name": "FIN_CHG_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "VSL_VAG_1": { + "name": "VSL_VAG_1", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "VSL_VAG_2": { + "name": "VSL_VAG_2", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "VSL_VAG_3": { + "name": "VSL_VAG_3", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "VSL_VAG_4": { + "name": "VSL_VAG_4", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "ESTM_AOM_APP_ID": { + "name": "ESTM_AOM_APP_ID", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false + }, + "ESTM_AOM_STAT": { + "name": "ESTM_AOM_STAT", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + }, + "ESTM_AOM_STAT_CHGR_ID": { + "name": "ESTM_AOM_STAT_CHGR_ID", + "type": "varchar(13)", + "primaryKey": false, + "notNull": false + }, + "ESTM_AOM_STAT_CHG_DTM": { + "name": "ESTM_AOM_STAT_CHG_DTM", + "type": "varchar(14)", + "primaryKey": false, + "notNull": false + }, + "IF_TRGT_YN": { + "name": "IF_TRGT_YN", + "type": "varchar(1)", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plftb_estm_proj_mast_ESTM_PROJ_NO_pk": { + "name": "plftb_estm_proj_mast_ESTM_PROJ_NO_pk", + "columns": [ + "ESTM_PROJ_NO" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.user_domain": { + "name": "user_domain", + "schema": "public", + "values": [ + "pending", + "evcp", + "procurement", + "sales", + "engineering", + "partners" + ] + }, + "public.score_type": { + "name": "score_type", + "schema": "public", + "values": [ + "fixed", + "variable" + ] + }, + "public.qna_category": { + "name": "qna_category", + "schema": "public", + "values": [ + "engineering", + "procurement", + "technical_sales" + ] + } + }, + "schemas": { + "mdg": "mdg", + "soap": "soap", + "nonsap": "nonsap" + }, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": { + "public.contracts_detail_view": { + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "contracts_detail_view_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_no": { + "name": "contract_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "contract_name": { + "name": "contract_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "start_date": { + "name": "start_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "end_date": { + "name": "end_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "payment_terms": { + "name": "payment_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_terms": { + "name": "delivery_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "delivery_location": { + "name": "delivery_location", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "total_amount": { + "name": "total_amount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "tax": { + "name": "tax", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "shipping_fee": { + "name": "shipping_fee", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "net_total": { + "name": "net_total", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "partial_shipping_allowed": { + "name": "partial_shipping_allowed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "partial_payment_allowed": { + "name": "partial_payment_allowed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "version": { + "name": "version", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"contracts\".\"id\", \"contracts\".\"contract_no\", \"contracts\".\"contract_name\", \"contracts\".\"status\", \"contracts\".\"start_date\", \"contracts\".\"end_date\", \"contracts\".\"project_id\", \"projects\".\"code\", \"projects\".\"name\", \"contracts\".\"vendor_id\", \"vendors\".\"vendor_name\", \"contracts\".\"payment_terms\", \"contracts\".\"delivery_terms\", \"contracts\".\"delivery_date\", \"contracts\".\"delivery_location\", \"contracts\".\"currency\", \"contracts\".\"total_amount\", \"contracts\".\"discount\", \"contracts\".\"tax\", \"contracts\".\"shipping_fee\", \"contracts\".\"net_total\", \"contracts\".\"partial_shipping_allowed\", \"contracts\".\"partial_payment_allowed\", \"contracts\".\"remarks\", \"contracts\".\"version\", \"contracts\".\"created_at\", \"contracts\".\"updated_at\", EXISTS (\n SELECT 1 \n FROM \"contract_envelopes\" \n WHERE \"contract_envelopes\".\"contract_id\" = \"contracts\".\"id\"\n ) as \"has_signature\", COALESCE((\n SELECT json_agg(\n json_build_object(\n 'id', ci.id,\n 'itemId', ci.item_id,\n 'description', ci.description,\n 'quantity', ci.quantity,\n 'unitPrice', ci.unit_price,\n 'taxRate', ci.tax_rate,\n 'taxAmount', ci.tax_amount,\n 'totalLineAmount', ci.total_line_amount,\n 'remark', ci.remark,\n 'createdAt', ci.created_at,\n 'updatedAt', ci.updated_at\n )\n )\n FROM \"contract_items\" AS ci\n WHERE ci.contract_id = \"contracts\".\"id\"\n ), '[]') as \"items\", COALESCE((\n SELECT json_agg(\n json_build_object(\n 'id', ce.id,\n 'envelopeId', ce.envelope_id,\n 'documentId', ce.document_id,\n 'envelopeStatus', ce.envelope_status,\n 'fileName', ce.file_name,\n 'filePath', ce.file_path,\n 'createdAt', ce.created_at,\n 'updatedAt', ce.updated_at,\n 'signers', (\n SELECT json_agg(\n json_build_object(\n 'id', cs.id,\n 'vendorContactId', cs.vendor_contact_id,\n 'signerType', cs.signer_type,\n 'signerEmail', cs.signer_email,\n 'signerName', cs.signer_name,\n 'signerPosition', cs.signer_position,\n 'signerStatus', cs.signer_status,\n 'signedAt', cs.signed_at\n )\n )\n FROM \"contract_signers\" AS cs\n WHERE cs.envelope_id = ce.id\n )\n )\n )\n FROM \"contract_envelopes\" AS ce\n WHERE ce.contract_id = \"contracts\".\"id\"\n ), '[]') as \"envelopes\" from \"contracts\" left join \"projects\" on \"contracts\".\"project_id\" = \"projects\".\"id\" left join \"vendors\" on \"contracts\".\"vendor_id\" = \"vendors\".\"id\"", + "name": "contracts_detail_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.poa_detail_view": { + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "poa_detail_view_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "contract_no": { + "name": "contract_no", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "change_reason": { + "name": "change_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "approval_status": { + "name": "approval_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "'PENDING'" + }, + "delivery_terms": { + "name": "delivery_terms", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "delivery_location": { + "name": "delivery_location", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "total_amount": { + "name": "total_amount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "tax": { + "name": "tax", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "shipping_fee": { + "name": "shipping_fee", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "net_total": { + "name": "net_total", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"poa\".\"id\", \"poa\".\"contract_no\", \"contracts\".\"project_id\", \"contracts\".\"vendor_id\", \"poa\".\"change_reason\", \"poa\".\"approval_status\", \"contracts\".\"contract_name\" as \"original_contract_name\", \"contracts\".\"status\" as \"original_status\", \"contracts\".\"start_date\" as \"original_start_date\", \"contracts\".\"end_date\" as \"original_end_date\", \"poa\".\"delivery_terms\", \"poa\".\"delivery_date\", \"poa\".\"delivery_location\", \"poa\".\"currency\", \"poa\".\"total_amount\", \"poa\".\"discount\", \"poa\".\"tax\", \"poa\".\"shipping_fee\", \"poa\".\"net_total\", \"poa\".\"created_at\", \"poa\".\"updated_at\", EXISTS (\n SELECT 1 \n FROM \"contract_envelopes\" \n WHERE \"contract_envelopes\".\"contract_id\" = \"poa\".\"id\"\n ) as \"has_signature\" from \"poa\" left join \"contracts\" on \"poa\".\"contract_no\" = \"contracts\".\"contract_no\"", + "name": "poa_detail_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.project_approved_vendors": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_REVIEW'" + }, + "name_ko": { + "name": "name_ko", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "name_en": { + "name": "name_en", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'ship'" + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "approved_at": { + "name": "approved_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"vendors\".\"id\", \"vendors\".\"vendor_name\", \"vendors\".\"vendor_code\", \"vendors\".\"tax_id\", \"vendors\".\"email\", \"vendors\".\"phone\", \"vendors\".\"status\", \"vendor_types\".\"name_ko\", \"vendor_types\".\"name_en\", \"projects\".\"code\", \"projects\".\"name\", \"projects\".\"type\", \"vendor_pq_submissions\".\"submitted_at\", \"vendor_pq_submissions\".\"approved_at\" from \"vendors\" inner join \"vendor_pq_submissions\" on \"vendor_pq_submissions\".\"vendor_id\" = \"vendors\".\"id\" inner join \"projects\" on \"vendor_pq_submissions\".\"project_id\" = \"projects\".\"id\" left join \"vendor_types\" on \"vendors\".\"vendor_type_id\" = \"vendor_types\".\"id\" where \"vendor_pq_submissions\".\"status\" = 'APPROVED'", + "name": "project_approved_vendors", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_investigations_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "pq_submission_id": { + "name": "pq_submission_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "requester_id": { + "name": "requester_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "qm_manager_id": { + "name": "qm_manager_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "investigation_status": { + "name": "investigation_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "default": "'PLANNED'" + }, + "evaluation_type": { + "name": "evaluation_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "investigation_address": { + "name": "investigation_address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "investigation_method": { + "name": "investigation_method", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "scheduled_start_at": { + "name": "scheduled_start_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "scheduled_end_at": { + "name": "scheduled_end_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "forecasted_at": { + "name": "forecasted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "requested_at": { + "name": "requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "evaluation_score": { + "name": "evaluation_score", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluation_result": { + "name": "evaluation_result", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "investigation_notes": { + "name": "investigation_notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"vendor_investigations\".\"id\", \"vendor_investigations\".\"vendor_id\", \"vendor_investigations\".\"pq_submission_id\", \"vendor_investigations\".\"requester_id\", \"vendor_investigations\".\"qm_manager_id\", \"vendor_investigations\".\"investigation_status\", \"vendor_investigations\".\"evaluation_type\", \"vendor_investigations\".\"investigation_address\", \"vendor_investigations\".\"investigation_method\", \"vendor_investigations\".\"scheduled_start_at\", \"vendor_investigations\".\"scheduled_end_at\", \"vendor_investigations\".\"forecasted_at\", \"vendor_investigations\".\"requested_at\", \"vendor_investigations\".\"confirmed_at\", \"vendor_investigations\".\"completed_at\", \"vendor_investigations\".\"evaluation_score\", \"vendor_investigations\".\"evaluation_result\", \"vendor_investigations\".\"investigation_notes\", \"vendor_investigations\".\"created_at\", \"vendor_investigations\".\"updated_at\", \"vendors\".\"vendor_name\", \"vendors\".\"vendor_code\", requester.name as \"requesterName\", requester.email as \"requesterEmail\", qm_manager.name as \"qmManagerName\", qm_manager.email as \"qmManagerEmail\", (\n CASE \n WHEN EXISTS (\n SELECT 1 FROM vendor_investigation_attachments via \n WHERE via.investigation_id = \"vendor_investigations\".\"id\"\n ) \n THEN true \n ELSE false \n END\n ) as \"hasAttachments\" from \"vendor_investigations\" left join \"vendors\" on \"vendor_investigations\".\"vendor_id\" = \"vendors\".\"id\" left join users AS requester on \"vendor_investigations\".\"requester_id\" = requester.id left join users AS qm_manager on \"vendor_investigations\".\"qm_manager_id\" = qm_manager.id", + "name": "vendor_investigations_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.cbe_view": { + "columns": {}, + "definition": "select \"cbe_evaluations\".\"id\" as \"cbe_id\", \"cbe_evaluations\".\"rfq_id\" as \"rfq_id\", \"cbe_evaluations\".\"vendor_id\" as \"vendor_id\", \"cbe_evaluations\".\"total_cost\" as \"total_cost\", \"cbe_evaluations\".\"currency\" as \"currency\", \"cbe_evaluations\".\"payment_terms\" as \"payment_terms\", \"cbe_evaluations\".\"incoterms\" as \"incoterms\", \"cbe_evaluations\".\"result\" as \"result\", \"cbe_evaluations\".\"notes\" as \"notes\", \"cbe_evaluations\".\"evaluated_by\" as \"evaluated_by\", \"cbe_evaluations\".\"evaluated_at\" as \"evaluated_at\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"description\" as \"rfq_description\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"users\".\"name\" as \"evaluator_name\", \"users\".\"email\" as \"evaluator_email\" from \"cbe_evaluations\" inner join \"rfqs\" on \"cbe_evaluations\".\"rfq_id\" = \"rfqs\".\"id\" inner join \"vendors\" on \"cbe_evaluations\".\"vendor_id\" = \"vendors\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"users\" on \"cbe_evaluations\".\"evaluated_by\" = \"users\".\"id\"", + "name": "cbe_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.rfqs_view": { + "columns": {}, + "definition": "select \"rfqs\".\"id\" as \"rfq_id\", \"rfqs\".\"status\" as \"status\", \"rfqs\".\"created_at\" as \"created_at\", \"rfqs\".\"updated_at\" as \"updated_at\", \"rfqs\".\"created_by\" as \"created_by\", \"rfqs\".\"rfq_type\" as \"rfq_type\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"description\" as \"description\", \"rfqs\".\"due_date\" as \"due_date\", \"rfqs\".\"parent_rfq_id\" as \"parent_rfq_id\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"users\".\"email\" as \"user_email\", \"users\".\"name\" as \"user_name\", (\n SELECT COUNT(*) \n FROM \"rfq_items\" \n WHERE \"rfq_items\".\"rfq_id\" = \"rfqs\".\"id\"\n ) as \"item_count\", (\n SELECT COUNT(*) \n FROM \"rfq_attachments\" \n WHERE \"rfq_attachments\".\"rfq_id\" = \"rfqs\".\"id\"\n ) as \"attachment_count\" from \"rfqs\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"users\" on \"rfqs\".\"created_by\" = \"users\".\"id\"", + "name": "rfqs_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_cbe_view": { + "columns": {}, + "definition": "select \"vendors\".\"id\" as \"vendor_id\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"address\" as \"address\", \"vendors\".\"country\" as \"country\", \"vendors\".\"email\" as \"email\", \"vendors\".\"website\" as \"website\", \"vendors\".\"status\" as \"vendor_status\", \"vendor_responses\".\"id\" as \"vendor_response_id\", \"vendor_responses\".\"rfq_id\" as \"rfq_id\", \"vendor_responses\".\"response_status\" as \"rfq_vendor_status\", \"vendor_responses\".\"updated_at\" as \"rfq_vendor_updated\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"rfq_type\" as \"rfq_type\", \"rfqs\".\"description\" as \"description\", \"rfqs\".\"due_date\" as \"due_date\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"cbe_evaluations\".\"id\" as \"cbe_id\", \"cbe_evaluations\".\"result\" as \"cbe_result\", \"cbe_evaluations\".\"notes\" as \"cbe_note\", \"cbe_evaluations\".\"updated_at\" as \"cbe_updated\", \"cbe_evaluations\".\"total_cost\" as \"total_cost\", \"cbe_evaluations\".\"currency\" as \"currency\", \"cbe_evaluations\".\"payment_terms\" as \"payment_terms\", \"cbe_evaluations\".\"incoterms\" as \"incoterms\", \"cbe_evaluations\".\"delivery_schedule\" as \"delivery_schedule\" from \"vendors\" left join \"vendor_responses\" on \"vendor_responses\".\"vendor_id\" = \"vendors\".\"id\" left join \"rfqs\" on \"vendor_responses\".\"rfq_id\" = \"rfqs\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"cbe_evaluations\" on (\"cbe_evaluations\".\"vendor_id\" = \"vendors\".\"id\" and \"cbe_evaluations\".\"rfq_id\" = \"vendor_responses\".\"rfq_id\")", + "name": "vendor_cbe_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_response_cbe_view": { + "columns": {}, + "definition": "select \"vendor_responses\".\"id\" as \"response_id\", \"vendor_responses\".\"rfq_id\" as \"rfq_id\", \"vendor_responses\".\"vendor_id\" as \"vendor_id\", \"vendor_responses\".\"response_status\" as \"response_status\", \"vendor_responses\".\"notes\" as \"response_notes\", \"vendor_responses\".\"responded_by\" as \"responded_by\", \"vendor_responses\".\"responded_at\" as \"responded_at\", \"vendor_responses\".\"updated_at\" as \"response_updated_at\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"description\" as \"rfq_description\", \"rfqs\".\"due_date\" as \"rfq_due_date\", \"rfqs\".\"status\" as \"rfq_status\", \"rfqs\".\"rfq_type\" as \"rfq_type\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"status\" as \"vendor_status\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"vendor_commercial_responses\".\"id\" as \"commercial_response_id\", \"vendor_commercial_responses\".\"response_status\" as \"commercial_response_status\", \"vendor_commercial_responses\".\"total_price\" as \"total_price\", \"vendor_commercial_responses\".\"currency\" as \"currency\", \"vendor_commercial_responses\".\"payment_terms\" as \"payment_terms\", \"vendor_commercial_responses\".\"incoterms\" as \"incoterms\", \"vendor_commercial_responses\".\"delivery_period\" as \"delivery_period\", \"vendor_commercial_responses\".\"warranty_period\" as \"warranty_period\", \"vendor_commercial_responses\".\"validity_period\" as \"validity_period\", \"vendor_commercial_responses\".\"price_breakdown\" as \"price_breakdown\", \"vendor_commercial_responses\".\"commercial_notes\" as \"commercial_notes\", \"vendor_commercial_responses\".\"created_at\" as \"commercial_created_at\", \"vendor_commercial_responses\".\"updated_at\" as \"commercial_updated_at\", (\n SELECT COUNT(*) \n FROM \"vendor_response_attachments\" \n WHERE \"vendor_response_attachments\".\"response_id\" = \"vendor_responses\".\"id\"\n ) as \"attachment_count\", (\n SELECT COUNT(*) \n FROM \"vendor_response_attachments\" \n WHERE \"vendor_response_attachments\".\"commercial_response_id\" = \"vendor_commercial_responses\".\"id\"\n ) as \"commercial_attachment_count\", (\n SELECT COUNT(*) \n FROM \"vendor_response_attachments\" \n WHERE \"vendor_response_attachments\".\"response_id\" = \"vendor_responses\".\"id\"\n AND \"vendor_response_attachments\".\"attachment_type\" = 'TECHNICAL_SPEC'\n ) as \"technical_attachment_count\", (\n SELECT MAX(\"uploaded_at\") \n FROM \"vendor_response_attachments\" \n WHERE \"vendor_response_attachments\".\"response_id\" = \"vendor_responses\".\"id\"\n ) as \"latest_attachment_date\" from \"vendor_responses\" inner join \"rfqs\" on \"vendor_responses\".\"rfq_id\" = \"rfqs\".\"id\" inner join \"vendors\" on \"vendor_responses\".\"vendor_id\" = \"vendors\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"vendor_commercial_responses\" on \"vendor_commercial_responses\".\"response_id\" = \"vendor_responses\".\"id\"", + "name": "vendor_response_cbe_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_responses_view": { + "columns": {}, + "definition": "select \"vendor_responses\".\"id\" as \"response_id\", \"vendor_responses\".\"rfq_id\" as \"rfq_id\", \"vendor_responses\".\"vendor_id\" as \"vendor_id\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"description\" as \"rfq_description\", \"rfqs\".\"due_date\" as \"rfq_due_date\", \"rfqs\".\"status\" as \"rfq_status\", \"rfqs\".\"rfq_type\" as \"rfq_type\", \"rfqs\".\"created_at\" as \"rfq_created_at\", \"rfqs\".\"updated_at\" as \"rfq_updated_at\", \"rfqs\".\"created_by\" as \"rfq_created_by\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendor_responses\".\"response_status\" as \"response_status\", \"vendor_responses\".\"responded_at\" as \"responded_at\", CASE WHEN \"vendor_technical_responses\".\"id\" IS NOT NULL THEN TRUE ELSE FALSE END as \"has_technical_response\", \"vendor_technical_responses\".\"id\" as \"technical_response_id\", CASE WHEN \"vendor_commercial_responses\".\"id\" IS NOT NULL THEN TRUE ELSE FALSE END as \"has_commercial_response\", \"vendor_commercial_responses\".\"id\" as \"commercial_response_id\", \"vendor_commercial_responses\".\"total_price\" as \"total_price\", \"vendor_commercial_responses\".\"currency\" as \"currency\", \"rfq_evaluations\".\"id\" as \"tbe_id\", \"rfq_evaluations\".\"result\" as \"tbe_result\", \"cbe_evaluations\".\"id\" as \"cbe_id\", \"cbe_evaluations\".\"result\" as \"cbe_result\", (\n SELECT COUNT(*) \n FROM \"vendor_response_attachments\" \n WHERE \"vendor_response_attachments\".\"response_id\" = \"vendor_responses\".\"id\"\n ) as \"attachment_count\" from \"vendor_responses\" inner join \"rfqs\" on \"vendor_responses\".\"rfq_id\" = \"rfqs\".\"id\" inner join \"vendors\" on \"vendor_responses\".\"vendor_id\" = \"vendors\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"vendor_technical_responses\" on \"vendor_technical_responses\".\"response_id\" = \"vendor_responses\".\"id\" left join \"vendor_commercial_responses\" on \"vendor_commercial_responses\".\"response_id\" = \"vendor_responses\".\"id\" left join \"rfq_evaluations\" on (\"rfq_evaluations\".\"rfq_id\" = \"vendor_responses\".\"rfq_id\" and \"rfq_evaluations\".\"vendor_id\" = \"vendor_responses\".\"vendor_id\" and \"rfq_evaluations\".\"eval_type\" = 'TBE') left join \"cbe_evaluations\" on (\"cbe_evaluations\".\"rfq_id\" = \"vendor_responses\".\"rfq_id\" and \"cbe_evaluations\".\"vendor_id\" = \"vendor_responses\".\"vendor_id\")", + "name": "vendor_responses_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_rfq_view": { + "columns": {}, + "definition": "select \"vendors\".\"id\" as \"vendor_id\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"address\" as \"address\", \"vendors\".\"country\" as \"country\", \"vendors\".\"email\" as \"email\", \"vendors\".\"website\" as \"website\", \"vendors\".\"status\" as \"vendor_status\", \"vendor_responses\".\"rfq_id\" as \"rfq_id\", \"vendor_responses\".\"response_status\" as \"rfq_vendor_status\", \"vendor_responses\".\"updated_at\" as \"rfq_vendor_updated\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"description\" as \"description\", \"rfqs\".\"due_date\" as \"due_date\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\" from \"vendors\" left join \"vendor_responses\" on \"vendor_responses\".\"vendor_id\" = \"vendors\".\"id\" left join \"rfqs\" on \"vendor_responses\".\"rfq_id\" = \"rfqs\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\"", + "name": "vendor_rfq_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_tbe_view": { + "columns": {}, + "definition": "select \"vendors\".\"id\" as \"vendor_id\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"address\" as \"address\", \"vendors\".\"country\" as \"country\", \"vendors\".\"email\" as \"email\", \"vendors\".\"website\" as \"website\", \"vendors\".\"status\" as \"vendor_status\", \"vendor_responses\".\"id\" as \"vendor_response_id\", \"vendor_responses\".\"rfq_id\" as \"rfq_id\", \"vendor_responses\".\"response_status\" as \"rfq_vendor_status\", \"vendor_responses\".\"updated_at\" as \"rfq_vendor_updated\", \"vendor_technical_responses\".\"id\" as \"technical_response_id\", \"vendor_technical_responses\".\"response_status\" as \"technical_response_status\", \"vendor_technical_responses\".\"summary\" as \"technical_summary\", \"vendor_technical_responses\".\"notes\" as \"technical_notes\", \"vendor_technical_responses\".\"updated_at\" as \"technical_updated\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"rfqs\".\"rfq_type\" as \"rfq_type\", \"rfqs\".\"status\" as \"rfq_status\", \"rfqs\".\"description\" as \"description\", \"rfqs\".\"due_date\" as \"due_date\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"rfq_evaluations\".\"id\" as \"tbe_id\", \"rfq_evaluations\".\"result\" as \"tbe_result\", \"rfq_evaluations\".\"notes\" as \"tbe_note\", \"rfq_evaluations\".\"updated_at\" as \"tbe_updated\" from \"vendors\" left join \"vendor_responses\" on \"vendor_responses\".\"vendor_id\" = \"vendors\".\"id\" left join \"rfqs\" on \"vendor_responses\".\"rfq_id\" = \"rfqs\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"vendor_technical_responses\" on \"vendor_technical_responses\".\"response_id\" = \"vendor_responses\".\"id\" left join \"rfq_evaluations\" on (\"rfq_evaluations\".\"vendor_id\" = \"vendors\".\"id\" and \"rfq_evaluations\".\"eval_type\" = 'TBE' and \"rfq_evaluations\".\"rfq_id\" = \"vendor_responses\".\"rfq_id\")", + "name": "vendor_tbe_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.role_view": { + "columns": {}, + "definition": "select \"roles\".\"id\" as \"id\", \"roles\".\"name\" as \"name\", \"roles\".\"description\" as \"description\", \"roles\".\"domain\" as \"domain\", \"roles\".\"created_at\" as \"created_at\", \"vendors\".\"id\" as \"company_id\", \"vendors\".\"vendor_name\" as \"company_name\", COUNT(\"users\".\"id\") as \"user_count\" from \"roles\" left join \"user_roles\" on \"user_roles\".\"role_id\" = \"roles\".\"id\" left join \"users\" on \"users\".\"id\" = \"user_roles\".\"user_id\" left join \"vendors\" on \"roles\".\"company_id\" = \"vendors\".\"id\" group by \"roles\".\"id\", \"vendors\".\"id\"", + "name": "role_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.user_view": { + "columns": {}, + "definition": "select \"users\".\"id\" as \"user_id\", \"users\".\"name\" as \"user_name\", \"users\".\"phone\" as \"user_phone\", \"users\".\"email\" as \"user_email\", \"users\".\"domain\" as \"user_domain\", \"users\".\"image_url\" as \"user_image\", \"vendors\".\"id\" as \"company_id\", \"vendors\".\"vendor_name\" as \"company_name\", \n array_agg(\"roles\".\"name\")\n as \"roles\", \"users\".\"created_at\" as \"created_at\" from \"users\" left join \"vendors\" on \"users\".\"company_id\" = \"vendors\".\"id\" left join \"user_roles\" on \"users\".\"id\" = \"user_roles\".\"user_id\" left join \"roles\" on \"user_roles\".\"role_id\" = \"roles\".\"id\" group by \"users\".\"id\", \"vendors\".\"id\"", + "name": "user_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.form_lists_view": { + "columns": {}, + "definition": "select \"tag_type_class_form_mappings\".\"id\" as \"id\", \"tag_type_class_form_mappings\".\"project_id\" as \"project_id\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"tag_type_class_form_mappings\".\"tag_type_label\" as \"tag_type_label\", \"tag_type_class_form_mappings\".\"class_label\" as \"class_label\", \"tag_type_class_form_mappings\".\"form_code\" as \"form_code\", \"tag_type_class_form_mappings\".\"form_name\" as \"form_name\", \"tag_type_class_form_mappings\".\"ep\" as \"ep\", \"tag_type_class_form_mappings\".\"remark\" as \"remark\", \"tag_type_class_form_mappings\".\"created_at\" as \"created_at\", \"tag_type_class_form_mappings\".\"updated_at\" as \"updated_at\" from \"tag_type_class_form_mappings\" inner join \"projects\" on \"tag_type_class_form_mappings\".\"project_id\" = \"projects\".\"id\"", + "name": "form_lists_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.view_tag_subfields": { + "columns": { + "tag_type_code": { + "name": "tag_type_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "attributes_id": { + "name": "attributes_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "attributes_description": { + "name": "attributes_description", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expression": { + "name": "expression", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "delimiter": { + "name": "delimiter", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "sort_order": { + "name": "sort_order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "code": { + "name": "code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "definition": "select \"tag_subfields\".\"id\" as \"id\", \"tag_subfields\".\"tag_type_code\", \"tag_types\".\"description\", \"tag_subfields\".\"attributes_id\", \"tag_subfields\".\"attributes_description\", \"tag_subfields\".\"expression\", \"tag_subfields\".\"delimiter\", \"tag_subfields\".\"sort_order\", \"tag_subfields\".\"created_at\", \"tag_subfields\".\"updated_at\", \"projects\".\"id\" as \"project_id\", \"projects\".\"code\", \"projects\".\"name\" from \"tag_subfields\" inner join \"tag_types\" on (\"tag_subfields\".\"tag_type_code\" = \"tag_types\".\"code\" and \"tag_subfields\".\"project_id\" = \"tag_types\".\"project_id\") inner join \"projects\" on \"tag_subfields\".\"project_id\" = \"projects\".\"id\"", + "name": "view_tag_subfields", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.document_stages_view": { + "columns": { + "document_id": { + "name": "document_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "doc_number": { + "name": "doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "issued_date": { + "name": "issued_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "stage_count": { + "name": "stage_count", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "stage_list": { + "name": "stage_list", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "definition": "\n SELECT\n d.id AS document_id,\n d.doc_number,\n d.title,\n d.status,\n d.issued_date,\n d.contract_id,\n (SELECT COUNT(*) FROM issue_stages WHERE document_id = d.id) AS stage_count,\n COALESCE( \n (SELECT json_agg(i.stage_name) FROM issue_stages i WHERE i.document_id = d.id), \n '[]'\n ) AS stage_list,\n d.created_at,\n d.updated_at\n FROM documents d\n", + "name": "document_stages_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.enhanced_documents_view": { + "columns": { + "document_id": { + "name": "document_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "doc_number": { + "name": "doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "drawing_kind": { + "name": "drawing_kind", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_doc_number": { + "name": "vendor_doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "pic": { + "name": "pic", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "issued_date": { + "name": "issued_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_code": { + "name": "project_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "c_gbn": { + "name": "c_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "d_gbn": { + "name": "d_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "degree_gbn": { + "name": "degree_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "dept_gbn": { + "name": "dept_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "j_gbn": { + "name": "j_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "s_gbn": { + "name": "s_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "current_stage_id": { + "name": "current_stage_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "current_stage_name": { + "name": "current_stage_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "current_stage_status": { + "name": "current_stage_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "current_stage_order": { + "name": "current_stage_order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "current_stage_plan_date": { + "name": "current_stage_plan_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "current_stage_actual_date": { + "name": "current_stage_actual_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "current_stage_assignee_name": { + "name": "current_stage_assignee_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "current_stage_priority": { + "name": "current_stage_priority", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "days_until_due": { + "name": "days_until_due", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "is_overdue": { + "name": "is_overdue", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "days_difference": { + "name": "days_difference", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "total_stages": { + "name": "total_stages", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "completed_stages": { + "name": "completed_stages", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "progress_percentage": { + "name": "progress_percentage", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_revision_id": { + "name": "latest_revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_revision": { + "name": "latest_revision", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "latest_revision_status": { + "name": "latest_revision_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "latest_revision_uploader_name": { + "name": "latest_revision_uploader_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "latest_submitted_date": { + "name": "latest_submitted_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "all_stages": { + "name": "all_stages", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "attachment_count": { + "name": "attachment_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "definition": "\n WITH document_stats AS (\n SELECT \n d.id as document_id,\n COUNT(ist.id) as total_stages,\n COUNT(CASE WHEN ist.stage_status IN ('COMPLETED', 'APPROVED') THEN 1 END) as completed_stages,\n CASE \n WHEN COUNT(ist.id) > 0 \n THEN ROUND((COUNT(CASE WHEN ist.stage_status IN ('COMPLETED', 'APPROVED') THEN 1 END) * 100.0) / COUNT(ist.id))\n ELSE 0 \n END as progress_percentage\n FROM documents d\n LEFT JOIN issue_stages ist ON d.id = ist.document_id\n GROUP BY d.id\n ),\n current_stage_info AS (\n SELECT DISTINCT ON (document_id)\n document_id,\n id as current_stage_id,\n stage_name as current_stage_name,\n stage_status as current_stage_status,\n stage_order as current_stage_order,\n plan_date as current_stage_plan_date,\n actual_date as current_stage_actual_date,\n assignee_name as current_stage_assignee_name,\n priority as current_stage_priority,\n CASE \n WHEN actual_date IS NULL AND plan_date IS NOT NULL \n THEN plan_date - CURRENT_DATE\n ELSE NULL \n END as days_until_due,\n CASE \n WHEN actual_date IS NULL AND plan_date < CURRENT_DATE \n THEN true\n WHEN actual_date IS NOT NULL AND actual_date > plan_date \n THEN true\n ELSE false \n END as is_overdue,\n CASE \n WHEN actual_date IS NOT NULL AND plan_date IS NOT NULL \n THEN actual_date - plan_date\n ELSE NULL \n END as days_difference\n FROM issue_stages\n WHERE stage_status NOT IN ('COMPLETED', 'APPROVED')\n ORDER BY document_id, stage_order ASC, priority DESC\n ),\n latest_revision_info AS (\n SELECT DISTINCT ON (ist.document_id)\n ist.document_id,\n r.id as latest_revision_id,\n r.revision as latest_revision,\n r.revision_status as latest_revision_status,\n r.uploader_name as latest_revision_uploader_name,\n r.submitted_date as latest_submitted_date\n FROM revisions r\n JOIN issue_stages ist ON r.issue_stage_id = ist.id\n ORDER BY ist.document_id, r.created_at DESC\n ),\n -- 리비전별 첨부파일 집계\n revision_attachments AS (\n SELECT \n r.id as revision_id,\n COALESCE(\n json_agg(\n json_build_object(\n 'id', da.id,\n 'revisionId', da.revision_id,\n 'fileName', da.file_name,\n 'filePath', da.file_path,\n 'fileSize', da.file_size,\n 'fileType', da.file_type,\n 'createdAt', da.created_at,\n 'updatedAt', da.updated_at\n ) ORDER BY da.created_at\n ) FILTER (WHERE da.id IS NOT NULL),\n '[]'::json\n ) as attachments\n FROM revisions r\n LEFT JOIN document_attachments da ON r.id = da.revision_id\n GROUP BY r.id\n ),\n -- 스테이지별 리비전 집계 (첨부파일 포함)\n stage_revisions AS (\n SELECT \n ist.id as stage_id,\n COALESCE(\n json_agg(\n json_build_object(\n 'id', r.id,\n 'issueStageId', r.issue_stage_id,\n 'revision', r.revision,\n 'uploaderType', r.uploader_type,\n 'uploaderId', r.uploader_id,\n 'uploaderName', r.uploader_name,\n 'comment', r.comment,\n 'usage', r.usage,\n 'revisionStatus', r.revision_status,\n 'submittedDate', r.submitted_date,\n 'uploadedAt', r.uploaded_at,\n 'approvedDate', r.approved_date,\n 'reviewStartDate', r.review_start_date,\n 'rejectedDate', r.rejected_date,\n 'reviewerId', r.reviewer_id,\n 'reviewerName', r.reviewer_name,\n 'reviewComments', r.review_comments,\n 'createdAt', r.created_at,\n 'updatedAt', r.updated_at,\n 'attachments', ra.attachments\n ) ORDER BY r.created_at\n ) FILTER (WHERE r.id IS NOT NULL),\n '[]'::json\n ) as revisions\n FROM issue_stages ist\n LEFT JOIN revisions r ON ist.id = r.issue_stage_id\n LEFT JOIN revision_attachments ra ON r.id = ra.revision_id\n GROUP BY ist.id\n ),\n -- 문서별 스테이지 집계 (리비전 포함)\n stage_aggregation AS (\n SELECT \n ist.document_id,\n json_agg(\n json_build_object(\n 'id', ist.id,\n 'stageName', ist.stage_name,\n 'stageStatus', ist.stage_status,\n 'stageOrder', ist.stage_order,\n 'planDate', ist.plan_date,\n 'actualDate', ist.actual_date,\n 'assigneeName', ist.assignee_name,\n 'priority', ist.priority,\n 'revisions', sr.revisions\n ) ORDER BY ist.stage_order\n ) as all_stages\n FROM issue_stages ist\n LEFT JOIN stage_revisions sr ON ist.id = sr.stage_id\n GROUP BY ist.document_id\n ),\n attachment_counts AS (\n SELECT \n ist.document_id,\n COUNT(da.id) as attachment_count\n FROM issue_stages ist\n LEFT JOIN revisions r ON ist.id = r.issue_stage_id\n LEFT JOIN document_attachments da ON r.id = da.revision_id\n GROUP BY ist.document_id\n )\n \n SELECT \n d.id as document_id,\n d.doc_number,\n d.drawing_kind,\n d.vendor_doc_number, -- ✅ 벤더 문서 번호 추가\n d.title,\n d.pic,\n d.status,\n d.issued_date,\n d.contract_id,\n\n d.c_gbn,\n d.d_gbn,\n d.degree_gbn,\n d.dept_gbn,\n d.s_gbn,\n d.j_gbn,\n\n\n \n -- ✅ 프로젝트 및 벤더 정보 추가\n p.code as project_code,\n v.vendor_name as vendor_name,\n v.vendor_code as vendor_code,\n c.vendor_id as vendor_id,\n \n -- 현재 스테이지 정보\n csi.current_stage_id,\n csi.current_stage_name,\n csi.current_stage_status,\n csi.current_stage_order,\n csi.current_stage_plan_date,\n csi.current_stage_actual_date,\n csi.current_stage_assignee_name,\n csi.current_stage_priority,\n \n -- 계산 필드\n csi.days_until_due,\n csi.is_overdue,\n csi.days_difference,\n \n -- 진행률 정보\n ds.total_stages,\n ds.completed_stages,\n ds.progress_percentage,\n \n -- 최신 리비전 정보\n lri.latest_revision_id,\n lri.latest_revision,\n lri.latest_revision_status,\n lri.latest_revision_uploader_name,\n lri.latest_submitted_date,\n \n -- 전체 스테이지 (리비전 및 첨부파일 포함)\n COALESCE(sa.all_stages, '[]'::json) as all_stages,\n \n -- 기타\n COALESCE(ac.attachment_count, 0) as attachment_count,\n d.created_at,\n d.updated_at\n \n FROM documents d\n -- ✅ contracts, projects, vendors 테이블 JOIN 추가\n LEFT JOIN contracts c ON d.contract_id = c.id\n LEFT JOIN projects p ON c.project_id = p.id\n LEFT JOIN vendors v ON c.vendor_id = v.id\n \n LEFT JOIN document_stats ds ON d.id = ds.document_id\n LEFT JOIN current_stage_info csi ON d.id = csi.document_id\n LEFT JOIN latest_revision_info lri ON d.id = lri.document_id\n LEFT JOIN stage_aggregation sa ON d.id = sa.document_id\n LEFT JOIN attachment_counts ac ON d.id = ac.document_id\n \n ORDER BY d.created_at DESC\n", + "name": "enhanced_documents_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.simplified_documents_view": { + "columns": { + "document_id": { + "name": "document_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "doc_number": { + "name": "doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "drawing_kind": { + "name": "drawing_kind", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_doc_number": { + "name": "vendor_doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "pic": { + "name": "pic", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "issued_date": { + "name": "issued_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "project_code": { + "name": "project_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "c_gbn": { + "name": "c_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "d_gbn": { + "name": "d_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "degree_gbn": { + "name": "degree_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "dept_gbn": { + "name": "dept_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "j_gbn": { + "name": "j_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "s_gbn": { + "name": "s_gbn", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "first_stage_id": { + "name": "first_stage_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "first_stage_name": { + "name": "first_stage_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "first_stage_plan_date": { + "name": "first_stage_plan_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "first_stage_actual_date": { + "name": "first_stage_actual_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "second_stage_id": { + "name": "second_stage_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "second_stage_name": { + "name": "second_stage_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "second_stage_plan_date": { + "name": "second_stage_plan_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "second_stage_actual_date": { + "name": "second_stage_actual_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "all_stages": { + "name": "all_stages", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "attachment_count": { + "name": "attachment_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "definition": "\n WITH \n -- 리비전별 첨부파일 집계\n revision_attachments AS (\n SELECT \n r.id as revision_id,\n COALESCE(\n json_agg(\n json_build_object(\n 'id', da.id,\n 'revisionId', da.revision_id,\n 'fileName', da.file_name,\n 'filePath', da.file_path,\n 'fileSize', da.file_size,\n 'fileType', da.file_type,\n 'createdAt', da.created_at,\n 'updatedAt', da.updated_at\n ) ORDER BY da.created_at\n ) FILTER (WHERE da.id IS NOT NULL),\n '[]'::json\n ) as attachments\n FROM revisions r\n LEFT JOIN document_attachments da ON r.id = da.revision_id\n GROUP BY r.id\n ),\n -- 스테이지별 리비전 집계 (첨부파일 포함)\n stage_revisions AS (\n SELECT \n ist.id as stage_id,\n COALESCE(\n json_agg(\n json_build_object(\n 'id', r.id,\n 'issueStageId', r.issue_stage_id,\n 'revision', r.revision,\n 'uploaderType', r.uploader_type,\n 'uploaderId', r.uploader_id,\n 'uploaderName', r.uploader_name,\n 'comment', r.comment,\n 'usage', r.usage,\n 'usageType', r.usage_type,\n 'revisionStatus', r.revision_status,\n 'submittedDate', r.submitted_date,\n 'uploadedAt', r.uploaded_at,\n 'approvedDate', r.approved_date,\n 'reviewStartDate', r.review_start_date,\n 'rejectedDate', r.rejected_date,\n 'reviewerId', r.reviewer_id,\n 'reviewerName', r.reviewer_name,\n 'reviewComments', r.review_comments,\n 'createdAt', r.created_at,\n 'updatedAt', r.updated_at,\n 'attachments', ra.attachments\n ) ORDER BY r.created_at\n ) FILTER (WHERE r.id IS NOT NULL),\n '[]'::json\n ) as revisions\n FROM issue_stages ist\n LEFT JOIN revisions r ON ist.id = r.issue_stage_id\n LEFT JOIN revision_attachments ra ON r.id = ra.revision_id\n GROUP BY ist.id\n ),\n -- 문서별 스테이지 집계 (리비전 포함)\n stage_aggregation AS (\n SELECT \n ist.document_id,\n json_agg(\n json_build_object(\n 'id', ist.id,\n 'stageName', ist.stage_name,\n 'stageStatus', ist.stage_status,\n 'stageOrder', ist.stage_order,\n 'planDate', ist.plan_date,\n 'actualDate', ist.actual_date,\n 'assigneeName', ist.assignee_name,\n 'priority', ist.priority,\n 'revisions', sr.revisions\n ) ORDER BY ist.stage_order\n ) as all_stages\n FROM issue_stages ist\n LEFT JOIN stage_revisions sr ON ist.id = sr.stage_id\n GROUP BY ist.document_id\n ),\n -- 첫 번째 스테이지 정보 (drawingKind에 따라 다른 조건)\n first_stage_info AS (\n SELECT DISTINCT ON (ist.document_id)\n ist.document_id,\n ist.id as first_stage_id,\n ist.stage_name as first_stage_name,\n ist.plan_date as first_stage_plan_date,\n ist.actual_date as first_stage_actual_date\n FROM issue_stages ist\n JOIN documents d ON ist.document_id = d.id\n WHERE \n (d.drawing_kind = 'B4' AND LOWER(ist.stage_name) LIKE '%pre%') OR\n (d.drawing_kind = 'B3' AND LOWER(ist.stage_name) LIKE '%approval%') OR\n (d.drawing_kind = 'B5' AND LOWER(ist.stage_name) LIKE '%first%')\n ORDER BY ist.document_id, ist.stage_order ASC\n ),\n -- 두 번째 스테이지 정보 (drawingKind에 따라 다른 조건)\n second_stage_info AS (\n SELECT DISTINCT ON (ist.document_id)\n ist.document_id,\n ist.id as second_stage_id,\n ist.stage_name as second_stage_name,\n ist.plan_date as second_stage_plan_date,\n ist.actual_date as second_stage_actual_date\n FROM issue_stages ist\n JOIN documents d ON ist.document_id = d.id\n WHERE \n (d.drawing_kind = 'B4' AND LOWER(ist.stage_name) LIKE '%work%') OR\n (d.drawing_kind = 'B3' AND LOWER(ist.stage_name) LIKE '%work%') OR\n (d.drawing_kind = 'B5' AND LOWER(ist.stage_name) LIKE '%second%')\n ORDER BY ist.document_id, ist.stage_order ASC\n ),\n -- 첨부파일 수 집계\n attachment_counts AS (\n SELECT \n ist.document_id,\n COUNT(da.id) as attachment_count\n FROM issue_stages ist\n LEFT JOIN revisions r ON ist.id = r.issue_stage_id\n LEFT JOIN document_attachments da ON r.id = da.revision_id\n GROUP BY ist.document_id\n )\n \n SELECT \n d.id as document_id,\n d.doc_number,\n d.drawing_kind,\n d.vendor_doc_number,\n d.title,\n d.pic,\n d.status,\n d.issued_date,\n d.contract_id,\n \n -- B4 전용 필드들\n d.c_gbn,\n d.d_gbn,\n d.degree_gbn,\n d.dept_gbn,\n d.s_gbn,\n d.j_gbn,\n \n -- 프로젝트 및 벤더 정보\n p.code as project_code,\n v.vendor_name as vendor_name,\n v.vendor_code as vendor_code,\n \n -- 첫 번째 스테이지 정보\n fsi.first_stage_id,\n fsi.first_stage_name,\n fsi.first_stage_plan_date,\n fsi.first_stage_actual_date,\n \n -- 두 번째 스테이지 정보\n ssi.second_stage_id,\n ssi.second_stage_name,\n ssi.second_stage_plan_date,\n ssi.second_stage_actual_date,\n \n -- 전체 스테이지 (리비전 및 첨부파일 포함)\n COALESCE(sa.all_stages, '[]'::json) as all_stages,\n \n -- 기타\n COALESCE(ac.attachment_count, 0) as attachment_count,\n d.created_at,\n d.updated_at\n \n FROM documents d\n -- contracts, projects, vendors 테이블 JOIN\n LEFT JOIN contracts c ON d.contract_id = c.id\n INNER JOIN projects p ON c.project_id = p.id AND p.type = 'ship'\n LEFT JOIN vendors v ON c.vendor_id = v.id\n \n -- 스테이지 정보 JOIN\n LEFT JOIN first_stage_info fsi ON d.id = fsi.document_id\n LEFT JOIN second_stage_info ssi ON d.id = ssi.document_id\n LEFT JOIN stage_aggregation sa ON d.id = sa.document_id\n LEFT JOIN attachment_counts ac ON d.id = ac.document_id\n \n ORDER BY d.created_at DESC\n", + "name": "simplified_documents_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.sync_status_view": { + "columns": { + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "target_system": { + "name": "target_system", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "total_changes": { + "name": "total_changes", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "pending_changes": { + "name": "pending_changes", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "synced_changes": { + "name": "synced_changes", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "failed_changes": { + "name": "failed_changes", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "last_sync_at": { + "name": "last_sync_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "next_sync_at": { + "name": "next_sync_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "sync_enabled": { + "name": "sync_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n WITH change_stats AS (\n SELECT \n cl.contract_id,\n sc.target_system,\n COUNT(*) as total_changes,\n COUNT(CASE WHEN cl.is_synced = false AND cl.sync_attempts < sc.retry_max_attempts THEN 1 END) as pending_changes,\n COUNT(CASE WHEN cl.is_synced = true THEN 1 END) as synced_changes,\n COUNT(CASE WHEN cl.sync_attempts >= sc.retry_max_attempts AND cl.is_synced = false THEN 1 END) as failed_changes,\n MAX(cl.synced_at) as last_sync_at\n FROM change_logs cl\n CROSS JOIN sync_configs sc \n WHERE cl.contract_id = sc.contract_id\n AND (cl.target_systems IS NULL OR cl.target_systems @> to_jsonb(sc.target_system))\n GROUP BY cl.contract_id, sc.target_system\n )\n SELECT \n cs.contract_id,\n cs.target_system,\n COALESCE(cs.total_changes, 0) as total_changes,\n COALESCE(cs.pending_changes, 0) as pending_changes,\n COALESCE(cs.synced_changes, 0) as synced_changes,\n COALESCE(cs.failed_changes, 0) as failed_changes,\n cs.last_sync_at,\n CASE \n WHEN sc.sync_enabled = true AND sc.last_successful_sync IS NOT NULL \n THEN sc.last_successful_sync + (sc.sync_interval_minutes || ' minutes')::interval\n ELSE NULL\n END as next_sync_at,\n sc.sync_enabled\n FROM sync_configs sc\n LEFT JOIN change_stats cs ON sc.contract_id = cs.contract_id AND sc.target_system = cs.target_system\n", + "name": "sync_status_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_documents_view": { + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "doc_number": { + "name": "doc_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "pic": { + "name": "pic", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "issued_date": { + "name": "issued_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "contract_id": { + "name": "contract_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "latest_stage_id": { + "name": "latest_stage_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_stage_name": { + "name": "latest_stage_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "latest_stage_plan_date": { + "name": "latest_stage_plan_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "latest_stage_actual_date": { + "name": "latest_stage_actual_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "latest_revision_id": { + "name": "latest_revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_revision": { + "name": "latest_revision", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "latest_revision_uploader_type": { + "name": "latest_revision_uploader_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "latest_revision_uploader_name": { + "name": "latest_revision_uploader_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "attachment_count": { + "name": "attachment_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "definition": "\n SELECT \n d.id, \n d.doc_number,\n d.title,\n d.pic,\n d.status,\n d.issued_date,\n d.contract_id,\n \n (SELECT id FROM issue_stages WHERE document_id = d.id ORDER BY created_at DESC LIMIT 1) AS latest_stage_id,\n (SELECT stage_name FROM issue_stages WHERE document_id = d.id ORDER BY created_at DESC LIMIT 1) AS latest_stage_name,\n (SELECT plan_date FROM issue_stages WHERE document_id = d.id ORDER BY created_at DESC LIMIT 1) AS latest_stage_plan_date,\n (SELECT actual_date FROM issue_stages WHERE document_id = d.id ORDER BY created_at DESC LIMIT 1) AS latest_stage_actual_date,\n \n (SELECT r.id FROM revisions r JOIN issue_stages i ON r.issue_stage_id = i.id WHERE i.document_id = d.id ORDER BY r.created_at DESC LIMIT 1) AS latest_revision_id,\n (SELECT r.revision FROM revisions r JOIN issue_stages i ON r.issue_stage_id = i.id WHERE i.document_id = d.id ORDER BY r.created_at DESC LIMIT 1) AS latest_revision,\n (SELECT r.uploader_type FROM revisions r JOIN issue_stages i ON r.issue_stage_id = i.id WHERE i.document_id = d.id ORDER BY r.created_at DESC LIMIT 1) AS latest_revision_uploader_type,\n (SELECT r.uploader_name FROM revisions r JOIN issue_stages i ON r.issue_stage_id = i.id WHERE i.document_id = d.id ORDER BY r.created_at DESC LIMIT 1) AS latest_revision_uploader_name,\n \n (SELECT COUNT(*) FROM document_attachments a JOIN revisions r ON a.revision_id = r.id JOIN issue_stages i ON r.issue_stage_id = i.id WHERE i.document_id = d.id) AS attachment_count,\n \n d.created_at,\n d.updated_at\n FROM documents d\n JOIN contracts c ON d.contract_id = c.id\n ", + "name": "vendor_documents_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_candidates_with_vendor_info": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "company_name": { + "name": "company_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'COLLECTED'" + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"vendor_candidates\".\"id\", \"vendor_candidates\".\"company_name\", \"vendor_candidates\".\"contact_email\", \"vendor_candidates\".\"contact_phone\", \"vendor_candidates\".\"tax_id\", \"vendor_candidates\".\"address\", \"vendor_candidates\".\"country\", \"vendor_candidates\".\"source\", \"vendor_candidates\".\"status\", \"vendor_candidates\".\"items\", \"vendor_candidates\".\"remark\", \"vendor_candidates\".\"created_at\", \"vendor_candidates\".\"updated_at\", \"vendors\".\"vendor_name\", \"vendors\".\"vendor_code\", \"vendors\".\"created_at\" as \"vendor_created_at\", (\n SELECT l2.\"created_at\"\n FROM \"vendor_candidate_logs\" l2\n WHERE l2.\"vendor_candidate_id\" = \"vendor_candidates\".\"id\"\n AND l2.\"action\" = 'status_change'\n ORDER BY l2.\"created_at\" DESC\n LIMIT 1\n ) as \"last_status_change_at\", (\n SELECT u.\"name\"\n FROM \"users\" u\n JOIN \"vendor_candidate_logs\" l3\n ON l3.\"user_id\" = u.\"id\"\n WHERE l3.\"vendor_candidate_id\" = \"vendor_candidates\".\"id\"\n AND l3.\"action\" = 'status_change'\n ORDER BY l3.\"created_at\" DESC\n LIMIT 1\n ) as \"last_status_change_by\", (\n SELECT l4.\"created_at\"\n FROM \"vendor_candidate_logs\" l4\n WHERE l4.\"vendor_candidate_id\" = \"vendor_candidates\".\"id\"\n AND l4.\"action\" = 'invite_sent'\n ORDER BY l4.\"created_at\" DESC\n LIMIT 1\n ) as \"last_invitation_at\", (\n SELECT u2.\"name\"\n FROM \"users\" u2\n JOIN \"vendor_candidate_logs\" l5\n ON l5.\"user_id\" = u2.\"id\"\n WHERE l5.\"vendor_candidate_id\" = \"vendor_candidates\".\"id\"\n AND l5.\"action\" = 'invite_sent'\n ORDER BY l5.\"created_at\" DESC\n LIMIT 1\n ) as \"last_invitation_by\" from \"vendor_candidates\" left join \"vendors\" on \"vendor_candidates\".\"vendor_id\" = \"vendors\".\"id\"", + "name": "vendor_candidates_with_vendor_info", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_detail_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "business_size": { + "name": "business_size", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "website": { + "name": "website", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_REVIEW'" + }, + "representative_name": { + "name": "representative_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_birth": { + "name": "representative_birth", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "representative_email": { + "name": "representative_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_phone": { + "name": "representative_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "corporate_registration_number": { + "name": "corporate_registration_number", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "credit_agency": { + "name": "credit_agency", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "credit_rating": { + "name": "credit_rating", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "cash_flow_rating": { + "name": "cash_flow_rating", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"id\", \"vendor_name\", \"vendor_code\", \"tax_id\", \"address\", \"business_size\", \"country\", \"phone\", \"email\", \"website\", \"status\", \"representative_name\", \"representative_birth\", \"representative_email\", \"representative_phone\", \"corporate_registration_number\", \"credit_agency\", \"credit_rating\", \"cash_flow_rating\", \"created_at\", \"updated_at\", \n (SELECT COALESCE(\n json_agg(\n json_build_object(\n 'id', c.id,\n 'contactName', c.contact_name,\n 'contactPosition', c.contact_position,\n 'contactEmail', c.contact_email,\n 'contactPhone', c.contact_phone,\n 'isPrimary', c.is_primary\n )\n ),\n '[]'::json\n )\n FROM vendor_contacts c\n WHERE c.vendor_id = vendors.id)\n as \"contacts\", \n (SELECT COALESCE(\n json_agg(\n json_build_object(\n 'id', a.id,\n 'fileName', a.file_name,\n 'filePath', a.file_path,\n 'attachmentType', a.attachment_type,\n 'createdAt', a.created_at\n )\n ORDER BY a.attachment_type, a.created_at DESC\n ),\n '[]'::json\n )\n FROM vendor_attachments a\n WHERE a.vendor_id = vendors.id)\n as \"attachments\", \n (SELECT COUNT(*)\n FROM vendor_attachments a\n WHERE a.vendor_id = vendors.id)\n as \"attachment_count\", \n (SELECT COUNT(*) \n FROM vendor_contacts c\n WHERE c.vendor_id = vendors.id)\n as \"contact_count\" from \"vendors\"", + "name": "vendor_detail_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_items_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"vendor_possible_items\".\"id\", \"vendor_possible_items\".\"vendor_id\", \"items\".\"item_name\", \"items\".\"item_code\", \"items\".\"description\", \"vendor_possible_items\".\"created_at\", \"vendor_possible_items\".\"updated_at\" from \"vendor_possible_items\" left join \"items\" on \"vendor_possible_items\".\"item_code\" = \"items\".\"item_code\"", + "name": "vendor_items_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_materials_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "unit_of_measure": { + "name": "unit_of_measure", + "type": "varchar(3)", + "primaryKey": false, + "notNull": false + }, + "steel_type": { + "name": "steel_type", + "type": "varchar(2)", + "primaryKey": false, + "notNull": false + }, + "grade_material": { + "name": "grade_material", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"vendor_possible_materials\".\"id\", \"vendor_possible_materials\".\"vendor_id\", \"materials\".\"item_name\", \"materials\".\"item_code\", \"materials\".\"description\", \"materials\".\"unit_of_measure\", \"materials\".\"steel_type\", \"materials\".\"grade_material\", \"vendor_possible_materials\".\"created_at\", \"vendor_possible_materials\".\"updated_at\" from \"vendor_possible_materials\" left join \"materials\" on \"vendor_possible_materials\".\"item_code\" = \"materials\".\"item_code\"", + "name": "vendor_materials_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendors_with_types": { + "columns": {}, + "definition": "select \"vendors\".\"id\" as \"id\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"tax_id\" as \"tax_id\", \"vendors\".\"address\" as \"address\", \"vendors\".\"country\" as \"country\", \"vendors\".\"phone\" as \"phone\", \"vendors\".\"email\" as \"email\", \"vendors\".\"business_size\" as \"business_size\", \"vendors\".\"website\" as \"website\", \"vendors\".\"status\" as \"status\", \"vendors\".\"vendor_type_id\" as \"vendor_type_id\", \"vendors\".\"representative_name\" as \"representative_name\", \"vendors\".\"representative_birth\" as \"representative_birth\", \"vendors\".\"representative_email\" as \"representative_email\", \"vendors\".\"representative_phone\" as \"representative_phone\", \"vendors\".\"corporate_registration_number\" as \"corporate_registration_number\", \"vendors\".\"items\" as \"items\", \"vendors\".\"credit_agency\" as \"credit_agency\", \"vendors\".\"credit_rating\" as \"credit_rating\", \"vendors\".\"cash_flow_rating\" as \"cash_flow_rating\", \"vendors\".\"created_at\" as \"created_at\", \"vendors\".\"updated_at\" as \"updated_at\", \"vendor_types\".\"name_ko\" as \"vendor_type_name\", \"vendor_types\".\"name_en\" as \"vendor_type_name_en\", \"vendor_types\".\"code\" as \"vendor_type_code\", \n CASE\n WHEN \"vendors\".\"status\" = 'ACTIVE' THEN '정규업체'\n WHEN \"vendors\".\"status\" IN ('INACTIVE', 'BLACKLISTED', 'REJECTED') THEN ''\n ELSE '잠재업체'\n END\n as \"vendor_category\" from \"vendors\" left join \"vendor_types\" on \"vendors\".\"vendor_type_id\" = \"vendor_types\".\"id\"", + "name": "vendors_with_types", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.basic_contract_view": { + "columns": {}, + "definition": "select \"basic_contract\".\"id\" as \"id\", \"basic_contract\".\"template_id\" as \"template_id\", \"basic_contract\".\"vendor_id\" as \"vendor_id\", \"basic_contract\".\"requested_by\" as \"requested_by\", \"basic_contract\".\"status\" as \"basic_contract_status\", \"basic_contract\".\"created_at\" as \"created_at\", \"basic_contract\".\"updated_at\" as \"updated_at\", \"basic_contract\".\"updated_at\" as \"completed_at\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"email\" as \"vendor_email\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"users\".\"name\" as \"user_name\", \"basic_contract_templates\".\"template_name\" as \"template_name\", \"basic_contract_templates\".\"validity_period\" as \"validityPeriod\", \"basic_contract_templates\".\"file_path\" as \"file_path\", \"basic_contract_templates\".\"file_name\" as \"file_name\", \"basic_contract\".\"file_path\" as \"signed_file_path\" from \"basic_contract\" left join \"vendors\" on \"basic_contract\".\"vendor_id\" = \"vendors\".\"id\" left join \"users\" on \"basic_contract\".\"requested_by\" = \"users\".\"id\" left join \"basic_contract_templates\" on \"basic_contract\".\"template_id\" = \"basic_contract_templates\".\"id\"", + "name": "basic_contract_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.pr_items_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "procurement_rfqs_id": { + "name": "procurement_rfqs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_item": { + "name": "rfq_item", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pr_item": { + "name": "pr_item", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pr_no": { + "name": "pr_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "material_code": { + "name": "material_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "material_category": { + "name": "material_category", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "acc": { + "name": "acc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "material_description": { + "name": "material_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "size": { + "name": "size", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "uom": { + "name": "uom", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "gross_weight": { + "name": "gross_weight", + "type": "numeric(12, 2)", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "gw_uom": { + "name": "gw_uom", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "spec_no": { + "name": "spec_no", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "spec_url": { + "name": "spec_url", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "tracking_no": { + "name": "tracking_no", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "major_yn": { + "name": "major_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "project_def": { + "name": "project_def", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_sc": { + "name": "project_sc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_kl": { + "name": "project_kl", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_lc": { + "name": "project_lc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_dl": { + "name": "project_dl", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "item_name": { + "name": "item_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"pr_items\".\"id\", \"pr_items\".\"procurement_rfqs_id\", \"pr_items\".\"rfq_item\", \"pr_items\".\"pr_item\", \"pr_items\".\"pr_no\", \"pr_items\".\"material_code\", \"pr_items\".\"material_category\", \"pr_items\".\"acc\", \"pr_items\".\"material_description\", \"pr_items\".\"size\", \"pr_items\".\"delivery_date\", \"pr_items\".\"quantity\", \"pr_items\".\"uom\", \"pr_items\".\"gross_weight\", \"pr_items\".\"gw_uom\", \"pr_items\".\"spec_no\", \"pr_items\".\"spec_url\", \"pr_items\".\"tracking_no\", \"pr_items\".\"major_yn\", \"pr_items\".\"project_def\", \"pr_items\".\"project_sc\", \"pr_items\".\"project_kl\", \"pr_items\".\"project_lc\", \"pr_items\".\"project_dl\", \"pr_items\".\"remark\", \"procurement_rfqs\".\"rfq_code\", \"procurement_rfqs\".\"item_code\", \"procurement_rfqs\".\"item_name\" from \"pr_items\" left join \"procurement_rfqs\" on \"pr_items\".\"procurement_rfqs_id\" = \"procurement_rfqs\".\"id\"", + "name": "pr_items_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.procurement_rfq_details_view": { + "columns": {}, + "definition": "select \"rfq_details\".\"id\" as \"detail_id\", \"rfqs\".\"id\" as \"rfq_id\", \"rfqs\".\"rfq_code\" as \"rfq_code\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"rfqs\".\"item_code\" as \"item_code\", \"rfqs\".\"item_name\" as \"item_name\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"id\" as \"vendor_id\", \"vendors\".\"country\" as \"vendor_country\", \"rfq_details\".\"currency\" as \"currency\", \"payment_terms\".\"code\" as \"payment_terms_code\", \"payment_terms\".\"description\" as \"payment_terms_description\", \"incoterms\".\"code\" as \"incoterms_code\", \"incoterms\".\"description\" as \"incoterms_description\", \"rfq_details\".\"incoterms_detail\" as \"incoterms_detail\", \"rfq_details\".\"delivery_date\" as \"delivery_date\", \"rfq_details\".\"tax_code\" as \"tax_code\", \"rfq_details\".\"place_of_shipping\" as \"place_of_shipping\", \"rfq_details\".\"place_of_destination\" as \"place_of_destination\", \"rfq_details\".\"material_price_related_yn\" as \"material_price_related_yn\", \"updated_by_user\".\"name\" as \"updated_by_user_name\", \"rfq_details\".\"updated_at\" as \"updated_at\", (\n SELECT COUNT(*) \n FROM pr_items \n WHERE procurement_rfqs_id = \"rfqs\".\"id\"\n ) as \"pr_items_count\", (\n SELECT COUNT(*) \n FROM pr_items \n WHERE procurement_rfqs_id = \"rfqs\".\"id\" \n AND major_yn = true\n ) as \"major_items_count\", (\n SELECT COUNT(*) \n FROM procurement_rfq_comments \n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ) as \"comment_count\", (\n SELECT created_at \n FROM procurement_rfq_comments \n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ORDER BY created_at DESC LIMIT 1\n ) as \"last_comment_date\", (\n SELECT created_at \n FROM procurement_rfq_comments \n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\" AND is_vendor_comment = true\n ORDER BY created_at DESC LIMIT 1\n ) as \"last_vendor_comment_date\", (\n SELECT COUNT(*) \n FROM procurement_rfq_attachments \n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ) as \"attachment_count\", (\n SELECT COUNT(*) > 0\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ) as \"has_quotation\", (\n SELECT status\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ORDER BY created_at DESC LIMIT 1\n ) as \"quotation_status\", (\n SELECT total_price\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ORDER BY created_at DESC LIMIT 1\n ) as \"quotation_total_price\", (\n SELECT quotation_version\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ORDER BY quotation_version DESC LIMIT 1\n ) as \"quotation_version\", (\n SELECT COUNT(DISTINCT quotation_version)\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ) as \"quotation_version_count\", (\n SELECT created_at\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"rfqs\".\"id\" AND vendor_id = \"rfq_details\".\"vendors_id\"\n ORDER BY quotation_version DESC LIMIT 1\n ) as \"last_quotation_date\" from \"procurement_rfq_details\" \"rfq_details\" left join \"procurement_rfqs\" \"rfqs\" on \"rfq_details\".\"procurement_rfqs_id\" = \"rfqs\".\"id\" left join \"projects\" on \"rfqs\".\"project_id\" = \"projects\".\"id\" left join \"vendors\" on \"rfq_details\".\"vendors_id\" = \"vendors\".\"id\" left join \"payment_terms\" on \"rfq_details\".\"payment_terms_code\" = \"payment_terms\".\"code\" left join \"incoterms\" on \"rfq_details\".\"incoterms_code\" = \"incoterms\".\"code\" left join \"users\" \"updated_by_user\" on \"rfq_details\".\"updated_by\" = \"updated_by_user\".\"id\"", + "name": "procurement_rfq_details_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.procurement_rfqs_view": { + "columns": {}, + "definition": "select \"procurement_rfqs\".\"id\" as \"id\", \"procurement_rfqs\".\"rfq_code\" as \"rfq_code\", \"procurement_rfqs\".\"series\" as \"series\", \"procurement_rfqs\".\"rfq_sealed_yn\" as \"rfq_sealed_yn\", \"projects\".\"code\" as \"project_code\", \"projects\".\"name\" as \"project_name\", \"procurement_rfqs\".\"item_code\" as \"item_code\", \"procurement_rfqs\".\"item_name\" as \"item_name\", \"procurement_rfqs\".\"status\" as \"status\", \"procurement_rfqs\".\"pic_code\" as \"pic_code\", \"procurement_rfqs\".\"rfq_send_date\" as \"rfq_send_date\", \"procurement_rfqs\".\"due_date\" as \"due_date\", (\n SELECT MIN(submitted_at)\n FROM procurement_vendor_quotations\n WHERE rfq_id = \"procurement_rfqs\".\"id\"\n AND submitted_at IS NOT NULL\n ) as \"earliest_quotation_submitted_at\", \"created_by_user\".\"name\" as \"created_by_user_name\", \"sent_by_user\".\"name\" as \"sent_by_user_name\", \"procurement_rfqs\".\"updated_at\" as \"updated_at\", \"updated_by_user\".\"name\" as \"updated_by_user_name\", \"procurement_rfqs\".\"remark\" as \"remark\", (\n SELECT material_code \n FROM pr_items \n WHERE procurement_rfqs_id = \"procurement_rfqs\".\"id\"\n AND major_yn = true\n LIMIT 1\n ) as \"major_item_material_code\", (\n SELECT pr_no \n FROM pr_items \n WHERE procurement_rfqs_id = \"procurement_rfqs\".\"id\"\n AND major_yn = true\n LIMIT 1\n ) as \"po_no\", (\n SELECT COUNT(*) \n FROM pr_items \n WHERE procurement_rfqs_id = \"procurement_rfqs\".\"id\"\n ) as \"pr_items_count\" from \"procurement_rfqs\" left join \"projects\" on \"procurement_rfqs\".\"project_id\" = \"projects\".\"id\" left join \"users\" \"created_by_user\" on \"procurement_rfqs\".\"created_by\" = \"created_by_user\".\"id\" left join \"users\" \"updated_by_user\" on \"procurement_rfqs\".\"updated_by\" = \"updated_by_user\".\"id\" left join \"users\" \"sent_by_user\" on \"procurement_rfqs\".\"sent_by\" = \"sent_by_user\".\"id\"", + "name": "procurement_rfqs_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.attachment_revision_history": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "serial_no": { + "name": "serial_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "client_revision_id": { + "name": "client_revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "client_revision_no": { + "name": "client_revision_no", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "client_file_name": { + "name": "client_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "client_file_path": { + "name": "client_file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": false + }, + "client_file_size": { + "name": "client_file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "client_revision_comment": { + "name": "client_revision_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "client_revision_created_at": { + "name": "client_revision_created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "is_latest_client_revision": { + "name": "is_latest_client_revision", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "total_vendor_responses": { + "name": "total_vendor_responses", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "responded_vendors": { + "name": "responded_vendors", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "pending_vendors": { + "name": "pending_vendors", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "total_response_files": { + "name": "total_response_files", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n ba.id as attachment_id,\n ba.attachment_type,\n ba.serial_no,\n \n -- 발주처 리비전 정보\n rev.id as client_revision_id,\n rev.revision_no as client_revision_no,\n rev.original_file_name as client_file_name,\n rev.file_size as client_file_size,\n rev.file_path as client_file_path,\n rev.revision_comment as client_revision_comment,\n rev.created_at as client_revision_created_at,\n rev.is_latest as is_latest_client_revision,\n \n -- 벤더 응답 통계\n COALESCE(response_stats.total_responses, 0) as total_vendor_responses,\n COALESCE(response_stats.responded_count, 0) as responded_vendors,\n COALESCE(response_stats.pending_count, 0) as pending_vendors,\n COALESCE(response_stats.total_files, 0) as total_response_files\n \n FROM b_rfqs br\n JOIN b_rfq_attachments ba ON br.id = ba.rfq_id\n JOIN b_rfq_attachment_revisions rev ON ba.id = rev.attachment_id\n LEFT JOIN (\n SELECT \n var.attachment_id,\n COUNT(*) as total_responses,\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) as responded_count,\n COUNT(CASE WHEN var.response_status = 'NOT_RESPONDED' THEN 1 END) as pending_count,\n COUNT(vra.id) as total_files\n FROM vendor_attachment_responses var\n LEFT JOIN vendor_response_attachments_b vra ON var.id = vra.vendor_response_id\n GROUP BY var.attachment_id\n ) response_stats ON ba.id = response_stats.attachment_id\n \n ORDER BY ba.id, rev.created_at DESC\n", + "name": "attachment_revision_history", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.attachments_with_latest_revision": { + "columns": { + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "serial_no": { + "name": "serial_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "current_revision": { + "name": "current_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "revision_id": { + "name": "revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": false + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "revision_comment": { + "name": "revision_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_by_name": { + "name": "created_by_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n a.id as attachment_id,\n a.attachment_type,\n a.serial_no,\n a.rfq_id,\n a.description,\n a.current_revision,\n \n r.id as revision_id,\n r.file_name,\n r.original_file_name,\n r.file_path,\n r.file_size,\n r.file_type,\n r.revision_comment,\n \n a.created_by,\n u.name as created_by_name,\n a.created_at,\n a.updated_at\n FROM b_rfq_attachments a\n LEFT JOIN b_rfq_attachment_revisions r ON a.latest_revision_id = r.id\n LEFT JOIN users u ON a.created_by = u.id\n ", + "name": "attachments_with_latest_revision", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.b_rfqs_master": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "pic_code": { + "name": "pic_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pic_name": { + "name": "pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "eng_pic_name": { + "name": "eng_pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "package_no": { + "name": "package_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "package_name": { + "name": "package_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_id": { + "name": "project_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "project_code": { + "name": "project_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_name": { + "name": "project_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "project_type": { + "name": "project_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "project_company": { + "name": "project_company", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_flag": { + "name": "project_flag", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_site": { + "name": "project_site", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "total_attachments": { + "name": "total_attachments", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n br.description,\n br.status,\n br.due_date,\n br.pic_code,\n br.pic_name,\n br.eng_pic_name,\n br.package_no,\n br.package_name,\n br.project_id,\n p.code as project_code,\n p.name as project_name,\n p.type as project_type,\n br.project_company,\n br.project_flag,\n br.project_site,\n COALESCE(att_count.total_attachments, 0) as total_attachments,\n br.created_at,\n br.updated_at\n FROM b_rfqs br\n LEFT JOIN projects p ON br.project_id = p.id\n LEFT JOIN (\n SELECT rfq_id, COUNT(*) as total_attachments\n FROM b_rfq_attachments\n GROUP BY rfq_id\n ) att_count ON br.id = att_count.rfq_id\n", + "name": "b_rfqs_master", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.final_rfq_detail": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_status": { + "name": "rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "final_rfq_id": { + "name": "final_rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_rfq_status": { + "name": "final_rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_country": { + "name": "vendor_country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "vendor_business_size": { + "name": "vendor_business_size", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "valid_date": { + "name": "valid_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "delivery_date": { + "name": "delivery_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "incoterms_description": { + "name": "incoterms_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "payment_terms_code": { + "name": "payment_terms_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "payment_terms_description": { + "name": "payment_terms_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "tax_code": { + "name": "tax_code", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "place_of_shipping": { + "name": "place_of_shipping", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "place_of_destination": { + "name": "place_of_destination", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "short_list": { + "name": "short_list", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "return_yn": { + "name": "return_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "cp_request_yn": { + "name": "cp_request_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "prject_gtc_yn": { + "name": "prject_gtc_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "firsttime_yn": { + "name": "firsttime_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "material_price_related_yn": { + "name": "material_price_related_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "return_revision": { + "name": "return_revision", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "gtc": { + "name": "gtc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "gtc_valid_date": { + "name": "gtc_valid_date", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "sparepart": { + "name": "sparepart", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor_remark": { + "name": "vendor_remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n br.status as rfq_status,\n fr.id as final_rfq_id,\n fr.final_rfq_status,\n fr.vendor_id,\n v.vendor_code,\n v.vendor_name,\n v.country as vendor_country,\n v.business_size as vendor_business_size,\n fr.due_date,\n fr.valid_date,\n fr.delivery_date,\n fr.incoterms_code,\n inc.description as incoterms_description,\n fr.payment_terms_code,\n pt.description as payment_terms_description,\n fr.currency,\n fr.tax_code,\n fr.place_of_shipping,\n fr.place_of_destination,\n fr.short_list,\n fr.return_yn,\n fr.cp_request_yn,\n fr.prject_gtc_yn,\n fr.firsttime_yn,\n fr.material_price_related_yn,\n fr.return_revision,\n fr.gtc,\n fr.gtc_valid_date,\n fr.classification,\n fr.sparepart,\n fr.remark,\n fr.vendor_remark,\n fr.created_at,\n fr.updated_at\n FROM b_rfqs br\n JOIN final_rfq fr ON br.id = fr.rfq_id\n LEFT JOIN vendors v ON fr.vendor_id = v.id\n LEFT JOIN incoterms inc ON fr.incoterms_code = inc.code\n LEFT JOIN payment_terms pt ON fr.payment_terms_code = pt.code\n", + "name": "final_rfq_detail", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.initial_rfq_detail": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_status": { + "name": "rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "initial_rfq_id": { + "name": "initial_rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_rfq_status": { + "name": "initial_rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_category": { + "name": "vendor_category", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_country": { + "name": "vendor_country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "vendor_business_size": { + "name": "vendor_business_size", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "valid_date": { + "name": "valid_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "incoterms_code": { + "name": "incoterms_code", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "incoterms_description": { + "name": "incoterms_description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "short_list": { + "name": "short_list", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "return_yn": { + "name": "return_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "cp_request_yn": { + "name": "cp_request_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "prject_gtc_yn": { + "name": "prject_gtc_yn", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "return_revision": { + "name": "return_revision", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_revision": { + "name": "rfq_revision", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "gtc": { + "name": "gtc", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "gtc_valid_date": { + "name": "gtc_valid_date", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "sparepart": { + "name": "sparepart", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n br.status as rfq_status,\n ir.id as initial_rfq_id,\n ir.initial_rfq_status,\n ir.vendor_id,\n v.vendor_code,\n v.vendor_name,\n v.country as vendor_country,\n v.business_size as vendor_business_size,\n v.vendor_category as vendor_category,\n ir.due_date,\n ir.valid_date,\n ir.incoterms_code,\n inc.description as incoterms_description,\n ir.short_list,\n ir.return_yn,\n ir.cp_request_yn,\n ir.prject_gtc_yn,\n ir.return_revision,\n ir.rfq_revision,\n ir.gtc,\n ir.gtc_valid_date,\n ir.classification,\n ir.sparepart,\n ir.created_at,\n ir.updated_at\n FROM b_rfqs br\n JOIN initial_rfq ir ON br.id = ir.rfq_id\n LEFT JOIN vendors_with_types v ON ir.vendor_id = v.id\n LEFT JOIN incoterms inc ON ir.incoterms_code = inc.code\n", + "name": "initial_rfq_detail", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.rfq_dashboard": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "project_code": { + "name": "project_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_name": { + "name": "project_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "package_no": { + "name": "package_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "package_name": { + "name": "package_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "pic_code": { + "name": "pic_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "pic_name": { + "name": "pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "eng_pic_name": { + "name": "eng_pic_name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "project_company": { + "name": "project_company", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_flag": { + "name": "project_flag", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "project_site": { + "name": "project_site", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "total_attachments": { + "name": "total_attachments", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_vendor_count": { + "name": "initial_vendor_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_vendor_count": { + "name": "final_vendor_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_response_rate": { + "name": "initial_response_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_response_rate": { + "name": "final_response_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "overall_progress": { + "name": "overall_progress", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "days_to_deadline": { + "name": "days_to_deadline", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_by_name": { + "name": "updated_by_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "updated_by_email": { + "name": "updated_by_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n -- ② SELECT 절 확장 -------------------------------------------\n SELECT\n br.id AS rfq_id,\n br.rfq_code,\n br.description,\n br.status,\n br.due_date,\n p.code AS project_code,\n p.name AS project_name,\n br.package_no,\n br.package_name,\n br.pic_code,\n br.pic_name,\n br.eng_pic_name,\n br.project_company,\n br.project_flag,\n br.project_site,\n br.remark,\n \n -- 첨부/벤더 요약 -----------------------\n COALESCE(att_count.total_attachments, 0) AS total_attachments,\n COALESCE(init_summary.vendor_count, 0) AS initial_vendor_count,\n COALESCE(final_summary.vendor_count, 0) AS final_vendor_count,\n COALESCE(init_summary.avg_response_rate, 0) AS initial_response_rate,\n COALESCE(final_summary.avg_response_rate, 0) AS final_response_rate,\n \n -- 진행률·마감까지 일수 --------------\n CASE \n WHEN br.status = 'DRAFT' THEN 0\n WHEN br.status = 'Doc. Received' THEN 10\n WHEN br.status = 'PIC Assigned' THEN 20\n WHEN br.status = 'Doc. Confirmed' THEN 30\n WHEN br.status = 'Init. RFQ Sent' THEN 40\n WHEN br.status = 'Init. RFQ Answered' THEN 50\n WHEN br.status = 'TBE started' THEN 60\n WHEN br.status = 'TBE finished' THEN 70\n WHEN br.status = 'Final RFQ Sent' THEN 80\n WHEN br.status = 'Quotation Received' THEN 90\n WHEN br.status = 'Vendor Selected' THEN 100\n ELSE 0\n END AS overall_progress,\n (br.due_date - CURRENT_DATE) AS days_to_deadline,\n \n br.created_at,\n br.updated_at,\n \n -- 💡 추가되는 컬럼 -------------------\n upd.name AS updated_by_name,\n upd.email AS updated_by_email\n FROM b_rfqs br\n LEFT JOIN projects p ON br.project_id = p.id\n \n -- ③ 사용자 정보 조인 --------------------\n LEFT JOIN users upd ON br.updated_by = upd.id\n \n -- (나머지 이미 있던 JOIN 들은 그대로) -----\n LEFT JOIN (\n SELECT rfq_id, COUNT(*) AS total_attachments\n FROM b_rfq_attachments\n GROUP BY rfq_id\n ) att_count ON br.id = att_count.rfq_id\n \n LEFT JOIN (\n SELECT \n rfq_id, \n COUNT(DISTINCT vendor_id) AS vendor_count,\n AVG(response_rate) AS avg_response_rate\n FROM vendor_response_summary\n WHERE rfq_type = 'INITIAL'\n GROUP BY rfq_id\n ) init_summary ON br.id = init_summary.rfq_id\n \n LEFT JOIN (\n SELECT \n rfq_id, \n COUNT(DISTINCT vendor_id) AS vendor_count,\n AVG(response_rate) AS avg_response_rate\n FROM vendor_response_summary\n WHERE rfq_type = 'FINAL'\n GROUP BY rfq_id\n ) final_summary ON br.id = final_summary.rfq_id\n ", + "name": "rfq_dashboard", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.rfq_progress_summary": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_status": { + "name": "rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "due_date": { + "name": "due_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "days_to_deadline": { + "name": "days_to_deadline", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "total_attachments": { + "name": "total_attachments", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "attachments_with_multiple_revisions": { + "name": "attachments_with_multiple_revisions", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "total_client_revisions": { + "name": "total_client_revisions", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_vendor_count": { + "name": "initial_vendor_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_total_responses": { + "name": "initial_total_responses", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_responded_count": { + "name": "initial_responded_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_up_to_date_count": { + "name": "initial_up_to_date_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_version_mismatch_count": { + "name": "initial_version_mismatch_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "initial_response_rate": { + "name": "initial_response_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "initial_version_match_rate": { + "name": "initial_version_match_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_vendor_count": { + "name": "final_vendor_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_total_responses": { + "name": "final_total_responses", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_responded_count": { + "name": "final_responded_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_up_to_date_count": { + "name": "final_up_to_date_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_version_mismatch_count": { + "name": "final_version_mismatch_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "final_response_rate": { + "name": "final_response_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_version_match_rate": { + "name": "final_version_match_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "total_response_files": { + "name": "total_response_files", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n br.status as rfq_status,\n br.due_date,\n (br.due_date - CURRENT_DATE) as days_to_deadline,\n \n -- 첨부파일 통계\n attachment_stats.total_attachments,\n attachment_stats.attachments_with_multiple_revisions,\n attachment_stats.total_client_revisions,\n \n -- Initial RFQ 통계\n COALESCE(initial_stats.vendor_count, 0) as initial_vendor_count,\n COALESCE(initial_stats.total_responses, 0) as initial_total_responses,\n COALESCE(initial_stats.responded_count, 0) as initial_responded_count,\n COALESCE(initial_stats.up_to_date_count, 0) as initial_up_to_date_count,\n COALESCE(initial_stats.version_mismatch_count, 0) as initial_version_mismatch_count,\n COALESCE(initial_stats.response_rate, 0) as initial_response_rate,\n COALESCE(initial_stats.version_match_rate, 0) as initial_version_match_rate,\n \n -- Final RFQ 통계\n COALESCE(final_stats.vendor_count, 0) as final_vendor_count,\n COALESCE(final_stats.total_responses, 0) as final_total_responses,\n COALESCE(final_stats.responded_count, 0) as final_responded_count,\n COALESCE(final_stats.up_to_date_count, 0) as final_up_to_date_count,\n COALESCE(final_stats.version_mismatch_count, 0) as final_version_mismatch_count,\n COALESCE(final_stats.response_rate, 0) as final_response_rate,\n COALESCE(final_stats.version_match_rate, 0) as final_version_match_rate,\n \n COALESCE(file_stats.total_files, 0) as total_response_files\n \n FROM b_rfqs br\n LEFT JOIN (\n SELECT \n ba.rfq_id,\n COUNT(*) as total_attachments,\n COUNT(CASE WHEN rev_count.total_revisions > 1 THEN 1 END) as attachments_with_multiple_revisions,\n SUM(rev_count.total_revisions) as total_client_revisions\n FROM b_rfq_attachments ba\n LEFT JOIN (\n SELECT \n attachment_id,\n COUNT(*) as total_revisions\n FROM b_rfq_attachment_revisions\n GROUP BY attachment_id\n ) rev_count ON ba.id = rev_count.attachment_id\n GROUP BY ba.rfq_id\n ) attachment_stats ON br.id = attachment_stats.rfq_id\n \n LEFT JOIN (\n SELECT \n br.id as rfq_id,\n COUNT(DISTINCT var.vendor_id) as vendor_count,\n COUNT(*) as total_responses,\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) as responded_count,\n COUNT(CASE WHEN vrd.effective_status = 'UP_TO_DATE' THEN 1 END) as up_to_date_count,\n COUNT(CASE WHEN vrd.effective_status = 'VERSION_MISMATCH' THEN 1 END) as version_mismatch_count,\n ROUND(\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) * 100.0 / \n NULLIF(COUNT(*), 0), 2\n ) as response_rate,\n ROUND(\n COUNT(CASE WHEN vrd.effective_status = 'UP_TO_DATE' THEN 1 END) * 100.0 / \n NULLIF(COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END), 0), 2\n ) as version_match_rate\n FROM b_rfqs br\n JOIN vendor_response_detail vrd ON br.id = vrd.rfq_id\n JOIN vendor_attachment_responses var ON vrd.response_id = var.id\n WHERE var.rfq_type = 'INITIAL'\n GROUP BY br.id\n ) initial_stats ON br.id = initial_stats.rfq_id\n \n LEFT JOIN (\n SELECT \n br.id as rfq_id,\n COUNT(DISTINCT var.vendor_id) as vendor_count,\n COUNT(*) as total_responses,\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) as responded_count,\n COUNT(CASE WHEN vrd.effective_status = 'UP_TO_DATE' THEN 1 END) as up_to_date_count,\n COUNT(CASE WHEN vrd.effective_status = 'VERSION_MISMATCH' THEN 1 END) as version_mismatch_count,\n ROUND(\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) * 100.0 / \n NULLIF(COUNT(*), 0), 2\n ) as response_rate,\n ROUND(\n COUNT(CASE WHEN vrd.effective_status = 'UP_TO_DATE' THEN 1 END) * 100.0 / \n NULLIF(COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END), 0), 2\n ) as version_match_rate\n FROM b_rfqs br\n JOIN vendor_response_detail vrd ON br.id = vrd.rfq_id\n JOIN vendor_attachment_responses var ON vrd.response_id = var.id\n WHERE var.rfq_type = 'FINAL'\n GROUP BY br.id\n ) final_stats ON br.id = final_stats.rfq_id\n \n LEFT JOIN (\n SELECT \n br.id as rfq_id,\n COUNT(vra.id) as total_files\n FROM b_rfqs br\n JOIN b_rfq_attachments ba ON br.id = ba.rfq_id\n JOIN vendor_attachment_responses var ON ba.id = var.attachment_id\n LEFT JOIN vendor_response_attachments_b vra ON var.id = vra.vendor_response_id\n GROUP BY br.id\n ) file_stats ON br.id = file_stats.rfq_id\n", + "name": "rfq_progress_summary", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_response_attachments_enhanced": { + "columns": { + "response_attachment_id": { + "name": "response_attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_response_id": { + "name": "vendor_response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_name": { + "name": "file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "original_file_name": { + "name": "original_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "file_path": { + "name": "file_path", + "type": "varchar(512)", + "primaryKey": false, + "notNull": false + }, + "file_size": { + "name": "file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "file_type": { + "name": "file_type", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "uploaded_at": { + "name": "uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "rfq_record_id": { + "name": "rfq_record_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "current_revision": { + "name": "current_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "responded_revision": { + "name": "responded_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "response_comment": { + "name": "response_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor_comment": { + "name": "vendor_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "revision_request_comment": { + "name": "revision_request_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "requested_at": { + "name": "requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "responded_at": { + "name": "responded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "revision_requested_at": { + "name": "revision_requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "serial_no": { + "name": "serial_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_country": { + "name": "vendor_country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "latest_client_revision_id": { + "name": "latest_client_revision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_client_revision_no": { + "name": "latest_client_revision_no", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "latest_client_file_name": { + "name": "latest_client_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "is_version_matched": { + "name": "is_version_matched", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "version_lag": { + "name": "version_lag", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "needs_update": { + "name": "needs_update", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "file_sequence": { + "name": "file_sequence", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "is_latest_response_file": { + "name": "is_latest_response_file", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n vra.id as response_attachment_id,\n vra.vendor_response_id,\n vra.file_name,\n vra.original_file_name,\n vra.file_path,\n vra.file_size,\n vra.file_type,\n vra.description,\n vra.uploaded_at,\n \n -- 응답 기본 정보\n var.attachment_id,\n var.vendor_id,\n var.rfq_type,\n var.rfq_record_id,\n var.response_status,\n var.current_revision,\n var.responded_revision,\n \n -- 코멘트 (새로 추가된 필드 포함)\n var.response_comment,\n var.vendor_comment,\n var.revision_request_comment,\n \n -- 날짜 (새로 추가된 필드 포함)\n var.requested_at,\n var.responded_at,\n var.revision_requested_at,\n \n -- 첨부파일 정보\n ba.attachment_type,\n ba.serial_no,\n ba.rfq_id,\n \n -- 벤더 정보\n v.vendor_code,\n v.vendor_name,\n v.country as vendor_country,\n \n -- 발주처 현재 리비전 정보\n latest_rev.id as latest_client_revision_id,\n latest_rev.revision_no as latest_client_revision_no,\n latest_rev.original_file_name as latest_client_file_name,\n \n -- 리비전 비교\n CASE \n WHEN var.responded_revision = ba.current_revision THEN true \n ELSE false \n END as is_version_matched,\n \n -- 버전 차이 계산 (Rev.0, Rev.1 형태 가정)\n CASE \n WHEN var.responded_revision IS NULL THEN NULL\n WHEN ba.current_revision IS NULL THEN NULL\n ELSE CAST(SUBSTRING(ba.current_revision FROM '[0-9]+') AS INTEGER) - \n CAST(SUBSTRING(var.responded_revision FROM '[0-9]+') AS INTEGER)\n END as version_lag,\n \n CASE \n WHEN var.response_status = 'RESPONDED' \n AND var.responded_revision != ba.current_revision THEN true \n ELSE false \n END as needs_update,\n \n -- 파일 순서\n ROW_NUMBER() OVER (\n PARTITION BY var.id \n ORDER BY vra.uploaded_at DESC\n ) as file_sequence,\n \n -- 최신 응답 파일 여부\n CASE \n WHEN ROW_NUMBER() OVER (\n PARTITION BY var.id \n ORDER BY vra.uploaded_at DESC\n ) = 1 THEN true \n ELSE false \n END as is_latest_response_file\n \n FROM vendor_response_attachments_b vra\n JOIN vendor_attachment_responses var ON vra.vendor_response_id = var.id\n JOIN b_rfq_attachments ba ON var.attachment_id = ba.id\n LEFT JOIN vendors v ON var.vendor_id = v.id\n LEFT JOIN b_rfq_attachment_revisions latest_rev ON ba.latest_revision_id = latest_rev.id\n", + "name": "vendor_response_attachments_enhanced", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_response_detail": { + "columns": { + "response_id": { + "name": "response_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "rfq_record_id": { + "name": "rfq_record_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "attachment_id": { + "name": "attachment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "attachment_type": { + "name": "attachment_type", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "serial_no": { + "name": "serial_no", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "attachment_description": { + "name": "attachment_description", + "type": "varchar(500)", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_country": { + "name": "vendor_country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "response_status": { + "name": "response_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "current_revision": { + "name": "current_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "responded_revision": { + "name": "responded_revision", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "response_comment": { + "name": "response_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor_comment": { + "name": "vendor_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "revision_request_comment": { + "name": "revision_request_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "requested_at": { + "name": "requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "responded_at": { + "name": "responded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "revision_requested_at": { + "name": "revision_requested_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "latest_client_revision_no": { + "name": "latest_client_revision_no", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false + }, + "latest_client_file_name": { + "name": "latest_client_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "latest_client_file_size": { + "name": "latest_client_file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_client_revision_comment": { + "name": "latest_client_revision_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is_version_matched": { + "name": "is_version_matched", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "version_lag": { + "name": "version_lag", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "needs_update": { + "name": "needs_update", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "has_multiple_revisions": { + "name": "has_multiple_revisions", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "total_response_files": { + "name": "total_response_files", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_response_file_name": { + "name": "latest_response_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "latest_response_file_size": { + "name": "latest_response_file_size", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "latest_response_uploaded_at": { + "name": "latest_response_uploaded_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "effective_status": { + "name": "effective_status", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n var.id as response_id,\n ba.rfq_id,\n br.rfq_code,\n var.rfq_type,\n var.rfq_record_id,\n \n -- 첨부파일 정보\n ba.id as attachment_id,\n ba.attachment_type,\n ba.serial_no,\n ba.description as attachment_description,\n \n -- 벤더 정보\n v.id as vendor_id,\n v.vendor_code,\n v.vendor_name,\n v.country as vendor_country,\n \n -- 응답 상태\n var.response_status,\n var.current_revision,\n var.responded_revision,\n \n -- 코멘트 (새로 추가된 필드 포함)\n var.response_comment,\n var.vendor_comment,\n var.revision_request_comment,\n \n -- 날짜 (새로 추가된 필드 포함)\n var.requested_at,\n var.responded_at,\n var.revision_requested_at,\n \n -- 발주처 최신 리비전\n latest_rev.revision_no as latest_client_revision_no,\n latest_rev.original_file_name as latest_client_file_name,\n latest_rev.file_size as latest_client_file_size,\n latest_rev.revision_comment as latest_client_revision_comment,\n \n -- 리비전 분석\n CASE \n WHEN var.responded_revision = ba.current_revision THEN true \n ELSE false \n END as is_version_matched,\n \n CASE \n WHEN var.responded_revision IS NULL OR ba.current_revision IS NULL THEN NULL\n ELSE CAST(SUBSTRING(ba.current_revision FROM '[0-9]+') AS INTEGER) - \n CAST(SUBSTRING(var.responded_revision FROM '[0-9]+') AS INTEGER)\n END as version_lag,\n \n CASE \n WHEN var.response_status = 'RESPONDED' \n AND var.responded_revision != ba.current_revision THEN true \n ELSE false \n END as needs_update,\n \n CASE \n WHEN revision_count.total_revisions > 1 THEN true \n ELSE false \n END as has_multiple_revisions,\n \n -- 응답 파일 정보\n COALESCE(file_stats.total_files, 0) as total_response_files,\n file_stats.latest_file_name as latest_response_file_name,\n file_stats.latest_file_size as latest_response_file_size,\n file_stats.latest_uploaded_at as latest_response_uploaded_at,\n \n -- 효과적인 상태\n CASE \n WHEN var.response_status = 'NOT_RESPONDED' THEN 'NOT_RESPONDED'\n WHEN var.response_status = 'WAIVED' THEN 'WAIVED'\n WHEN var.response_status = 'REVISION_REQUESTED' THEN 'REVISION_REQUESTED'\n WHEN var.response_status = 'RESPONDED' AND var.responded_revision = ba.current_revision THEN 'UP_TO_DATE'\n WHEN var.response_status = 'RESPONDED' AND var.responded_revision != ba.current_revision THEN 'VERSION_MISMATCH'\n ELSE var.response_status\n END as effective_status\n \n FROM vendor_attachment_responses var\n JOIN b_rfq_attachments ba ON var.attachment_id = ba.id\n JOIN b_rfqs br ON ba.rfq_id = br.id\n LEFT JOIN vendors v ON var.vendor_id = v.id\n LEFT JOIN b_rfq_attachment_revisions latest_rev ON ba.latest_revision_id = latest_rev.id\n LEFT JOIN (\n SELECT \n attachment_id,\n COUNT(*) as total_revisions\n FROM b_rfq_attachment_revisions\n GROUP BY attachment_id\n ) revision_count ON ba.id = revision_count.attachment_id\n LEFT JOIN (\n SELECT \n vendor_response_id,\n COUNT(*) as total_files,\n MAX(original_file_name) as latest_file_name,\n MAX(file_size) as latest_file_size,\n MAX(uploaded_at) as latest_uploaded_at\n FROM vendor_response_attachments_b\n GROUP BY vendor_response_id\n ) file_stats ON var.id = file_stats.vendor_response_id\n", + "name": "vendor_response_detail", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.vendor_response_summary": { + "columns": { + "rfq_id": { + "name": "rfq_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "rfq_code": { + "name": "rfq_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_status": { + "name": "rfq_status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": false + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "vendor_country": { + "name": "vendor_country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "vendor_business_size": { + "name": "vendor_business_size", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "rfq_type": { + "name": "rfq_type", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "total_attachments": { + "name": "total_attachments", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "responded_count": { + "name": "responded_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "pending_count": { + "name": "pending_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "waived_count": { + "name": "waived_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "revision_requested_count": { + "name": "revision_requested_count", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "response_rate": { + "name": "response_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "completion_rate": { + "name": "completion_rate", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "\n SELECT \n br.id as rfq_id,\n br.rfq_code,\n br.status as rfq_status,\n v.id as vendor_id,\n v.vendor_code,\n v.vendor_name,\n v.country as vendor_country,\n v.business_size as vendor_business_size,\n var.rfq_type,\n COUNT(var.id) as total_attachments,\n COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) as responded_count,\n COUNT(CASE WHEN var.response_status = 'NOT_RESPONDED' THEN 1 END) as pending_count,\n COUNT(CASE WHEN var.response_status = 'WAIVED' THEN 1 END) as waived_count,\n COUNT(CASE WHEN var.response_status = 'REVISION_REQUESTED' THEN 1 END) as revision_requested_count,\n ROUND(\n (COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) * 100.0 / \n NULLIF(COUNT(CASE WHEN var.response_status != 'WAIVED' THEN 1 END), 0)), \n 2\n ) as response_rate,\n ROUND(\n ((COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) + \n COUNT(CASE WHEN var.response_status = 'WAIVED' THEN 1 END)) * 100.0 / COUNT(var.id)), \n 2\n ) as completion_rate\n FROM b_rfqs br\n JOIN b_rfq_attachments bra ON br.id = bra.rfq_id\n JOIN vendor_attachment_responses var ON bra.id = var.attachment_id\n JOIN vendors v ON var.vendor_id = v.id\n GROUP BY br.id, br.rfq_code, br.status, v.id, v.vendor_code, v.vendor_name, v.country, v.business_size, var.rfq_type\n", + "name": "vendor_response_summary", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.tech_vendor_candidates_with_vendor_info": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "company_name": { + "name": "company_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_phone": { + "name": "contact_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'COLLECTED'" + }, + "items": { + "name": "items", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"tech_vendor_candidates\".\"id\", \"tech_vendor_candidates\".\"company_name\", \"tech_vendor_candidates\".\"contact_email\", \"tech_vendor_candidates\".\"contact_phone\", \"tech_vendor_candidates\".\"tax_id\", \"tech_vendor_candidates\".\"address\", \"tech_vendor_candidates\".\"country\", \"tech_vendor_candidates\".\"source\", \"tech_vendor_candidates\".\"status\", \"tech_vendor_candidates\".\"items\", \"tech_vendor_candidates\".\"remark\", \"tech_vendor_candidates\".\"created_at\", \"tech_vendor_candidates\".\"updated_at\", \"tech_vendors\".\"vendor_name\", \"tech_vendors\".\"vendor_code\", \"tech_vendors\".\"created_at\" as \"vendor_created_at\" from \"tech_vendor_candidates\" left join \"tech_vendors\" on \"tech_vendor_candidates\".\"vendor_id\" = \"tech_vendors\".\"id\"", + "name": "tech_vendor_candidates_with_vendor_info", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.tech_vendor_detail_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "tax_id": { + "name": "tax_id", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "country": { + "name": "country", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "country_eng": { + "name": "country_eng", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "country_fab": { + "name": "country_fab", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "agent_name": { + "name": "agent_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "agent_phone": { + "name": "agent_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "agent_email": { + "name": "agent_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "website": { + "name": "website", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'ACTIVE'" + }, + "tech_vendor_type": { + "name": "tech_vendor_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "representative_name": { + "name": "representative_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_email": { + "name": "representative_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "representative_phone": { + "name": "representative_phone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "representative_birth": { + "name": "representative_birth", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"id\", \"vendor_name\", \"vendor_code\", \"tax_id\", \"address\", \"country\", \"country_eng\", \"country_fab\", \"agent_name\", \"agent_phone\", \"agent_email\", \"phone\", \"email\", \"website\", \"status\", \"tech_vendor_type\", \"representative_name\", \"representative_email\", \"representative_phone\", \"representative_birth\", \"created_at\", \"updated_at\", \n (SELECT COALESCE(\n json_agg(\n json_build_object(\n 'id', c.id,\n 'contactName', c.contact_name,\n 'contactPosition', c.contact_position,\n 'contactEmail', c.contact_email,\n 'contactPhone', c.contact_phone,\n 'isPrimary', c.is_primary\n )\n ),\n '[]'::json\n )\n FROM vendor_contacts c\n WHERE c.vendor_id = tech_vendors.id)\n as \"contacts\", \n (SELECT COALESCE(\n json_agg(\n json_build_object(\n 'id', a.id,\n 'fileName', a.file_name,\n 'filePath', a.file_path,\n 'attachmentType', a.attachment_type,\n 'createdAt', a.created_at\n )\n ORDER BY a.attachment_type, a.created_at DESC\n ),\n '[]'::json\n )\n FROM tech_vendor_attachments a\n WHERE a.vendor_id = tech_vendors.id)\n as \"attachments\", \n (SELECT COUNT(*)\n FROM tech_vendor_attachments a\n WHERE a.vendor_id = tech_vendors.id)\n as \"attachment_count\", \n (SELECT COUNT(*) \n FROM vendor_contacts c\n WHERE c.vendor_id = tech_vendors.id)\n as \"contact_count\", \n (SELECT COALESCE(\n json_agg(\n json_build_object(\n 'itemCode', i.item_code\n )\n ),\n '[]'::json\n )\n FROM tech_vendor_possible_items i\n LEFT JOIN items it ON i.item_code = it.item_code\n WHERE i.vendor_id = tech_vendors.id)\n as \"possible_items\", \n (SELECT COUNT(*) \n FROM tech_vendor_possible_items i\n WHERE i.vendor_id = tech_vendors.id)\n as \"item_count\" from \"tech_vendors\"", + "name": "tech_vendor_detail_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.tech_vendor_items_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "item_code": { + "name": "item_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"tech_vendor_possible_items\".\"id\", \"tech_vendor_possible_items\".\"vendor_id\", \"items\".\"item_code\", \"tech_vendor_possible_items\".\"created_at\", \"tech_vendor_possible_items\".\"updated_at\" from \"tech_vendor_possible_items\" left join \"items\" on \"tech_vendor_possible_items\".\"item_code\" = \"items\".\"item_code\"", + "name": "tech_vendor_items_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.esg_evaluations_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "serial_number": { + "name": "serial_number", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "inspection_item": { + "name": "inspection_item", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"esg_evaluations\".\"id\", \"esg_evaluations\".\"serial_number\", \"esg_evaluations\".\"category\", \"esg_evaluations\".\"inspection_item\", \"esg_evaluations\".\"is_active\", \"esg_evaluations\".\"created_at\", \"esg_evaluations\".\"updated_at\", count(distinct \"esg_evaluation_items\".\"id\") as \"total_evaluation_items\", count(\"esg_answer_options\".\"id\") as \"total_answer_options\", coalesce(sum(\"esg_answer_options\".\"score\"), 0) as \"max_possible_score\", \n (\n SELECT array_agg(evaluation_item order by order_index) \n FROM esg_evaluation_items \n WHERE esg_evaluation_id = \"esg_evaluations\".\"id\" \n AND is_active = true \n AND evaluation_item is not null\n )\n as \"evaluation_items_list\" from \"esg_evaluations\" left join \"esg_evaluation_items\" on \"esg_evaluations\".\"id\" = \"esg_evaluation_items\".\"esg_evaluation_id\" AND \"esg_evaluation_items\".\"is_active\" = true left join \"esg_answer_options\" on \"esg_evaluation_items\".\"id\" = \"esg_answer_options\".\"esg_evaluation_item_id\" AND \"esg_answer_options\".\"is_active\" = true group by \"esg_evaluations\".\"id\", \"esg_evaluations\".\"serial_number\", \"esg_evaluations\".\"category\", \"esg_evaluations\".\"inspection_item\", \"esg_evaluations\".\"is_active\", \"esg_evaluations\".\"created_at\", \"esg_evaluations\".\"updated_at\"", + "name": "esg_evaluations_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.evaluation_targets_with_departments": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_year": { + "name": "evaluation_year", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "division": { + "name": "division", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "domestic_foreign": { + "name": "domestic_foreign", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "material_type": { + "name": "material_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING'" + }, + "consensus_status": { + "name": "consensus_status", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "admin_comment": { + "name": "admin_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consolidated_comment": { + "name": "consolidated_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "confirmed_by": { + "name": "confirmed_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "ld_claim_count": { + "name": "ld_claim_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "ld_claim_amount": { + "name": "ld_claim_amount", + "type": "numeric(15, 2)", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "ld_claim_currency": { + "name": "ld_claim_currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "definition": "select \"evaluation_targets\".\"id\", \"evaluation_targets\".\"evaluation_year\", \"evaluation_targets\".\"division\", \"evaluation_targets\".\"vendor_code\", \"evaluation_targets\".\"vendor_name\", \"evaluation_targets\".\"domestic_foreign\", \"evaluation_targets\".\"material_type\", \"evaluation_targets\".\"status\", \"evaluation_targets\".\"consensus_status\", \"evaluation_targets\".\"admin_comment\", \"evaluation_targets\".\"consolidated_comment\", \"evaluation_targets\".\"confirmed_at\", \"evaluation_targets\".\"confirmed_by\", \"evaluation_targets\".\"ld_claim_count\", \"evaluation_targets\".\"ld_claim_amount\", \"evaluation_targets\".\"ld_claim_currency\", \"evaluation_targets\".\"created_at\", \"evaluation_targets\".\"updated_at\", order_reviewer.name as \"order_reviewer_name\", order_reviewer.email as \"order_reviewer_email\", order_etr.department_name_from as \"order_department_name\", order_review.is_approved as \"order_is_approved\", order_review.reviewed_at as \"order_reviewed_at\", procurement_reviewer.name as \"procurement_reviewer_name\", procurement_reviewer.email as \"procurement_reviewer_email\", procurement_etr.department_name_from as \"procurement_department_name\", procurement_review.is_approved as \"procurement_is_approved\", procurement_review.reviewed_at as \"procurement_reviewed_at\", quality_reviewer.name as \"quality_reviewer_name\", quality_reviewer.email as \"quality_reviewer_email\", quality_etr.department_name_from as \"quality_department_name\", quality_review.is_approved as \"quality_is_approved\", quality_review.reviewed_at as \"quality_reviewed_at\", design_reviewer.name as \"design_reviewer_name\", design_reviewer.email as \"design_reviewer_email\", design_etr.department_name_from as \"design_department_name\", design_review.is_approved as \"design_is_approved\", design_review.reviewed_at as \"design_reviewed_at\", cs_reviewer.name as \"cs_reviewer_name\", cs_reviewer.email as \"cs_reviewer_email\", cs_etr.department_name_from as \"cs_department_name\", cs_review.is_approved as \"cs_is_approved\", cs_review.reviewed_at as \"cs_reviewed_at\" from \"evaluation_targets\" left join evaluation_target_reviewers order_etr on \"evaluation_targets\".\"id\" = order_etr.evaluation_target_id AND order_etr.department_code = 'ORDER_EVAL' left join users order_reviewer on order_etr.reviewer_user_id = order_reviewer.id left join evaluation_target_reviews order_review on \"evaluation_targets\".\"id\" = order_review.evaluation_target_id AND order_review.reviewer_user_id = order_reviewer.id left join evaluation_target_reviewers procurement_etr on \"evaluation_targets\".\"id\" = procurement_etr.evaluation_target_id AND procurement_etr.department_code = 'PROCUREMENT_EVAL' left join users procurement_reviewer on procurement_etr.reviewer_user_id = procurement_reviewer.id left join evaluation_target_reviews procurement_review on \"evaluation_targets\".\"id\" = procurement_review.evaluation_target_id AND procurement_review.reviewer_user_id = procurement_reviewer.id left join evaluation_target_reviewers quality_etr on \"evaluation_targets\".\"id\" = quality_etr.evaluation_target_id AND quality_etr.department_code = 'QUALITY_EVAL' left join users quality_reviewer on quality_etr.reviewer_user_id = quality_reviewer.id left join evaluation_target_reviews quality_review on \"evaluation_targets\".\"id\" = quality_review.evaluation_target_id AND quality_review.reviewer_user_id = quality_reviewer.id left join evaluation_target_reviewers design_etr on \"evaluation_targets\".\"id\" = design_etr.evaluation_target_id AND design_etr.department_code = 'DESIGN_EVAL' left join users design_reviewer on design_etr.reviewer_user_id = design_reviewer.id left join evaluation_target_reviews design_review on \"evaluation_targets\".\"id\" = design_review.evaluation_target_id AND design_review.reviewer_user_id = design_reviewer.id left join evaluation_target_reviewers cs_etr on \"evaluation_targets\".\"id\" = cs_etr.evaluation_target_id AND cs_etr.department_code = 'CS_EVAL' left join users cs_reviewer on cs_etr.reviewer_user_id = cs_reviewer.id left join evaluation_target_reviews cs_review on \"evaluation_targets\".\"id\" = cs_review.evaluation_target_id AND cs_review.reviewer_user_id = cs_reviewer.id", + "name": "evaluation_targets_with_departments", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.periodic_evaluations_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "evaluation_target_id": { + "name": "evaluation_target_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_year": { + "name": "evaluation_year", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "division": { + "name": "division", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "domestic_foreign": { + "name": "domestic_foreign", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "material_type": { + "name": "material_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "evaluation_period": { + "name": "evaluation_period", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "documents_submitted": { + "name": "documents_submitted", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "submission_date": { + "name": "submission_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "submission_deadline": { + "name": "submission_deadline", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "final_score": { + "name": "final_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_grade": { + "name": "final_grade", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_SUBMISSION'" + }, + "review_completed_at": { + "name": "review_completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_at": { + "name": "finalized_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_by": { + "name": "finalized_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluation_note": { + "name": "evaluation_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "admin_comment": { + "name": "admin_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consolidated_comment": { + "name": "consolidated_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consensus_status": { + "name": "consensus_status", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + } + }, + "definition": "select \"periodic_evaluations\".\"id\", \"periodic_evaluations\".\"evaluation_target_id\", \"evaluation_targets\".\"evaluation_year\", \"evaluation_targets\".\"division\", \"evaluation_targets\".\"vendor_id\", \"evaluation_targets\".\"vendor_code\", \"evaluation_targets\".\"vendor_name\", \"evaluation_targets\".\"domestic_foreign\", \"evaluation_targets\".\"material_type\", \"periodic_evaluations\".\"evaluation_period\", \"periodic_evaluations\".\"documents_submitted\", \"periodic_evaluations\".\"submission_date\", \"periodic_evaluations\".\"submission_deadline\", \"periodic_evaluations\".\"final_score\", \"periodic_evaluations\".\"final_grade\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'processScore'\n AND re.is_completed = true\n ) as \"process_score\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'priceScore'\n AND re.is_completed = true\n ) as \"price_score\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'deliveryScore'\n AND re.is_completed = true\n ) as \"delivery_score\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'selfEvaluationScore'\n AND re.is_completed = true\n ) as \"self_evaluation_score\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'bonus'\n AND re.is_completed = true\n ) as \"participation_bonus\", (\n SELECT COALESCE(AVG(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id\n JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id\n JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND rec.category2 = 'penalty'\n AND re.is_completed = true\n ) as \"quality_deduction\", (\n SELECT COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n )\n ) as \"total_score\", (\n SELECT (\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'bonus' AND re.is_completed = true), 0\n ) -\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'penalty' AND re.is_completed = true), 0\n )\n )\n ) as \"evaluation_score\", (\n CASE \n WHEN (\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'bonus' AND re.is_completed = true), 0\n ) -\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'penalty' AND re.is_completed = true), 0\n )\n ) >= 90 THEN 'S'\n WHEN (\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'bonus' AND re.is_completed = true), 0\n ) -\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'penalty' AND re.is_completed = true), 0\n )\n ) >= 80 THEN 'A'\n WHEN (\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'bonus' AND re.is_completed = true), 0\n ) -\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'penalty' AND re.is_completed = true), 0\n )\n ) >= 70 THEN 'B'\n WHEN (\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'processScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'priceScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'deliveryScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'selfEvaluationScore' AND re.is_completed = true), 0\n ) +\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'bonus' AND re.is_completed = true), 0\n ) -\n COALESCE(\n (SELECT AVG(CAST(red.score AS DECIMAL(5,2))) FROM \"reviewer_evaluation_details\" red JOIN \"reg_eval_criteria_details\" recd ON red.reg_eval_criteria_details_id = recd.id JOIN \"reg_eval_criteria\" rec ON recd.criteria_id = rec.id JOIN \"reviewer_evaluations\" re ON red.reviewer_evaluation_id = re.id WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\" AND rec.category2 = 'penalty' AND re.is_completed = true), 0\n )\n ) >= 60 THEN 'C'\n ELSE 'D'\n END\n ) as \"evaluation_grade\", \"periodic_evaluations\".\"status\", \"periodic_evaluations\".\"review_completed_at\", \"periodic_evaluations\".\"finalized_at\", \"periodic_evaluations\".\"finalized_by\", \"periodic_evaluations\".\"evaluation_note\", \"periodic_evaluations\".\"created_at\", \"periodic_evaluations\".\"updated_at\", \"evaluation_targets\".\"admin_comment\", \"evaluation_targets\".\"consolidated_comment\", \"evaluation_targets\".\"consensus_status\", \"evaluation_targets\".\"confirmed_at\", (\n SELECT CASE\n WHEN re.id IS NULL THEN 'NOT_ASSIGNED'\n WHEN re.is_completed = true THEN 'COMPLETED'\n WHEN (\n SELECT COALESCE(SUM(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n WHERE red.reviewer_evaluation_id = re.id\n ) > 0 THEN 'IN_PROGRESS'\n ELSE 'NOT_STARTED'\n END\n FROM \"reviewer_evaluations\" re\n JOIN \"evaluation_target_reviewers\" etr ON re.evaluation_target_reviewer_id = etr.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND etr.department_code = 'ORDER_EVAL'\n LIMIT 1\n ) as \"order_eval_status\", (\n SELECT CASE\n WHEN re.id IS NULL THEN 'NOT_ASSIGNED'\n WHEN re.is_completed = true THEN 'COMPLETED'\n WHEN (\n SELECT COALESCE(SUM(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n WHERE red.reviewer_evaluation_id = re.id\n ) > 0 THEN 'IN_PROGRESS'\n ELSE 'NOT_STARTED'\n END\n FROM \"reviewer_evaluations\" re\n JOIN \"evaluation_target_reviewers\" etr ON re.evaluation_target_reviewer_id = etr.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND etr.department_code = 'PROCUREMENT_EVAL'\n LIMIT 1\n ) as \"procurement_eval_status\", (\n SELECT CASE\n WHEN re.id IS NULL THEN 'NOT_ASSIGNED'\n WHEN re.is_completed = true THEN 'COMPLETED'\n WHEN (\n SELECT COALESCE(SUM(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n WHERE red.reviewer_evaluation_id = re.id\n ) > 0 THEN 'IN_PROGRESS'\n ELSE 'NOT_STARTED'\n END\n FROM \"reviewer_evaluations\" re\n JOIN \"evaluation_target_reviewers\" etr ON re.evaluation_target_reviewer_id = etr.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND etr.department_code = 'QUALITY_EVAL'\n LIMIT 1\n ) as \"quality_eval_status\", (\n SELECT CASE\n WHEN re.id IS NULL THEN 'NOT_ASSIGNED'\n WHEN re.is_completed = true THEN 'COMPLETED'\n WHEN (\n SELECT COALESCE(SUM(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n WHERE red.reviewer_evaluation_id = re.id\n ) > 0 THEN 'IN_PROGRESS'\n ELSE 'NOT_STARTED'\n END\n FROM \"reviewer_evaluations\" re\n JOIN \"evaluation_target_reviewers\" etr ON re.evaluation_target_reviewer_id = etr.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND etr.department_code = 'DESIGN_EVAL'\n LIMIT 1\n ) as \"design_eval_status\", (\n SELECT CASE\n WHEN re.id IS NULL THEN 'NOT_ASSIGNED'\n WHEN re.is_completed = true THEN 'COMPLETED'\n WHEN (\n SELECT COALESCE(SUM(CAST(red.score AS DECIMAL(5,2))), 0)\n FROM \"reviewer_evaluation_details\" red\n WHERE red.reviewer_evaluation_id = re.id\n ) > 0 THEN 'IN_PROGRESS'\n ELSE 'NOT_STARTED'\n END\n FROM \"reviewer_evaluations\" re\n JOIN \"evaluation_target_reviewers\" etr ON re.evaluation_target_reviewer_id = etr.id\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND etr.department_code = 'CS_EVAL'\n LIMIT 1\n ) as \"cs_eval_status\", (\n SELECT COUNT(*)::int\n FROM \"reviewer_evaluations\" re\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n ) as \"total_reviewers\", (\n SELECT COUNT(*)::int\n FROM \"reviewer_evaluations\" re\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND re.is_completed = true\n ) as \"completed_reviewers\", (\n SELECT COUNT(*)::int\n FROM \"reviewer_evaluations\" re\n WHERE re.periodic_evaluation_id = \"periodic_evaluations\".\"id\"\n AND re.is_completed = false\n ) as \"pending_reviewers\", \"users\".\"name\", \"users\".\"email\" from \"periodic_evaluations\" left join \"evaluation_targets\" on \"periodic_evaluations\".\"evaluation_target_id\" = \"evaluation_targets\".\"id\" left join \"users\" on \"periodic_evaluations\".\"finalized_by\" = \"users\".\"id\" order by \"periodic_evaluations\".\"created_at\"", + "name": "periodic_evaluations_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.reviewer_evaluations_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "periodic_evaluation_id": { + "name": "periodic_evaluation_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "evaluation_target_reviewer_id": { + "name": "evaluation_target_reviewer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "is_completed": { + "name": "is_completed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "reviewer_comment": { + "name": "reviewer_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "evaluation_period": { + "name": "evaluation_period", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "submitted_at": { + "name": "submitted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "documents_submitted": { + "name": "documents_submitted", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "submission_date": { + "name": "submission_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "submission_deadline": { + "name": "submission_deadline", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "final_score": { + "name": "final_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "final_grade": { + "name": "final_grade", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "evaluation_score": { + "name": "evaluation_score", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "evaluation_grade": { + "name": "evaluation_grade", + "type": "varchar(5)", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true, + "default": "'PENDING_SUBMISSION'" + }, + "review_completed_at": { + "name": "review_completed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_at": { + "name": "finalized_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "finalized_by": { + "name": "finalized_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "evaluation_note": { + "name": "evaluation_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "evaluation_year": { + "name": "evaluation_year", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "division": { + "name": "division", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "vendor_id": { + "name": "vendor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "vendor_code": { + "name": "vendor_code", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "vendor_name": { + "name": "vendor_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "domestic_foreign": { + "name": "domestic_foreign", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true + }, + "material_type": { + "name": "material_type", + "type": "varchar(30)", + "primaryKey": false, + "notNull": true + }, + "admin_comment": { + "name": "admin_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consolidated_comment": { + "name": "consolidated_comment", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "confirmed_at": { + "name": "confirmed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "confirmed_by": { + "name": "confirmed_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "ld_claim_count": { + "name": "ld_claim_count", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "ld_claim_amount": { + "name": "ld_claim_amount", + "type": "numeric(15, 2)", + "primaryKey": false, + "notNull": false, + "default": "'0'" + }, + "ld_claim_currency": { + "name": "ld_claim_currency", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'KRW'" + }, + "department_code": { + "name": "department_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "department_name_from": { + "name": "department_name_from", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false + }, + "reviewer_user_id": { + "name": "reviewer_user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "assigned_at": { + "name": "assigned_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "assigned_by": { + "name": "assigned_by", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "definition": "select \"reviewer_evaluations\".\"id\", \"reviewer_evaluations\".\"periodic_evaluation_id\", \"reviewer_evaluations\".\"evaluation_target_reviewer_id\", \"reviewer_evaluations\".\"is_completed\", \"reviewer_evaluations\".\"completed_at\", \"reviewer_evaluations\".\"reviewer_comment\", \"reviewer_evaluations\".\"created_at\", \"reviewer_evaluations\".\"updated_at\", \"periodic_evaluations\".\"evaluation_period\", \"reviewer_evaluations\".\"submitted_at\", \"periodic_evaluations\".\"documents_submitted\", \"periodic_evaluations\".\"submission_date\", \"periodic_evaluations\".\"submission_deadline\", \"periodic_evaluations\".\"final_score\", \"periodic_evaluations\".\"final_grade\", \"periodic_evaluations\".\"evaluation_score\", \"periodic_evaluations\".\"evaluation_grade\", \"periodic_evaluations\".\"status\", \"periodic_evaluations\".\"review_completed_at\", \"periodic_evaluations\".\"finalized_at\", \"periodic_evaluations\".\"finalized_by\", \"periodic_evaluations\".\"evaluation_note\", \"evaluation_targets\".\"evaluation_year\", \"evaluation_targets\".\"division\", \"evaluation_targets\".\"vendor_id\", \"evaluation_targets\".\"vendor_code\", \"evaluation_targets\".\"vendor_name\", \"evaluation_targets\".\"domestic_foreign\", \"evaluation_targets\".\"material_type\", \"evaluation_targets\".\"admin_comment\", \"evaluation_targets\".\"consolidated_comment\", \"evaluation_targets\".\"confirmed_at\", \"evaluation_targets\".\"confirmed_by\", \"evaluation_targets\".\"ld_claim_count\", \"evaluation_targets\".\"ld_claim_amount\", \"evaluation_targets\".\"ld_claim_currency\", \"evaluation_target_reviewers\".\"department_code\", \"evaluation_target_reviewers\".\"department_name_from\", \"evaluation_target_reviewers\".\"reviewer_user_id\", reviewer_user.name as \"reviewer_name\", reviewer_user.email as \"reviewer_email\", \"evaluation_target_reviewers\".\"assigned_at\", \"evaluation_target_reviewers\".\"assigned_by\", assigned_by_user.name as \"assigned_by_user_name\", finalized_by_user.name as \"finalized_by_user_name\", finalized_by_user.email as \"finalized_by_user_email\", \n CASE \n WHEN \"reviewer_evaluations\".\"is_completed\" = true THEN 'COMPLETED'\n ELSE 'NOT_STARTED'\n END\n as \"evaluation_progress\" from \"reviewer_evaluations\" left join \"periodic_evaluations\" on \"reviewer_evaluations\".\"periodic_evaluation_id\" = \"periodic_evaluations\".\"id\" left join \"evaluation_targets\" on \"periodic_evaluations\".\"evaluation_target_id\" = \"evaluation_targets\".\"id\" left join \"evaluation_target_reviewers\" on \"reviewer_evaluations\".\"evaluation_target_reviewer_id\" = \"evaluation_target_reviewers\".\"id\" left join users reviewer_user on \"evaluation_target_reviewers\".\"reviewer_user_id\" = reviewer_user.id left join users assigned_by_user on \"evaluation_target_reviewers\".\"assigned_by\" = assigned_by_user.id left join users finalized_by_user on \"periodic_evaluations\".\"finalized_by\" = finalized_by_user.id order by \"reviewer_evaluations\".\"is_completed\" ASC, \"reviewer_evaluations\".\"updated_at\" DESC", + "name": "reviewer_evaluations_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.reg_eval_criteria_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "criteria_id": { + "name": "criteria_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'quality'" + }, + "category2": { + "name": "category2", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'processScore'" + }, + "item": { + "name": "item", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "default": "'quality'" + }, + "classification": { + "name": "classification", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "range": { + "name": "range", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "detail": { + "name": "detail", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "order_index": { + "name": "order_index", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "score_equip_ship": { + "name": "score_equip_ship", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_equip_marine": { + "name": "score_equip_marine", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_bulk_ship": { + "name": "score_bulk_ship", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "score_bulk_marine": { + "name": "score_bulk_marine", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "remarks": { + "name": "remarks", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"reg_eval_criteria_details\".\"id\", \"reg_eval_criteria_details\".\"criteria_id\", \"reg_eval_criteria\".\"category\", \"reg_eval_criteria\".\"category2\", \"reg_eval_criteria\".\"item\", \"reg_eval_criteria\".\"classification\", \"reg_eval_criteria\".\"range\", \"reg_eval_criteria_details\".\"detail\", \"reg_eval_criteria_details\".\"order_index\", \"reg_eval_criteria_details\".\"score_equip_ship\", \"reg_eval_criteria_details\".\"score_equip_marine\", \"reg_eval_criteria_details\".\"score_bulk_ship\", \"reg_eval_criteria_details\".\"score_bulk_marine\", \"reg_eval_criteria\".\"remarks\" from \"reg_eval_criteria\" left join \"reg_eval_criteria_details\" on \"reg_eval_criteria\".\"id\" = \"reg_eval_criteria_details\".\"criteria_id\" order by \"reg_eval_criteria\".\"id\", \"reg_eval_criteria_details\".\"order_index\"", + "name": "reg_eval_criteria_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.project_gtc_view": { + "columns": {}, + "definition": "select \"projects\".\"id\" as \"id\", \"projects\".\"code\" as \"code\", \"projects\".\"name\" as \"name\", \"projects\".\"type\" as \"type\", \"projects\".\"created_at\" as \"project_created_at\", \"projects\".\"updated_at\" as \"project_updated_at\", \"project_gtc_files\".\"id\" as \"gtc_file_id\", \"project_gtc_files\".\"file_name\" as \"fileName\", \"project_gtc_files\".\"file_path\" as \"filePath\", \"project_gtc_files\".\"original_file_name\" as \"originalFileName\", \"project_gtc_files\".\"file_size\" as \"fileSize\", \"project_gtc_files\".\"mime_type\" as \"mimeType\", \"project_gtc_files\".\"created_at\" as \"gtcCreatedAt\", \"project_gtc_files\".\"updated_at\" as \"gtcUpdatedAt\" from \"projects\" left join \"project_gtc_files\" on \"projects\".\"id\" = \"project_gtc_files\".\"project_id\"", + "name": "project_gtc_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.qna_answer_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "qna_id": { + "name": "qna_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + } + }, + "definition": "select \"qna_answer\".\"id\", \"qna_answer\".\"qna_id\", \"qna_answer\".\"content\", \"qna_answer\".\"author\", \"qna_answer\".\"created_at\" as \"created_at\", \"qna_answer\".\"updated_at\" as \"updated_at\", \"qna_answer\".\"is_deleted\" as \"is_deleted\", \"qna_answer\".\"deleted_at\" as \"deleted_at\", \"qna\".\"title\" as \"question_title\", \"qna\".\"category\" as \"question_category\", \"qna\".\"author\" as \"question_author\", \"qna\".\"created_at\" as \"question_created_at\", \"users\".\"name\" as \"author_name\", \"users\".\"email\" as \"author_email\", \"users\".\"domain\" as \"author_domain\", \"users\".\"phone\" as \"author_phone\", \"users\".\"image_url\" as \"author_image_url\", \"users\".\"language\" as \"author_language\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"tech_vendors\".\"vendor_name\" as \"tech_vendor_name\", \"tech_vendors\".\"vendor_code\" as \"tech_vendor_code\", COALESCE(\"vendors\".\"vendor_name\", \"tech_vendors\".\"vendor_name\") as \"company_name\", COALESCE(\"vendors\".\"vendor_code\", \"tech_vendors\".\"vendor_code\") as \"company_code\", \n CASE \n WHEN \"vendors\".\"vendor_name\" IS NOT NULL THEN 'vendor'\n WHEN \"tech_vendors\".\"vendor_name\" IS NOT NULL THEN 'techVendor'\n ELSE NULL\n END\n as \"vendor_type\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc\n WHERE qc.answer_id = \"qna_answer\".\"id\"\n AND qc.is_deleted = false\n ) as \"total_comments\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc\n WHERE qc.answer_id = \"qna_answer\".\"id\"\n AND qc.is_deleted = false\n ) as \"comment_count\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc\n WHERE qc.answer_id = \"qna_answer\".\"id\"\n AND qc.parent_comment_id IS NULL\n AND qc.is_deleted = false\n ) as \"parent_comments_count\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc\n WHERE qc.answer_id = \"qna_answer\".\"id\"\n AND qc.parent_comment_id IS NOT NULL\n AND qc.is_deleted = false\n ) as \"child_comments_count\", (\n SELECT MAX(qc.created_at)\n FROM \"qna_comments\" qc\n WHERE qc.answer_id = \"qna_answer\".\"id\"\n AND qc.is_deleted = false\n ) as \"last_commented_at\", (\n SELECT ROW_NUMBER() OVER (\n PARTITION BY qa2.qna_id \n ORDER BY qa2.created_at ASC\n )\n FROM \"qna_answer\" qa2\n WHERE qa2.id = \"qna_answer\".\"id\"\n AND qa2.is_deleted = false\n ) as \"answer_order\", (\n \"qna_answer\".\"id\" = (\n SELECT qa2.id\n FROM \"qna_answer\" qa2\n WHERE qa2.qna_id = \"qna_answer\".\"qna_id\"\n AND qa2.is_deleted = false\n ORDER BY qa2.created_at ASC\n LIMIT 1\n )\n ) as \"is_first_answer\", (\n \"qna_answer\".\"id\" = (\n SELECT qa2.id\n FROM \"qna_answer\" qa2\n WHERE qa2.qna_id = \"qna_answer\".\"qna_id\"\n AND qa2.is_deleted = false\n ORDER BY qa2.created_at DESC\n LIMIT 1\n )\n ) as \"is_latest_answer\" from \"qna_answer\" left join \"qna\" on \"qna_answer\".\"qna_id\" = \"qna\".\"id\" left join \"users\" on \"qna_answer\".\"author\" = \"users\".\"id\" left join \"vendors\" on \"users\".\"company_id\" = \"vendors\".\"id\" left join \"tech_vendors\" on \"users\".\"tech_company_id\" = \"tech_vendors\".\"id\" where \"qna_answer\".\"is_deleted\" = false order by \"qna_answer\".\"created_at\"", + "name": "qna_answer_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.qna_comment_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "answer_id": { + "name": "answer_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_comment_id": { + "name": "parent_comment_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"qna_comments\".\"id\", \"qna_comments\".\"content\", \"qna_comments\".\"author\", \"qna_comments\".\"answer_id\", \"qna_comments\".\"parent_comment_id\", \"qna_comments\".\"created_at\" as \"created_at\", \"qna_comments\".\"updated_at\" as \"updated_at\", \"qna_comments\".\"is_deleted\" as \"is_deleted\", \"qna_comments\".\"deleted_at\" as \"deleted_at\", \"qna_answer\".\"content\" as \"answer_content\", \"qna_answer\".\"author\" as \"answer_author\", \"qna_answer\".\"created_at\" as \"answer_created_at\", \"qna_answer\".\"qna_id\" as \"qna_id\", \"qna\".\"title\" as \"question_title\", \"qna\".\"category\" as \"question_category\", \"qna\".\"author\" as \"question_author\", \"users\".\"name\" as \"author_name\", \"users\".\"email\" as \"author_email\", \"users\".\"domain\" as \"author_domain\", \"users\".\"image_url\" as \"author_image_url\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"tech_vendors\".\"vendor_name\" as \"tech_vendor_name\", COALESCE(\"vendors\".\"vendor_name\", \"tech_vendors\".\"vendor_name\") as \"company_name\", \n CASE \n WHEN \"vendors\".\"vendor_name\" IS NOT NULL THEN 'vendor'\n WHEN \"tech_vendors\".\"vendor_name\" IS NOT NULL THEN 'techVendor'\n ELSE NULL\n END\n as \"vendor_type\", \"qna_comments\".\"parent_comment_id\" IS NULL as \"is_parent_comment\", \"qna_comments\".\"parent_comment_id\" IS NOT NULL as \"is_child_comment\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc2\n WHERE qc2.parent_comment_id = \"qna_comments\".\"id\"\n AND qc2.is_deleted = false\n ) as \"child_comments_count\", (\n SELECT COUNT(*) > 0\n FROM \"qna_comments\" qc2\n WHERE qc2.parent_comment_id = \"qna_comments\".\"id\"\n AND qc2.is_deleted = false\n ) as \"has_child_comments\", \n CASE \n WHEN \"qna_comments\".\"parent_comment_id\" IS NULL THEN 0\n ELSE 1\n END\n as \"comment_depth\", (\n SELECT ROW_NUMBER() OVER (\n PARTITION BY qc2.answer_id, qc2.parent_comment_id\n ORDER BY qc2.created_at ASC\n )\n FROM \"qna_comments\" qc2\n WHERE qc2.id = \"qna_comments\".\"id\"\n AND qc2.is_deleted = false\n ) as \"comment_order\" from \"qna_comments\" left join \"qna_answer\" on \"qna_comments\".\"answer_id\" = \"qna_answer\".\"id\" left join \"qna\" on \"qna_answer\".\"qna_id\" = \"qna\".\"id\" left join \"users\" on \"qna_comments\".\"author\" = \"users\".\"id\" left join \"vendors\" on \"users\".\"company_id\" = \"vendors\".\"id\" left join \"tech_vendors\" on \"users\".\"tech_company_id\" = \"tech_vendors\".\"id\" where \"qna_comments\".\"is_deleted\" = false order by \"qna_comments\".\"created_at\"", + "name": "qna_comment_view", + "schema": "public", + "isExisting": false, + "materialized": false + }, + "public.qna_view": { + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author": { + "name": "author", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "category": { + "name": "category", + "type": "qna_category", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "is_deleted": { + "name": "is_deleted", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "domain": { + "name": "domain", + "type": "user_domain", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'partners'" + }, + "phone": { + "name": "phone", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false + }, + "image_url": { + "name": "image_url", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false + }, + "language": { + "name": "language", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "'en'" + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "last_login_at": { + "name": "last_login_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "definition": "select \"qna\".\"id\", \"qna\".\"title\", \"qna\".\"content\", \"qna\".\"author\", \"qna\".\"category\", \"qna\".\"created_at\", \"qna\".\"updated_at\", \"qna\".\"is_deleted\", \"qna\".\"deleted_at\", \"users\".\"name\", \"users\".\"email\", \"users\".\"domain\", \"users\".\"phone\", \"users\".\"image_url\", \"users\".\"language\", \"users\".\"is_active\", \"users\".\"last_login_at\", \"vendors\".\"vendor_name\" as \"vendor_name\", \"vendors\".\"vendor_code\" as \"vendor_code\", \"vendors\".\"status\" as \"vendor_status\", \"vendors\".\"country\" as \"vendor_country\", \"vendors\".\"business_size\" as \"vendor_business_size\", \"tech_vendors\".\"vendor_name\" as \"tech_vendor_name\", \"tech_vendors\".\"vendor_code\" as \"tech_vendor_code\", \"tech_vendors\".\"status\" as \"tech_vendor_status\", \"tech_vendors\".\"country\" as \"tech_vendor_country\", \"tech_vendors\".\"tech_vendor_type\" as \"tech_vendor_type\", COALESCE(\"vendors\".\"vendor_name\", \"tech_vendors\".\"vendor_name\") as \"company_name\", COALESCE(\"vendors\".\"vendor_code\", \"tech_vendors\".\"vendor_code\") as \"company_code\", COALESCE(\"vendors\".\"country\", \"tech_vendors\".\"country\") as \"company_country\", \n CASE \n WHEN \"vendors\".\"vendor_name\" IS NOT NULL THEN 'vendor'\n WHEN \"tech_vendors\".\"vendor_name\" IS NOT NULL THEN 'techVendor'\n ELSE NULL\n END\n as \"vendor_type\", (\n SELECT COUNT(*)::int\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"total_answers\", (\n SELECT COUNT(*)::int\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"answer_count\", (\n SELECT MAX(qa.created_at)\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"last_answered_at\", (\n SELECT MIN(qa.created_at)\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"first_answered_at\", (\n SELECT COUNT(*)::int\n FROM \"qna_comments\" qc\n INNER JOIN \"qna_answer\" qa ON qc.answer_id = qa.id\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qc.is_deleted = false\n AND qa.is_deleted = false\n ) as \"total_comments\", (\n SELECT GREATEST(\n \"qna\".\"updated_at\",\n COALESCE((\n SELECT MAX(qa.updated_at)\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ), \"qna\".\"updated_at\"),\n COALESCE((\n SELECT MAX(qc.updated_at)\n FROM \"qna_comments\" qc\n INNER JOIN \"qna_answer\" qa ON qc.answer_id = qa.id\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qc.is_deleted = false\n AND qa.is_deleted = false\n ), \"qna\".\"updated_at\")\n )\n ) as \"last_activity_at\", (\n SELECT COUNT(*) > 0\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"has_answers\", (\n SELECT COUNT(*) > 0\n FROM \"qna_answer\" qa\n WHERE qa.qna_id = \"qna\".\"id\"\n AND qa.is_deleted = false\n ) as \"is_answered\", (\n (SELECT COUNT(*) FROM \"qna_answer\" qa WHERE qa.qna_id = \"qna\".\"id\" AND qa.is_deleted = false) >= 3\n OR\n (SELECT COUNT(*) FROM \"qna_comments\" qc \n INNER JOIN \"qna_answer\" qa ON qc.answer_id = qa.id \n WHERE qa.qna_id = \"qna\".\"id\" AND qc.is_deleted = false AND qa.is_deleted = false) >= 5\n ) as \"is_popular\" from \"qna\" left join \"users\" on \"qna\".\"author\" = \"users\".\"id\" left join \"vendors\" on \"users\".\"company_id\" = \"vendors\".\"id\" left join \"tech_vendors\" on \"users\".\"tech_company_id\" = \"tech_vendors\".\"id\" where \"qna\".\"is_deleted\" = false order by \"qna\".\"created_at\"", + "name": "qna_view", + "schema": "public", + "isExisting": false, + "materialized": false + } + }, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +}
\ No newline at end of file diff --git a/db/migrations/meta/_journal.json b/db/migrations/meta/_journal.json index d009f235..86b404a7 100644 --- a/db/migrations/meta/_journal.json +++ b/db/migrations/meta/_journal.json @@ -1436,6 +1436,13 @@ "when": 1751849552818, "tag": "0204_loving_blockbuster", "breakpoints": true + }, + { + "idx": 205, + "version": "7", + "when": 1752028169531, + "tag": "0205_perfect_zzzax", + "breakpoints": true } ] }
\ No newline at end of file diff --git a/db/schema/ocr.ts b/db/schema/ocr.ts index 12382aa4..f45fb523 100644 --- a/db/schema/ocr.ts +++ b/db/schema/ocr.ts @@ -49,6 +49,8 @@ export const ocrRows = pgTable('ocr_rows', { sessionId: uuid('session_id').notNull().references(() => ocrSessions.id, { onDelete: 'cascade' }), rowIndex: integer('row_index').notNull(), // 테이블 내에서 행 순서 reportNo: varchar('report_no', { length: 100 }), // Report No. (예: SN2661FT20250526) + fileName: varchar('file_name', { length: 255 }), + inspectionDate: varchar('inspection_date', { length: 255 }), no: varchar('no', { length: 50 }), identificationNo: varchar('identification_no', { length: 100 }), tagNo: varchar('tag_no', { length: 100 }), diff --git a/db/schema/vendorData.ts b/db/schema/vendorData.ts index 16ae87d9..b7c70e72 100644 --- a/db/schema/vendorData.ts +++ b/db/schema/vendorData.ts @@ -3,17 +3,17 @@ import { text, varchar, timestamp, - integer, - unique, - serial, - jsonb, + integer, + unique, + serial, + jsonb, uniqueIndex, primaryKey, foreignKey, pgView, - boolean, index + boolean, index ,json } from "drizzle-orm/pg-core" -import { relations, and, eq, sql} from "drizzle-orm"; +import { relations, and, eq, sql } from "drizzle-orm"; import { contractItems } from "./contract" import { projects } from "./projects" // projects 테이블 임포트 가정 @@ -76,22 +76,22 @@ export const formEntries = pgTable("form_entries", { export const tags = pgTable("tags", { id: integer("id").primaryKey().generatedAlwaysAsIdentity(), contractItemId: integer("contract_item_id") - .notNull() - .references(() => contractItems.id, { onDelete: "cascade" }), + .notNull() + .references(() => contractItems.id, { onDelete: "cascade" }), formId: integer("form_id") - .references(() => forms.id, { onDelete: "set null" }), + .references(() => forms.id, { onDelete: "set null" }), tagNo: varchar("tag_no", { length: 100 }).notNull(), tagType: varchar("tag_type", { length: 50 }).notNull(), class: varchar("class", { length: 100 }).notNull(), description: text("description"), createdAt: timestamp("created_at").defaultNow().notNull(), updatedAt: timestamp("updated_at").defaultNow().notNull(), - }, (table) => { +}, (table) => { return { - contractItemTagNoUnique: unique("contract_item_tag_no_unique").on(table.contractItemId, table.tagNo), + contractItemTagNoUnique: unique("contract_item_tag_no_unique").on(table.contractItemId, table.tagNo), }; - }); - +}); + // tagTypes에 projectId 추가 및 복합 기본키 생성 export const tagTypes = pgTable("tag_types", { code: varchar("code", { length: 50 }).notNull(), @@ -254,37 +254,37 @@ export const tagTypeClassFormMappingsRelations = relations(tagTypeClassFormMappi // view_tag_subfields에도 projectId 추가 export const viewTagSubfields = pgView("view_tag_subfields").as((qb) => { return qb - .select({ - - id: sql<number>`${tagSubfields.id}`.as("id"), - // projectId: tagSubfields.projectId, - tagTypeCode: tagSubfields.tagTypeCode, - tagTypeDescription: tagTypes.description, - attributesId: tagSubfields.attributesId, - attributesDescription: tagSubfields.attributesDescription, - expression: tagSubfields.expression, - delimiter: tagSubfields.delimiter, - sortOrder: tagSubfields.sortOrder, - createdAt: tagSubfields.createdAt, - updatedAt: tagSubfields.updatedAt, - // 프로젝트 관련 정보 추가 - projectId: sql<number>`${projects.id}`.as("project_id"), // Explicitly alias projects.id - projectCode: projects.code, - projectName: projects.name - }) - .from(tagSubfields) - .innerJoin( - tagTypes, - and( - eq(tagSubfields.tagTypeCode, tagTypes.code), - eq(tagSubfields.projectId, tagTypes.projectId) + .select({ + + id: sql<number>`${tagSubfields.id}`.as("id"), + // projectId: tagSubfields.projectId, + tagTypeCode: tagSubfields.tagTypeCode, + tagTypeDescription: tagTypes.description, + attributesId: tagSubfields.attributesId, + attributesDescription: tagSubfields.attributesDescription, + expression: tagSubfields.expression, + delimiter: tagSubfields.delimiter, + sortOrder: tagSubfields.sortOrder, + createdAt: tagSubfields.createdAt, + updatedAt: tagSubfields.updatedAt, + // 프로젝트 관련 정보 추가 + projectId: sql<number>`${projects.id}`.as("project_id"), // Explicitly alias projects.id + projectCode: projects.code, + projectName: projects.name + }) + .from(tagSubfields) + .innerJoin( + tagTypes, + and( + eq(tagSubfields.tagTypeCode, tagTypes.code), + eq(tagSubfields.projectId, tagTypes.projectId) + ) + ) + .innerJoin( + projects, + eq(tagSubfields.projectId, projects.id) ) - ) - .innerJoin( - projects, - eq(tagSubfields.projectId, projects.id) - ) - }); +}); // 타입 정의 업데이트 export type Tag = typeof tags.$inferSelect @@ -299,55 +299,130 @@ export type ViewTagSubfields = typeof viewTagSubfields.$inferSelect export const vendorDataReportTemps = pgTable("vendor_data_report_temps", { id: serial("id").primaryKey(), contractItemId: integer("contract_item_id") - .notNull() - .references(() => contractItems.id, { onDelete: "cascade" }), + .notNull() + .references(() => contractItems.id, { onDelete: "cascade" }), formId: integer("form_id") - .notNull() - .references(() => forms.id, { onDelete: "cascade" }), + .notNull() + .references(() => forms.id, { onDelete: "cascade" }), fileName: varchar("file_name", { length: 255 }).notNull(), filePath: varchar("file_path", { length: 1024 }).notNull(), createdAt: timestamp("created_at", { withTimezone: true }) - .defaultNow() - .notNull(), + .defaultNow() + .notNull(), updatedAt: timestamp("updated_at", { withTimezone: true }) - .defaultNow() - .notNull(), + .defaultNow() + .notNull(), }); - + export type VendorDataReportTemps = typeof vendorDataReportTemps.$inferSelect; export const formListsView = pgView("form_lists_view").as((qb) => { return qb - .select({ - // Primary identifiers - id: sql<number>`${tagTypeClassFormMappings.id}`.as("id"), - projectId: sql<number>`${tagTypeClassFormMappings.projectId}`.as("project_id"), - - // Project information - projectCode: sql<string>`${projects.code}`.as("project_code"), - projectName: sql<string>`${projects.name}`.as("project_name"), - - // Form information - tagTypeLabel: sql<string>`${tagTypeClassFormMappings.tagTypeLabel}`.as("tag_type_label"), - classLabel: sql<string>`${tagTypeClassFormMappings.classLabel}`.as("class_label"), - formCode: sql<string>`${tagTypeClassFormMappings.formCode}`.as("form_code"), - formName: sql<string>`${tagTypeClassFormMappings.formName}`.as("form_name"), - - // Additional fields - ep: sql<string | null>`${tagTypeClassFormMappings.ep}`.as("ep"), - remark: sql<string | null>`${tagTypeClassFormMappings.remark}`.as("remark"), - - // Timestamps - createdAt: sql<Date>`${tagTypeClassFormMappings.createdAt}`.as("created_at"), - updatedAt: sql<Date>`${tagTypeClassFormMappings.updatedAt}`.as("updated_at"), - }) - .from(tagTypeClassFormMappings) - .innerJoin( - projects, - eq(tagTypeClassFormMappings.projectId, projects.id) - ); - }); - - - export type FormListsView = typeof formListsView.$inferSelect; + .select({ + // Primary identifiers + id: sql<number>`${tagTypeClassFormMappings.id}`.as("id"), + projectId: sql<number>`${tagTypeClassFormMappings.projectId}`.as("project_id"), + + // Project information + projectCode: sql<string>`${projects.code}`.as("project_code"), + projectName: sql<string>`${projects.name}`.as("project_name"), + + // Form information + tagTypeLabel: sql<string>`${tagTypeClassFormMappings.tagTypeLabel}`.as("tag_type_label"), + classLabel: sql<string>`${tagTypeClassFormMappings.classLabel}`.as("class_label"), + formCode: sql<string>`${tagTypeClassFormMappings.formCode}`.as("form_code"), + formName: sql<string>`${tagTypeClassFormMappings.formName}`.as("form_name"), + + // Additional fields + ep: sql<string | null>`${tagTypeClassFormMappings.ep}`.as("ep"), + remark: sql<string | null>`${tagTypeClassFormMappings.remark}`.as("remark"), + + // Timestamps + createdAt: sql<Date>`${tagTypeClassFormMappings.createdAt}`.as("created_at"), + updatedAt: sql<Date>`${tagTypeClassFormMappings.updatedAt}`.as("updated_at"), + }) + .from(tagTypeClassFormMappings) + .innerJoin( + projects, + eq(tagTypeClassFormMappings.projectId, projects.id) + ); +}); + + +export type FormListsView = typeof formListsView.$inferSelect; + + +// TemplateItem 스키마 정의 +export const templateItems = pgTable("template_items", { + id: serial("id").primaryKey(), + + // tag_type_class_form_mappings 테이블과의 관계 + formMappingId: integer("form_mapping_id").notNull().references(() => tagTypeClassFormMappings.id), + + // TemplateItem 기본 필드들 + tmplId: varchar("tmpl_id", { length: 255 }).notNull(), + name: varchar("name", { length: 255 }).notNull(), + tmplType: varchar("tmpl_type", { length: 100 }).notNull(), + + // 복잡한 객체들을 JSON으로 저장 + sprLstSetup: json("spr_lst_setup").$type<{ + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }>().notNull(), + + grdLstSetup: json("grd_lst_setup").$type<{ + REG_TYPE_ID: string; + SPR_ITM_IDS: Array<string>; + ATTS: Array<any>; + }>().notNull(), + + sprItmLstSetup: json("spr_itm_lst_setup").$type<{ + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }>().notNull(), + + // 메타데이터 + description: text("description"), // 템플릿 설명 + isActive: boolean("is_active").default(true).notNull(), // 활성/비활성 상태 + + // 타임스탬프 + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(), +}, (table) => { + return { + // 같은 form mapping에서 동일한 tmpl_id는 중복될 수 없음 + uniqTmplInFormMapping: unique("uniq_tmpl_in_form_mapping").on( + table.formMappingId, + table.tmplId + ), + + // 템플릿 이름도 form mapping 내에서 유니크 + uniqNameInFormMapping: unique("uniq_name_in_form_mapping").on( + table.formMappingId, + table.name + ) + }; +}); + +// TypeScript 타입 추출 +export type TemplateItem = typeof templateItems.$inferSelect; +export type NewTemplateItem = typeof templateItems.$inferInsert;
\ No newline at end of file diff --git a/lib/admin-users/table/ausers-table-columns.tsx b/lib/admin-users/table/ausers-table-columns.tsx index 38281c7e..41b78adb 100644 --- a/lib/admin-users/table/ausers-table-columns.tsx +++ b/lib/admin-users/table/ausers-table-columns.tsx @@ -173,7 +173,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<UserVie if (cfg.id === "created_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "roles") { diff --git a/lib/b-rfq/attachment/attachment-columns.tsx b/lib/b-rfq/attachment/attachment-columns.tsx index c611e06c..b726ebc8 100644 --- a/lib/b-rfq/attachment/attachment-columns.tsx +++ b/lib/b-rfq/attachment/attachment-columns.tsx @@ -156,13 +156,13 @@ export function getAttachmentColumns({ const updated = row.original.updatedAt as Date return ( <div> - <div>{formatDate(created)}</div> + <div>{formatDate(created, "KR")}</div> <div className="text-xs text-muted-foreground"> {row.original.createdByName} </div> {updated && new Date(updated) > new Date(created) && ( <div className="text-xs text-blue-600"> - 수정: {formatDate(updated)} + 수정: {formatDate(updated, "KR")} </div> )} </div> @@ -252,10 +252,6 @@ export function getAttachmentColumns({ <MessageSquare className="mr-2 h-4 w-4" /> 벤더 응답 보기 </DropdownMenuItem> - <DropdownMenuItem> - <Eye className="mr-2 h-4 w-4" /> - 미리보기 - </DropdownMenuItem> <DropdownMenuItem onClick={() => row.original.filePath && window.open(row.original.filePath, "_blank")} > diff --git a/lib/b-rfq/attachment/revision-dialog.tsx b/lib/b-rfq/attachment/revision-dialog.tsx index b1fe1576..d26abedb 100644 --- a/lib/b-rfq/attachment/revision-dialog.tsx +++ b/lib/b-rfq/attachment/revision-dialog.tsx @@ -143,7 +143,7 @@ export function RevisionDialog({ </TableCell> <TableCell> - {formatDate(revision.createdAt)} + {formatDate(revision.createdAt, "KR")} </TableCell> <TableCell> diff --git a/lib/b-rfq/final/final-rfq-detail-columns.tsx b/lib/b-rfq/final/final-rfq-detail-columns.tsx index 832923eb..88d62765 100644 --- a/lib/b-rfq/final/final-rfq-detail-columns.tsx +++ b/lib/b-rfq/final/final-rfq-detail-columns.tsx @@ -351,7 +351,7 @@ export function getFinalRfqDetailColumns({ const deliveryDate = row.getValue("deliveryDate") as Date return deliveryDate ? ( <div className="text-sm"> - {formatDate(deliveryDate)} + {formatDate(deliveryDate, "KR")} </div> ) : ( <span className="text-muted-foreground">-</span> @@ -487,7 +487,7 @@ export function getFinalRfqDetailColumns({ const updated = row.getValue("updatedAt") as Date return updated ? ( <div className="text-sm"> - {formatDate(updated)} + {formatDate(updated, "KR")} </div> ) : ( <span className="text-muted-foreground">-</span> diff --git a/lib/b-rfq/initial/initial-rfq-detail-columns.tsx b/lib/b-rfq/initial/initial-rfq-detail-columns.tsx index f2be425c..2d9c3a68 100644 --- a/lib/b-rfq/initial/initial-rfq-detail-columns.tsx +++ b/lib/b-rfq/initial/initial-rfq-detail-columns.tsx @@ -288,7 +288,7 @@ export function getInitialRfqDetailColumns({ const validDate = row.getValue("validDate") as Date return validDate ? ( <div className="text-sm"> - {formatDate(validDate)} + {formatDate(validDate, "KR")} </div> ) : ( <span className="text-muted-foreground">-</span> @@ -307,7 +307,7 @@ export function getInitialRfqDetailColumns({ return dueDate ? ( <div className={`${isOverdue ? 'text-red-600' : ''}`}> - <div className="font-medium">{formatDate(dueDate)}</div> + <div className="font-medium">{formatDate(dueDate, "KR")}</div> {isOverdue && ( <div className="text-xs text-red-600">지연</div> )} @@ -384,7 +384,7 @@ export function getInitialRfqDetailColumns({ return ( <div className="space-y-1"> - <div className="text-sm">{formatDate(created)}</div> + <div className="text-sm">{formatDate(created, "KR")}</div> {updated && new Date(updated) > new Date(created) && ( <div className="text-xs text-blue-600"> 수정: {formatDate(updated, "KR")} diff --git a/lib/b-rfq/service.ts b/lib/b-rfq/service.ts index 4def634b..2ef57b34 100644 --- a/lib/b-rfq/service.ts +++ b/lib/b-rfq/service.ts @@ -498,7 +498,7 @@ export async function getVendorResponsesForAttachment( rfqType: 'INITIAL' | 'FINAL' = 'INITIAL' ) { try { - // 1. 기본 벤더 응답 정보 가져오기 + // 1. 기본 벤더 응답 정보 가져오기 (첨부파일 정보와 조인) const responses = await db .select({ id: vendorAttachmentResponses.id, @@ -510,10 +510,16 @@ export async function getVendorResponsesForAttachment( rfqType: vendorAttachmentResponses.rfqType, rfqRecordId: vendorAttachmentResponses.rfqRecordId, responseStatus: vendorAttachmentResponses.responseStatus, - currentRevision: vendorAttachmentResponses.currentRevision, + + // 첨부파일의 현재 리비전 (가장 중요!) + currentRevision: bRfqsAttachments.currentRevision, + + // 벤더가 응답한 리비전 respondedRevision: vendorAttachmentResponses.respondedRevision, + responseComment: vendorAttachmentResponses.responseComment, vendorComment: vendorAttachmentResponses.vendorComment, + // 새로 추가된 필드들 revisionRequestComment: vendorAttachmentResponses.revisionRequestComment, revisionRequestedAt: vendorAttachmentResponses.revisionRequestedAt, @@ -523,6 +529,7 @@ export async function getVendorResponsesForAttachment( }) .from(vendorAttachmentResponses) .leftJoin(vendors, eq(vendorAttachmentResponses.vendorId, vendors.id)) + .leftJoin(bRfqsAttachments, eq(vendorAttachmentResponses.attachmentId, bRfqsAttachments.id)) .where( and( eq(vendorAttachmentResponses.attachmentId, attachmentId), @@ -553,15 +560,23 @@ export async function getVendorResponsesForAttachment( .orderBy(desc(vendorResponseAttachmentsB.uploadedAt)); } - // 3. 응답에 파일 정보 병합 - const enhancedResponses = responses.map(response => ({ - ...response, - files: responseFiles.filter(file => file.vendorResponseId === response.id), - totalFiles: responseFiles.filter(file => file.vendorResponseId === response.id).length, - latestFile: responseFiles - .filter(file => file.vendorResponseId === response.id) - .sort((a, b) => new Date(b.uploadedAt).getTime() - new Date(a.uploadedAt).getTime())[0] || null, - })); + // 3. 응답에 파일 정보 병합 및 리비전 상태 체크 + const enhancedResponses = responses.map(response => { + const files = responseFiles.filter(file => file.vendorResponseId === response.id); + const latestFile = files + .sort((a, b) => new Date(b.uploadedAt).getTime() - new Date(a.uploadedAt).getTime())[0] || null; + + // 벤더가 최신 리비전에 응답했는지 체크 + const isUpToDate = response.respondedRevision === response.currentRevision; + + return { + ...response, + files, + totalFiles: files.length, + latestFile, + isUpToDate, // 최신 리비전 응답 여부 + }; + }); return enhancedResponses; } catch (err) { diff --git a/lib/b-rfq/vendor-response/vendor-responses-table.tsx b/lib/b-rfq/vendor-response/vendor-responses-table.tsx index 251b1ad0..02a5fa59 100644 --- a/lib/b-rfq/vendor-response/vendor-responses-table.tsx +++ b/lib/b-rfq/vendor-response/vendor-responses-table.tsx @@ -52,20 +52,12 @@ export function VendorResponsesTable({ promises }: VendorResponsesTableProps) { ] }, - { - id: "rfqCode", - label: "RFQ 번호", - placeholder: "RFQ 번호 검색...", - } + ]; // 고급 필터 필드 const advancedFilterFields: DataTableAdvancedFilterField<VendorRfqResponseSummary>[] = [ - { - id: "rfqCode", - label: "RFQ 번호", - type: "text", - }, + { id: "overallStatus", label: "전체 상태", diff --git a/lib/basic-contract/status/basic-contract-columns.tsx b/lib/basic-contract/status/basic-contract-columns.tsx index 54504be4..cc9d9bff 100644 --- a/lib/basic-contract/status/basic-contract-columns.tsx +++ b/lib/basic-contract/status/basic-contract-columns.tsx @@ -106,7 +106,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<BasicCo // 날짜 형식 처리 if (cfg.id === "createdAt" || cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDateTime(dateVal) + return formatDateTime(dateVal, "KR") } // Status 컬럼에 Badge 적용 (확장) diff --git a/lib/basic-contract/template/basic-contract-template-columns.tsx b/lib/basic-contract/template/basic-contract-template-columns.tsx index b0486fe4..5f4433d1 100644 --- a/lib/basic-contract/template/basic-contract-template-columns.tsx +++ b/lib/basic-contract/template/basic-contract-template-columns.tsx @@ -186,7 +186,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<BasicCo // 날짜 형식 처리
if (cfg.id === "createdAt" || cfg.id === "updatedAt") {
const dateVal = cell.getValue() as Date
- return formatDateTime(dateVal)
+ return formatDateTime(dateVal, "KR")
}
// Status 컬럼에 Badge 적용
diff --git a/lib/bidding-projects/table/projects-table-columns.tsx b/lib/bidding-projects/table/projects-table-columns.tsx index b8f3b91b..f1e23be9 100644 --- a/lib/bidding-projects/table/projects-table-columns.tsx +++ b/lib/bidding-projects/table/projects-table-columns.tsx @@ -43,7 +43,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Bidding cell: ({ row, cell }) => { if (cfg.id === "createdAt" || cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" }, diff --git a/lib/cbe/table/cbe-table-columns.tsx b/lib/cbe/table/cbe-table-columns.tsx index 2da62ea8..552a0249 100644 --- a/lib/cbe/table/cbe-table-columns.tsx +++ b/lib/cbe/table/cbe-table-columns.tsx @@ -158,7 +158,7 @@ export function getColumns({ if (cfg.id === "respondedAt") { const dateVal = val as Date | undefined if (!dateVal) return null - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // 그 외 필드는 기본 값 표시 diff --git a/lib/cbe/table/comments-sheet.tsx b/lib/cbe/table/comments-sheet.tsx index 2ac9049f..b4647e7a 100644 --- a/lib/cbe/table/comments-sheet.tsx +++ b/lib/cbe/table/comments-sheet.tsx @@ -176,7 +176,7 @@ export function CommentSheet({ </div> )} </TableCell> - <TableCell> { c.createdAt ? formatDate(c.createdAt): "-"}</TableCell> + <TableCell> { c.createdAt ? formatDate(c.createdAt, "KR"): "-"}</TableCell> <TableCell> {c.commentedByEmail ?? "-"} </TableCell> diff --git a/lib/dashboard/dashboard-client.tsx b/lib/dashboard/dashboard-client.tsx index cda1ed8e..398a18f2 100644 --- a/lib/dashboard/dashboard-client.tsx +++ b/lib/dashboard/dashboard-client.tsx @@ -68,14 +68,14 @@ export function DashboardClient({ initialData }: DashboardClientProps) { <div className="flex items-center justify-between"> <div> <h2 className="text-2xl font-bold tracking-tight"> - {getDomainDisplayName(domain)} Dashboard + {getDomainDisplayName(domain)} 대시보드 </h2> - <p className="text-muted-foreground"> + {/* <p className="text-muted-foreground"> {domain === "partners" ? "회사와 개인에게 할당된 일들을 보여줍니다." : "팀과 개인에게 할당된 일들을 보여줍니다." } - </p> + </p> */} </div> <Button onClick={handleRefresh} diff --git a/lib/equip-class/table/equipClass-table-columns.tsx b/lib/equip-class/table/equipClass-table-columns.tsx index d149c836..0dfbf06f 100644 --- a/lib/equip-class/table/equipClass-table-columns.tsx +++ b/lib/equip-class/table/equipClass-table-columns.tsx @@ -50,7 +50,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Extende if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/esg-check-list/table/esg-evaluations-table-columns.tsx b/lib/esg-check-list/table/esg-evaluations-table-columns.tsx index 399f9f4a..48139c75 100644 --- a/lib/esg-check-list/table/esg-evaluations-table-columns.tsx +++ b/lib/esg-check-list/table/esg-evaluations-table-columns.tsx @@ -206,7 +206,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<EsgEval ), cell: ({ row }) => { const date = row.getValue("createdAt") as Date - return formatDate(date) + return formatDate(date, "KR") }, }, { @@ -216,7 +216,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<EsgEval ), cell: ({ row }) => { const date = row.getValue("updatedAt") as Date - return formatDate(date) + return formatDate(date, "KR") }, }, ] diff --git a/lib/evaluation-submit/table/evaluation-submissions-table-columns.tsx b/lib/evaluation-submit/table/evaluation-submissions-table-columns.tsx index 1ec0284f..8d097aff 100644 --- a/lib/evaluation-submit/table/evaluation-submissions-table-columns.tsx +++ b/lib/evaluation-submit/table/evaluation-submissions-table-columns.tsx @@ -376,7 +376,7 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ColumnDef ), cell: ({ row }) => { const date = row.getValue("reviewerEvaluationCreatedAt") as Date; - return formatDate(date); + return formatDate(date, "KR"); }, size: 140, }, @@ -387,7 +387,7 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ColumnDef ), cell: ({ row }) => { const date = row.getValue("reviewerEvaluationUpdatedAt") as Date; - return formatDate(date); + return formatDate(date, "KR"); }, size: 140, }, diff --git a/lib/form-list/table/formLists-table-columns.tsx b/lib/form-list/table/formLists-table-columns.tsx index 5b120796..b992feb3 100644 --- a/lib/form-list/table/formLists-table-columns.tsx +++ b/lib/form-list/table/formLists-table-columns.tsx @@ -91,7 +91,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<FormLis if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/incoterms/table/incoterms-table-columns.tsx b/lib/incoterms/table/incoterms-table-columns.tsx index 91ce4482..3e25e1d3 100644 --- a/lib/incoterms/table/incoterms-table-columns.tsx +++ b/lib/incoterms/table/incoterms-table-columns.tsx @@ -159,7 +159,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<typeof }, cell: ({ row }) => { const dateVal = row.getValue("createdAt") as Date - return formatDateTime(dateVal) + return formatDateTime(dateVal, "KR") }, minSize: 80 } diff --git a/lib/items-tech/table/hull/offshore-hull-table-columns.tsx b/lib/items-tech/table/hull/offshore-hull-table-columns.tsx index efc6c583..19782c42 100644 --- a/lib/items-tech/table/hull/offshore-hull-table-columns.tsx +++ b/lib/items-tech/table/hull/offshore-hull-table-columns.tsx @@ -162,7 +162,7 @@ export function getOffshoreHullColumns({ setRowAction }: GetColumnsProps): Colum header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="생성일" />
),
- cell: ({ row }) => formatDate(row.original.createdAt),
+ cell: ({ row }) => formatDate(row.original.createdAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
@@ -174,7 +174,7 @@ export function getOffshoreHullColumns({ setRowAction }: GetColumnsProps): Colum header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="수정일" />
),
- cell: ({ row }) => formatDate(row.original.updatedAt),
+ cell: ({ row }) => formatDate(row.original.updatedAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
diff --git a/lib/items-tech/table/ship/items-ship-table-columns.tsx b/lib/items-tech/table/ship/items-ship-table-columns.tsx index 13ba2480..7018ae43 100644 --- a/lib/items-tech/table/ship/items-ship-table-columns.tsx +++ b/lib/items-tech/table/ship/items-ship-table-columns.tsx @@ -165,7 +165,7 @@ export function getShipbuildingColumns({ setRowAction }: GetColumnsProps): Colum header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="생성일" />
),
- cell: ({ row }) => formatDate(row.original.createdAt),
+ cell: ({ row }) => formatDate(row.original.createdAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
@@ -177,7 +177,7 @@ export function getShipbuildingColumns({ setRowAction }: GetColumnsProps): Colum header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="수정일" />
),
- cell: ({ row }) => formatDate(row.original.updatedAt),
+ cell: ({ row }) => formatDate(row.original.updatedAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
diff --git a/lib/items-tech/table/top/offshore-top-table-columns.tsx b/lib/items-tech/table/top/offshore-top-table-columns.tsx index 93f27492..c2df4b75 100644 --- a/lib/items-tech/table/top/offshore-top-table-columns.tsx +++ b/lib/items-tech/table/top/offshore-top-table-columns.tsx @@ -162,7 +162,7 @@ export function getOffshoreTopColumns({ setRowAction }: GetColumnsProps): Column header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="생성일" />
),
- cell: ({ row }) => formatDate(row.original.createdAt),
+ cell: ({ row }) => formatDate(row.original.createdAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
@@ -174,7 +174,7 @@ export function getOffshoreTopColumns({ setRowAction }: GetColumnsProps): Column header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="수정일" />
),
- cell: ({ row }) => formatDate(row.original.updatedAt),
+ cell: ({ row }) => formatDate(row.original.updatedAt, "KR"),
enableSorting: true,
enableHiding: true,
meta: {
diff --git a/lib/items/table/items-table-columns.tsx b/lib/items/table/items-table-columns.tsx index 8dd84c58..e321fe1a 100644 --- a/lib/items/table/items-table-columns.tsx +++ b/lib/items/table/items-table-columns.tsx @@ -138,7 +138,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Item>[] if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/login-session/table/login-sessions-table-columns.tsx b/lib/login-session/table/login-sessions-table-columns.tsx index 5d2389be..899678f3 100644 --- a/lib/login-session/table/login-sessions-table-columns.tsx +++ b/lib/login-session/table/login-sessions-table-columns.tsx @@ -89,7 +89,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Extende </div> </TooltipTrigger> <TooltipContent> - {formatDate(date)} + {formatDate(date, "KR")} </TooltipContent> </Tooltip> ) @@ -113,7 +113,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Extende </div> </TooltipTrigger> <TooltipContent> - {formatDate(date)} + {formatDate(date, "KR")} </TooltipContent> </Tooltip> ) diff --git a/lib/page-visits/table/page-visits-table-columns.tsx b/lib/page-visits/table/page-visits-table-columns.tsx index e1d2fed4..86f2d9c3 100644 --- a/lib/page-visits/table/page-visits-table-columns.tsx +++ b/lib/page-visits/table/page-visits-table-columns.tsx @@ -125,7 +125,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Extende </div> </TooltipTrigger> <TooltipContent> - {formatDate(date)} + {formatDate(date, "KR")} </TooltipContent> </Tooltip> ) diff --git a/lib/payment-terms/table/payment-terms-table-columns.tsx b/lib/payment-terms/table/payment-terms-table-columns.tsx index 08d30482..ecf20229 100644 --- a/lib/payment-terms/table/payment-terms-table-columns.tsx +++ b/lib/payment-terms/table/payment-terms-table-columns.tsx @@ -159,7 +159,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<typeof }, cell: ({ row }) => { const dateVal = row.getValue("createdAt") as Date - return formatDateTime(dateVal) + return formatDateTime(dateVal, "KR") }, minSize: 80 } diff --git a/lib/po/service.ts b/lib/po/service.ts index f62b57fa..99033854 100644 --- a/lib/po/service.ts +++ b/lib/po/service.ts @@ -289,7 +289,7 @@ export async function requestSignatures( }, { tabLabel: "remark", - value: `결제 조건: ${contract.paymentTerms} + value: `지급 조건: ${contract.paymentTerms} 납품 조건: ${contract.deliveryTerms} 납품 기한: ${contract.deliveryDate} 납품 장소: ${contract.deliveryLocation} diff --git a/lib/po/table/item-dialog.tsx b/lib/po/table/item-dialog.tsx index a6690e75..ce4e4741 100644 --- a/lib/po/table/item-dialog.tsx +++ b/lib/po/table/item-dialog.tsx @@ -147,7 +147,7 @@ export function ItemsDialog({ open, onOpenChange, po }: ItemsDialogProps) { <div className="mt-3 pt-2 border-t text-xs text-muted-foreground flex items-center"> <Clock className="mr-1 h-3 w-3" /> - Updated: {formatDate(item.updatedAt)} + Updated: {formatDate(item.updatedAt, "KR")} </div> </CardContent> </Card> diff --git a/lib/po/table/po-table-columns.tsx b/lib/po/table/po-table-columns.tsx index 6834e543..7edd2435 100644 --- a/lib/po/table/po-table-columns.tsx +++ b/lib/po/table/po-table-columns.tsx @@ -250,7 +250,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Contrac // 날짜 포맷, 숫자 포맷 등 처리 if (cfg.type === "date") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // ... return row.getValue(cfg.id) ?? "" diff --git a/lib/poa/table/poa-table-columns.tsx b/lib/poa/table/poa-table-columns.tsx index b362e54c..7aad609e 100644 --- a/lib/poa/table/poa-table-columns.tsx +++ b/lib/poa/table/poa-table-columns.tsx @@ -112,7 +112,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<POADeta const dateVal = value as Date; return ( <div className="text-sm"> - {formatDate(dateVal)} + {formatDate(dateVal, "KR")} </div> ); } diff --git a/lib/pq/pq-review-table-new/vendors-table-columns.tsx b/lib/pq/pq-review-table-new/vendors-table-columns.tsx index 0491f1dc..6bfa8c7f 100644 --- a/lib/pq/pq-review-table-new/vendors-table-columns.tsx +++ b/lib/pq/pq-review-table-new/vendors-table-columns.tsx @@ -508,10 +508,10 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ColumnDef ), cell: ({ row }) => { if (row.original.approvedAt) { - return <span className="text-green-600">{formatDate(row.original.approvedAt)}</span> + return <span className="text-green-600">{formatDate(row.original.approvedAt, "KR")}</span> } if (row.original.rejectedAt) { - return <span className="text-red-600">{formatDate(row.original.rejectedAt)}</span> + return <span className="text-red-600">{formatDate(row.original.rejectedAt, "KR")}</span> } return "-" }, diff --git a/lib/pq/pq-review-table/vendors-table-columns.tsx b/lib/pq/pq-review-table/vendors-table-columns.tsx index 8673443f..dfa1c44f 100644 --- a/lib/pq/pq-review-table/vendors-table-columns.tsx +++ b/lib/pq/pq-review-table/vendors-table-columns.tsx @@ -160,12 +160,12 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ColumnDef if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } diff --git a/lib/pq/table/pq-table-column.tsx b/lib/pq/table/pq-table-column.tsx index 7efed645..b9317570 100644 --- a/lib/pq/table/pq-table-column.tsx +++ b/lib/pq/table/pq-table-column.tsx @@ -124,7 +124,7 @@ export function getColumns({ header: ({ column }) => ( <DataTableColumnHeaderSimple column={column} title="Created At" /> ), - cell: ({ cell }) => formatDateTime(cell.getValue() as Date), + cell: ({ cell }) => formatDateTime(cell.getValue() as Date, "KR"), meta: { excelHeader: "created At" }, @@ -137,7 +137,7 @@ export function getColumns({ header: ({ column }) => ( <DataTableColumnHeaderSimple column={column} title="Updated At" /> ), - cell: ({ cell }) => formatDateTime(cell.getValue() as Date), + cell: ({ cell }) => formatDateTime(cell.getValue() as Date, "KR"), meta: { excelHeader: "updated At" }, diff --git a/lib/procurement-rfqs/services.ts b/lib/procurement-rfqs/services.ts index 3816605c..9cca4c73 100644 --- a/lib/procurement-rfqs/services.ts +++ b/lib/procurement-rfqs/services.ts @@ -940,8 +940,8 @@ export async function sendRfq(rfqId: number) { projectCode: rfq.project?.code || '', projectName: rfq.project?.name || '', description: rfq.remark || '', - dueDate: rfq.dueDate ? formatDate(rfq.dueDate) : 'N/A', - deliveryDate: detail.deliveryDate ? formatDate(detail.deliveryDate) : 'N/A', + dueDate: rfq.dueDate ? formatDate(rfq.dueDate, "KR") : 'N/A', + deliveryDate: detail.deliveryDate ? formatDate(detail.deliveryDate, "KR") : 'N/A', }, vendor: { id: detail.vendor.id, diff --git a/lib/procurement-rfqs/table/detail-table/vendor-communication-drawer.tsx b/lib/procurement-rfqs/table/detail-table/vendor-communication-drawer.tsx index 34efdfc2..e43fc676 100644 --- a/lib/procurement-rfqs/table/detail-table/vendor-communication-drawer.tsx +++ b/lib/procurement-rfqs/table/detail-table/vendor-communication-drawer.tsx @@ -278,7 +278,7 @@ export function VendorCommunicationDrawer({ {selectedAttachment.fileName} </DialogTitle> <DialogDescription> - {formatFileSize(selectedAttachment.fileSize)} • {formatDateTime(selectedAttachment.uploadedAt)} + {formatFileSize(selectedAttachment.fileSize)} • {formatDateTime(selectedAttachment.uploadedAt, "KR")} </DialogDescription> </DialogHeader> @@ -417,7 +417,7 @@ export function VendorCommunicationDrawer({ )} <div className="text-xs mt-1 opacity-70 flex items-center gap-1 justify-end"> - {formatDateTime(comment.createdAt)} + {formatDateTime(comment.createdAt, "KR")} </div> </div> diff --git a/lib/procurement-rfqs/table/pr-item-dialog.tsx b/lib/procurement-rfqs/table/pr-item-dialog.tsx index 4523295d..aada8438 100644 --- a/lib/procurement-rfqs/table/pr-item-dialog.tsx +++ b/lib/procurement-rfqs/table/pr-item-dialog.tsx @@ -217,7 +217,7 @@ export function PrDetailsDialog({ <TableCell>{item.materialDescription || "-"}</TableCell> <TableCell className="whitespace-nowrap">{item.size || "-"}</TableCell> <TableCell className="whitespace-nowrap"> - {item.deliveryDate ? formatDate(item.deliveryDate) : "-"} + {item.deliveryDate ? formatDate(item.deliveryDate, "KR") : "-"} </TableCell> <TableCell className="whitespace-nowrap">{item.quantity || "-"}</TableCell> <TableCell className="whitespace-nowrap">{item.uom || "-"}</TableCell> diff --git a/lib/project-avl/table/projectAVL-table-columns.tsx b/lib/project-avl/table/projectAVL-table-columns.tsx index 916380e3..27e0ab42 100644 --- a/lib/project-avl/table/projectAVL-table-columns.tsx +++ b/lib/project-avl/table/projectAVL-table-columns.tsx @@ -64,7 +64,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project if (cfg.id === "submitted_at"||cfg.id === "approved_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/project-gtc/table/project-gtc-table-columns.tsx b/lib/project-gtc/table/project-gtc-table-columns.tsx index 141d5737..2605e365 100644 --- a/lib/project-gtc/table/project-gtc-table-columns.tsx +++ b/lib/project-gtc/table/project-gtc-table-columns.tsx @@ -273,7 +273,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project return ( <div className="flex items-center"> <span> - {formatDateTime(new Date(date))} + {formatDateTime(new Date(date), "KR")} </span> </div> ) @@ -290,7 +290,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project return ( <div className="flex items-center"> <span> - {formatDate(new Date(date))} + {formatDate(new Date(date), "KR")} </span> </div> ) diff --git a/lib/projects/table/projects-table-columns.tsx b/lib/projects/table/projects-table-columns.tsx index 77899212..6926429a 100644 --- a/lib/projects/table/projects-table-columns.tsx +++ b/lib/projects/table/projects-table-columns.tsx @@ -50,7 +50,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Project if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/qna/table/qna-table-columns.tsx b/lib/qna/table/qna-table-columns.tsx index 01431e35..0aa30d88 100644 --- a/lib/qna/table/qna-table-columns.tsx +++ b/lib/qna/table/qna-table-columns.tsx @@ -242,7 +242,7 @@ export function getColumns({ setRowAction, router, currentUserId }: GetColumnsOp ), cell: ({ row }) => ( <div className="text-sm"> - {formatDate(row.original.createdAt)} + {formatDate(row.original.createdAt, "KR")} </div> ), enableSorting: true, @@ -262,7 +262,7 @@ export function getColumns({ setRowAction, router, currentUserId }: GetColumnsOp return ( <div className="text-sm"> - {lastActivity ? formatDate(lastActivity) : "없음"} + {lastActivity ? formatDate(lastActivity, "KR") : "없음"} </div> ) }, diff --git a/lib/rfqs/cbe-table/cbe-table-columns.tsx b/lib/rfqs/cbe-table/cbe-table-columns.tsx index bc16496f..aa244c75 100644 --- a/lib/rfqs/cbe-table/cbe-table-columns.tsx +++ b/lib/rfqs/cbe-table/cbe-table-columns.tsx @@ -157,7 +157,7 @@ export function getColumns({ if (cfg.id === "respondedAt" ) { const dateVal = val as Date | undefined if (!dateVal) return null - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // 그 외 필드는 기본 값 표시 diff --git a/lib/rfqs/cbe-table/comments-sheet.tsx b/lib/rfqs/cbe-table/comments-sheet.tsx index e91a0617..b040d734 100644 --- a/lib/rfqs/cbe-table/comments-sheet.tsx +++ b/lib/rfqs/cbe-table/comments-sheet.tsx @@ -167,7 +167,7 @@ export function CommentSheet({ </div> )} </TableCell> - <TableCell> {c.createdAt ? formatDate(c.createdAt) : "-"}</TableCell> + <TableCell> {c.createdAt ? formatDate(c.createdAt, "KR") : "-"}</TableCell> <TableCell>{c.commentedByEmail ?? "-"}</TableCell> </TableRow> ))} diff --git a/lib/rfqs/cbe-table/invite-vendors-dialog.tsx b/lib/rfqs/cbe-table/invite-vendors-dialog.tsx index 18edbe80..8d69e765 100644 --- a/lib/rfqs/cbe-table/invite-vendors-dialog.tsx +++ b/lib/rfqs/cbe-table/invite-vendors-dialog.tsx @@ -50,7 +50,7 @@ import { createCbeEvaluation } from "../service" // 컴포넌트 내부에서 사용할 폼 스키마 정의 const formSchema = z.object({ - paymentTerms: z.string().min(1, "결제 조건을 입력하세요"), + paymentTerms: z.string().min(1, "지급 조건을 입력하세요"), incoterms: z.string().min(1, "Incoterms를 입력하세요"), deliverySchedule: z.string().min(1, "배송 일정을 입력하세요"), notes: z.string().optional(), @@ -233,14 +233,14 @@ export function InviteVendorsDialog({ </div> )} - {/* 결제 조건 - 필수 필드 */} + {/* 지급 조건 - 필수 필드 */} <FormField control={form.control} name="paymentTerms" render={({ field }) => ( <FormItem> <FormLabel> - 결제 조건{RequiredLabel} + 지급 조건{RequiredLabel} </FormLabel> <FormControl> <Input {...field} placeholder="예: Net 30" /> diff --git a/lib/rfqs/table/attachment-rfq-sheet.tsx b/lib/rfqs/table/attachment-rfq-sheet.tsx index 57a170e1..75235b32 100644 --- a/lib/rfqs/table/attachment-rfq-sheet.tsx +++ b/lib/rfqs/table/attachment-rfq-sheet.tsx @@ -291,7 +291,7 @@ export function RfqAttachmentsSheet({ )} {field.createdAt && ( <span className="text-xs text-muted-foreground"> - Created at {formatDate(field.createdAt)} + Created at {formatDate(field.createdAt, "KR")} </span> )} </div> diff --git a/lib/rfqs/table/rfqs-table-columns.tsx b/lib/rfqs/table/rfqs-table-columns.tsx index 98df3bc8..5c09fcf0 100644 --- a/lib/rfqs/table/rfqs-table-columns.tsx +++ b/lib/rfqs/table/rfqs-table-columns.tsx @@ -278,7 +278,7 @@ export function getColumns({ if (cfg.id === "createdAt" || cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/rfqs/tbe-table/comments-sheet.tsx b/lib/rfqs/tbe-table/comments-sheet.tsx index 6efd631f..b3cdbc60 100644 --- a/lib/rfqs/tbe-table/comments-sheet.tsx +++ b/lib/rfqs/tbe-table/comments-sheet.tsx @@ -165,7 +165,7 @@ export function CommentSheet({ </div> )} </TableCell> - <TableCell> {c.createdAt ? formatDate(c.createdAt) : "-"}</TableCell> + <TableCell> {c.createdAt ? formatDate(c.createdAt, "KR") : "-"}</TableCell> <TableCell>{c.commentedByEmail ?? "-"}</TableCell> </TableRow> ))} diff --git a/lib/rfqs/tbe-table/file-dialog.tsx b/lib/rfqs/tbe-table/file-dialog.tsx index 772eb930..e19430a3 100644 --- a/lib/rfqs/tbe-table/file-dialog.tsx +++ b/lib/rfqs/tbe-table/file-dialog.tsx @@ -118,7 +118,7 @@ export function TBEFileDialog({ <FileListInfo className="flex-1 min-w-0"> <FileListName className="text-sm font-medium truncate">{file.fileName}</FileListName> <FileListDescription className="text-xs text-muted-foreground"> - {file.uploadedAt ? formatDateTime(file.uploadedAt) : ""} + {file.uploadedAt ? formatDateTime(file.uploadedAt, "KR") : ""} </FileListDescription> </FileListInfo> </div> diff --git a/lib/rfqs/tbe-table/tbe-table-columns.tsx b/lib/rfqs/tbe-table/tbe-table-columns.tsx index e8566831..0538d354 100644 --- a/lib/rfqs/tbe-table/tbe-table-columns.tsx +++ b/lib/rfqs/tbe-table/tbe-table-columns.tsx @@ -208,7 +208,7 @@ export function getColumns({ if (cfg.id === "tbeUpdated") { const dateVal = val as Date | undefined if (!dateVal) return null - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // 그 외 필드는 기본 값 표시 diff --git a/lib/rfqs/tbe-table/vendor-contact/vendor-contact-table-column.tsx b/lib/rfqs/tbe-table/vendor-contact/vendor-contact-table-column.tsx index fcd0c3fb..efc395b4 100644 --- a/lib/rfqs/tbe-table/vendor-contact/vendor-contact-table-column.tsx +++ b/lib/rfqs/tbe-table/vendor-contact/vendor-contact-table-column.tsx @@ -55,7 +55,7 @@ export function getColumns(): ColumnDef<VendorData>[] { header: ({ column }) => ( <ClientDataTableColumnHeaderSimple column={column} title="Created At" /> ), - cell: ({ cell }) => formatDate(cell.getValue() as Date), + cell: ({ cell }) => formatDate(cell.getValue() as Date, "KR"), }, // Updated At @@ -64,7 +64,7 @@ export function getColumns(): ColumnDef<VendorData>[] { header: ({ column }) => ( <ClientDataTableColumnHeaderSimple column={column} title="Updated At" /> ), - cell: ({ cell }) => formatDate(cell.getValue() as Date), + cell: ({ cell }) => formatDate(cell.getValue() as Date, "KR"), }, ] }
\ No newline at end of file diff --git a/lib/rfqs/validations.ts b/lib/rfqs/validations.ts index 7f39d0a6..8752f693 100644 --- a/lib/rfqs/validations.ts +++ b/lib/rfqs/validations.ts @@ -287,7 +287,7 @@ export type GetCBESchema = Awaited<ReturnType<typeof searchParamsCBECache.parse> export const createCbeEvaluationSchema = z.object({ - paymentTerms: z.string().min(1, "결제 조건을 입력하세요"), + paymentTerms: z.string().min(1, "지급 조건을 입력하세요"), incoterms: z.string().min(1, "Incoterms를 입력하세요"), deliverySchedule: z.string().min(1, "배송 일정을 입력하세요"), notes: z.string().optional(), diff --git a/lib/roles/table/roles-table-columns.tsx b/lib/roles/table/roles-table-columns.tsx index 3a491585..16249999 100644 --- a/lib/roles/table/roles-table-columns.tsx +++ b/lib/roles/table/roles-table-columns.tsx @@ -149,7 +149,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<RoleVie if (cfg.id === "created_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "domain") { diff --git a/lib/roles/userTable/assginedUsers-table-columns.tsx b/lib/roles/userTable/assginedUsers-table-columns.tsx index b317a465..950c6d7a 100644 --- a/lib/roles/userTable/assginedUsers-table-columns.tsx +++ b/lib/roles/userTable/assginedUsers-table-columns.tsx @@ -106,7 +106,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<UserVie if (cfg.id === "created_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "roles") { diff --git a/lib/sedp/sync-form copy.ts b/lib/sedp/sync-form copy.ts new file mode 100644 index 00000000..2cb677b7 --- /dev/null +++ b/lib/sedp/sync-form copy.ts @@ -0,0 +1,1037 @@ +// src/lib/cron/syncTagFormMappings.ts +import db from "@/db/db"; +import { projects, tagTypes, tagClasses, tagTypeClassFormMappings, formMetas, forms, contractItems, items, contracts } from '@/db/schema'; +import { eq, and, inArray, ilike } from 'drizzle-orm'; +import { getSEDPToken } from "./sedp-token"; + +// 환경 변수 +const SEDP_API_BASE_URL = process.env.SEDP_API_BASE_URL || 'http://sedpwebapi.ship.samsung.co.kr/api'; + +// 인터페이스 정의 +interface TagTypeClassFormMapping { + projectId: number; + tagTypeLabel: string; + classLabel: string; + formCode: string; + formName: string; + remark: string | null; + ep: string; + createdAt: Date; + updatedAt: Date; +} + +interface FormMeta { + projectId: number; + formCode: string; + formName: string; + columns: string; // JSON 문자열 + createdAt: Date; + updatedAt: Date; +} + +interface FormRecord { + contractItemId: number; + formCode: string; + formName: string; + eng: boolean; + createdAt: Date; + updatedAt: Date; +} +interface Register { + PROJ_NO: string; + TYPE_ID: string; + EP_ID: string; + DESC: string; + REMARK: string | null; + NEW_TAG_YN: boolean; + ALL_TAG_YN: boolean; + VND_YN: boolean; + SEQ: number; + CMPLX_YN: boolean; + CMPL_SETT: any | null; + MAP_ATT: any[]; + MAP_CLS_ID: string[]; + MAP_OPER: any | null; + LNK_ATT: LinkAttribute[]; + JOIN_TABLS: any[]; + DELETED: boolean; + CRTER_NO: string; + CRTE_DTM: string; + CHGER_NO: string | null; + CHGE_DTM: string | null; + _id: string; +} + +interface LinkAttribute { + ATT_ID: string; + CPY_DESC: string; + JOIN_KEY_ATT_ID: string | null; + JOIN_VAL_ATT_ID: string | null; + KEY_YN: boolean; + EDIT_YN: boolean; + PUB_YN: boolean; + VND_YN: boolean; + DEF_VAL: string | null; + UOM_ID: string | null; +} + +interface Attribute { + PROJ_NO: string; + ATT_ID: string; + DESC: string; + GROUP: string | null; + REMARK: string | null; + VAL_TYPE: string; + IGN_LIST_VAL: boolean; + CL_ID: string | null; + UOM_ID: string | null; + DEF_VAL: string | null; + MIN_VAL: number; + MAX_VAL: number; + ESS_YN: boolean; + SEQ: number; + FORMAT: string | null; + REG_EXPS: string | null; + ATTRIBUTES: any[]; + DELETED: boolean; + CRTER_NO: string; + CRTE_DTM: string; + CHGER_NO: string | null; + CHGE_DTM: string | null; + _id: string; +} + +interface CodeList { + PROJ_NO: string; + CL_ID: string; + DESC: string; + REMARK: string | null; + PRNT_CD_ID: string | null; + REG_TYPE_ID: string | null; + VAL_ATT_ID: string | null; + VALUES: CodeValue[]; + LNK_ATT: any[]; + DELETED: boolean; + CRTER_NO: string; + CRTE_DTM: string; + CHGER_NO: string | null; + CHGE_DTM: string | null; + _id: string; +} + +interface CodeValue { + PRNT_VALUE: string | null; + VALUE: string; + DESC: string; + REMARK: string; + USE_YN: boolean; + SEQ: number; + ATTRIBUTES: any[]; +} + +interface UOM { + PROJ_NO: string; + UOM_ID: string; + DESC: string; + SYMBOL: string; + CONV_RATE: number; + DELETED: boolean; + CRTER_NO: string; + CRTE_DTM: string; + CHGER_NO: string | null; + CHGE_DTM: string | null; + _id: string; +} + +interface Project { + id: number; + code: string; + name: string; + type?: string; + createdAt?: Date; + updatedAt?: Date; +} + +interface SyncResult { + project: string; + success: boolean; + count?: number; + error?: string; +} + +interface FormColumn { + key: string; + label: string; + type: string; + options?: string[]; + uom?: string; + uomId?: string; + shi?: Boolean; +} + +// 아이템 코드 추출 함수 +function extractItemCodes(remark: string | null): string[] { + if (!remark) return []; + + // 검색용으로만 소문자로 변환 + const remarkLower = remark.toLowerCase(); + + // 'vd_' 접두사 확인 + const hasVD_ = remarkLower.includes("vd_"); + + if (!hasVD_) return []; + + let vdPart = ""; + + // 'vd_'가 있으면 원본 문자열에서 추출 (소문자 버전이 아님) + if (hasVD_) { + const vdIndex = remarkLower.indexOf("vd_"); + vdPart = remark.substring(vdIndex + 3); // 원본 문자열에서 추출 + } + + if (!vdPart) return []; + + // 쉼표로 구분된 여러 itemCode 처리 + return vdPart.split(",").map(code => code.trim()); +} + +async function getDefaulTAttributes(): Promise<string[]> { + try { + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/Dictionary/GetByKey`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + }, + body: JSON.stringify({ + Key: "DefaultAttributesToCompare", + }) + } + ); + + if (!response.ok) { + if (response.status === 404) { + console.warn(`디폴트 속성 찾을 수 없음`); + return []; + } + throw new Error(`코드 리스트 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + // 데이터가 배열인지 확인하고 문자열 배열로 변환 + if (Array.isArray(data)) { + return data as string[]; + } else { + console.warn('응답이 배열 형식이 아닙니다'); + return []; + } + } catch (parseError) { + console.error(`디폴트 속성 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return []; + } + } catch (error) { + console.error(`디폴트 어트리뷰트 가져오기 실패:`, error); + throw error; + } +} + +// 레지스터 데이터 가져오기 +async function getRegisters(projectCode: string): Promise<Register[]> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/Register/Get`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + throw new Error(`레지스터 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + let data; + try { + data = await response.json(); + } catch (parseError) { + console.error(`프로젝트 ${projectCode}의 레지스터 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + throw new Error(`레지스터 응답 파싱 실패: ${parseError instanceof Error ? parseError.message : String(parseError)}`); + } + + // 결과를 배열로 변환 (단일 객체인 경우 배열로 래핑) + let registers: Register[] = Array.isArray(data) ? data : [data]; + + // MAP_CLS_ID가 비어있지 않고 REMARK가 vd, VD, vD, Vd 중 하나인 레지스터만 필터링 + registers = registers.filter(register => { + // 삭제된 레지스터 제외 + if (register.DELETED) return false; + + // MAP_CLS_ID 배열이 존재하고 요소가 하나 이상 있는지 확인 + const hasValidMapClsId = Array.isArray(register.MAP_CLS_ID) && register.MAP_CLS_ID.length > 0; + + // REMARK가 'vd_' 또는 'vd' 포함 확인 (대소문자 구분 없이) + const remarkLower = register.REMARK && register.REMARK.toLowerCase(); + const hasValidRemark = remarkLower && (remarkLower.includes('vd')); + + // 두 조건 모두 충족해야 함 + return hasValidMapClsId && hasValidRemark; + }); + + console.log(`프로젝트 ${projectCode}에서 ${registers.length}개의 유효한 레지스터를 가져왔습니다.`); + return registers; + } catch (error) { + console.error(`프로젝트 ${projectCode}의 레지스터 가져오기 실패:`, error); + throw error; + } +} + +// 프로젝트의 모든 속성을 가져와 맵으로 반환 +async function getAttributes(projectCode: string): Promise<Map<string, Attribute>> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/Attributes/Get`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + throw new Error(`속성 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + + // 데이터가 배열인지 확인 + const attributes: Attribute[] = Array.isArray(data) ? data : [data]; + + // ATT_ID로 효율적인 조회를 위한 맵 생성 + const attributeMap = new Map<string, Attribute>(); + for (const attribute of attributes) { + if (!attribute.DELETED) { + attributeMap.set(attribute.ATT_ID, attribute); + } + } + + console.log(`프로젝트 ${projectCode}에서 ${attributeMap.size}개의 속성을 가져왔습니다`); + return attributeMap; + + } catch (parseError) { + console.error(`프로젝트 ${projectCode}의 속성 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return new Map(); + } + } catch (error) { + console.error(`프로젝트 ${projectCode}의 속성 가져오기 실패:`, error); + return new Map(); + } +} + +// 특정 속성 가져오기 (하위 호환성을 위해 유지) +async function getAttributeById(projectCode: string, attributeId: string, register: string): Promise<Attribute | null> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/Attributes/GetByID`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + ATT_ID: attributeId, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + if (response.status === 404) { + console.warn(`속성 ID ${attributeId}를 찾을 수 없음`); + return null; + } + throw new Error(`속성 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + return data; + } catch (parseError) { + console.error(`속성 ID ${attributeId} ${register} ${projectCode} 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return null; + } + } catch (error) { + console.error(`속성 ID ${attributeId} 가져오기 실패:`, error); + return null; + } +} + +// 프로젝트의 모든 코드 리스트를 가져와 맵으로 반환 +async function getCodeLists(projectCode: string): Promise<Map<string, CodeList>> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/CodeList/Get`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + throw new Error(`코드 리스트 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + + // 데이터가 배열인지 확인 + const codeLists: CodeList[] = Array.isArray(data) ? data : [data]; + + // CL_ID로 효율적인 조회를 위한 맵 생성 + const codeListMap = new Map<string, CodeList>(); + for (const codeList of codeLists) { + if (!codeList.DELETED) { + codeListMap.set(codeList.CL_ID, codeList); + } + } + + console.log(`프로젝트 ${projectCode}에서 ${codeListMap.size}개의 코드 리스트를 가져왔습니다`); + return codeListMap; + + } catch (parseError) { + console.error(`프로젝트 ${projectCode}의 코드 리스트 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return new Map(); + } + } catch (error) { + console.error(`프로젝트 ${projectCode}의 코드 리스트 가져오기 실패:`, error); + return new Map(); + } +} + +// 특정 코드 리스트 가져오기 (하위 호환성을 위해 유지) +async function getCodeListById(projectCode: string, codeListId: string): Promise<CodeList | null> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/CodeList/GetByID`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + CL_ID: codeListId, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + if (response.status === 404) { + console.warn(`코드 리스트 ID ${codeListId}를 찾을 수 없음`); + return null; + } + throw new Error(`코드 리스트 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + return data; + } catch (parseError) { + console.error(`코드 리스트 ID ${codeListId} 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return null; + } + } catch (error) { + console.error(`코드 리스트 ID ${codeListId} 가져오기 실패:`, error); + return null; + } +} + +// 프로젝트의 모든 UOM을 가져와 맵으로 반환 +async function getUOMs(projectCode: string): Promise<Map<string, UOM>> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/UOM/Get`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + throw new Error(`UOM 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + + // 데이터가 배열인지 확인 + const uoms: UOM[] = Array.isArray(data) ? data : [data]; + + // UOM_ID로 효율적인 조회를 위한 맵 생성 + const uomMap = new Map<string, UOM>(); + for (const uom of uoms) { + if (!uom.DELETED) { + uomMap.set(uom.UOM_ID, uom); + } + } + + console.log(`프로젝트 ${projectCode}에서 ${uomMap.size}개의 UOM을 가져왔습니다`); + return uomMap; + + } catch (parseError) { + console.error(`프로젝트 ${projectCode}의 UOM 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return new Map(); + } + } catch (error) { + console.error(`프로젝트 ${projectCode}의 UOM 가져오기 실패:`, error); + return new Map(); + } +} + +// UOM 가져오기 (하위 호환성을 위해 유지) +async function getUomById(projectCode: string, uomId: string): Promise<UOM | null> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/UOM/GetByID`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + UOMID: uomId, // API 명세서에 따라 UOMID 사용 + ProjectNo: projectCode, + ContainDeleted: false + }) + } + ); + + if (!response.ok) { + if (response.status === 404) { + console.warn(`UOM ID ${uomId}를 찾을 수 없음`); + return null; + } + throw new Error(`UOM 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + return data; + } catch (parseError) { + console.error(`UOM ID ${uomId} 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return null; + } + } catch (error) { + console.error(`UOM ID ${uomId} 가져오기 실패:`, error); + return null; + } +} + +// contractItemId 조회 함수 +async function getContractItemsByItemCodes(itemCodes: string[], projectId: number): Promise<Map<string, number>> { + try { + if (!itemCodes.length) return new Map(); + + // 먼저 itemCodes에 해당하는 item 레코드를 조회 + const itemRecords = await db.select({ + id: items.id, + itemCode: items.itemCode + }) + .from(items) + .where(inArray(items.itemCode, itemCodes)); + + if (!itemRecords.length) { + console.log(`No items found for itemCodes: ${itemCodes.join(', ')}`); + return new Map(); + } + + // item ID 목록 추출 + const itemIds = itemRecords.map(item => item.id); + + // contracts와 join하여 projectId로 필터링하면서 contractItems 조회 + const contractItemRecords = await db.select({ + id: contractItems.id, + itemId: contractItems.itemId + }) + .from(contractItems) + .innerJoin(contracts, eq(contractItems.contractId, contracts.id)) + .where( + and( + inArray(contractItems.itemId, itemIds), + eq(contracts.projectId, projectId) + ) + ); + + // itemCode와 contractItemId의 매핑 생성 + const itemCodeToContractItemId = new Map<string, number>(); + + for (const item of itemRecords) { + // itemCode가 null이 아닌 경우에만 처리 + if (item.itemCode) { + const matchedContractItems = contractItemRecords.filter(ci => ci.itemId === item.id); + if (matchedContractItems.length > 0) { + // 일치하는 첫 번째 contractItem 사용 + itemCodeToContractItemId.set(item.itemCode, matchedContractItems[0].id); + } + } + } + + return itemCodeToContractItemId; + } catch (error) { + console.error('ContractItems 조회 중 오류 발생:', error); + return new Map(); + } +} + +// 데이터베이스에 태그 타입 클래스 폼 매핑 및 폼 메타 저장 +async function saveFormMappingsAndMetas( + projectId: number, + projectCode: string, + registers: Register[] +): Promise<number> { + try { + // 프로젝트의 태그 타입과 클래스 가져오기 + const tagTypeRecords = await db.select() + .from(tagTypes) + .where(eq(tagTypes.projectId, projectId)); + + const tagClassRecords = await db.select() + .from(tagClasses) + .where(eq(tagClasses.projectId, projectId)); + + // 태그 타입과 클래스 매핑 + const tagTypeMap = new Map(tagTypeRecords.map(type => [type.code, type])); + const tagClassMap = new Map(tagClassRecords.map(cls => [cls.code, cls])); + + // 모든 속성, 코드 리스트, UOM을 한 번에 가져와 반복 API 호출 방지 + const attributeMap = await getAttributes(projectCode); + const codeListMap = await getCodeLists(projectCode); + const uomMap = await getUOMs(projectCode); + + // 기본 속성 가져오기 + const defaultAttributes = await getDefaulTAttributes(); + + // 모든 register에서 itemCode를 추출하여 한 번에 조회 + const allItemCodes: string[] = []; + registers.forEach(register => { + if (register.REMARK) { + const itemCodes = extractItemCodes(register.REMARK); + allItemCodes.push(...itemCodes); + } + }); + + // 중복 제거 + const uniqueItemCodes = [...new Set(allItemCodes)]; + + // 모든 itemCode에 대한 contractItemId 조회 + const itemCodeToContractItemId = await getContractItemsByItemCodes(uniqueItemCodes , projectId); + + console.log(`${uniqueItemCodes.length}개의 고유 itemCode 중 ${itemCodeToContractItemId.size}개의 contractItem을 찾았습니다`); + + // 저장할 데이터 준비 + const mappingsToSave: TagTypeClassFormMapping[] = []; + const formMetasToSave: FormMeta[] = []; + const formsToSave: FormRecord[] = []; + + // 폼이 있는 contractItemId 트래킹 + const contractItemIdsWithForms = new Set<number>(); + + // 각 register 처리 + for (const register of registers) { + // 삭제된 register 건너뛰기 + if (register.DELETED) continue; + + // REMARK에서 itemCodes 추출 + + + // 폼 메타용 columns 구성 + const columns: FormColumn[] = []; + + for (const linkAtt of register.LNK_ATT) { + let attribute = null; + + // 기본 속성인지 확인 + if (defaultAttributes && defaultAttributes.includes(linkAtt.ATT_ID)) { + // 기본 속성에 대한 기본 attribute 객체 생성 + attribute = { + DESC: linkAtt.ATT_ID, + VAL_TYPE: 'STRING' + }; + } else { + // 맵에서 속성 조회 + attribute = attributeMap.get(linkAtt.ATT_ID); + + // 속성을 찾지 못한 경우 다음으로 넘어감 + if (!attribute) continue; + } + + // 컬럼 정보 생성 + const column: FormColumn = { + key: linkAtt.ATT_ID, + label: attribute.DESC, + type: (attribute.VAL_TYPE === 'LIST' || attribute.VAL_TYPE === 'DYNAMICLIST') + ? 'LIST' + : (attribute.VAL_TYPE || 'STRING'), + shi: attribute.REMARK?.toLocaleLowerCase() === "shi" + }; + + // 리스트 타입에 대한 옵션 추가 (기본 속성이 아닌 경우) + if (!defaultAttributes.includes(linkAtt.ATT_ID) && + (attribute.VAL_TYPE === 'LIST' || attribute.VAL_TYPE === 'DYNAMICLIST') && + attribute.CL_ID) { + + // 맵에서 코드 리스트 조회 + const codeList = codeListMap.get(attribute.CL_ID); + + if (codeList && codeList.VALUES) { + const options = [...new Set( + codeList.VALUES + .filter(value => value.USE_YN) + .map(value => value.VALUE) + )]; + + if (options.length > 0) { + column.options = options; + } + } + } + + // UOM 정보 추가 + if (linkAtt.UOM_ID) { + const uom = uomMap.get(linkAtt.UOM_ID); + + if (uom) { + column.uom = uom.SYMBOL; + column.uomId = uom.UOM_ID; + } + } + + columns.push(column); + } + + // 컬럼이 없으면 건너뛰기 + if (columns.length === 0) { + console.log(`폼 ${register.TYPE_ID} (${register.DESC})에 컬럼이 없어 건너뜁니다`); + continue; + } + + // 폼 메타 데이터 준비 + formMetasToSave.push({ + projectId, + formCode: register.TYPE_ID, + formName: register.DESC, + columns: JSON.stringify(columns), + createdAt: new Date(), + updatedAt: new Date() + }); + + // 클래스 매핑 처리 + for (const classId of register.MAP_CLS_ID) { + const tagClass = tagClassMap.get(classId); + + if (!tagClass) { + console.warn(`프로젝트 ID ${projectId}에서 클래스 ID ${classId}를 찾을 수 없습니다`); + continue; + } + + const tagTypeCode = tagClass.tagTypeCode; + const tagType = tagTypeMap.get(tagTypeCode); + + if (!tagType) { + console.warn(`프로젝트 ID ${projectId}에서 태그 타입 ${tagTypeCode}를 찾을 수 없습니다`); + continue; + } + + // 매핑 정보 저장 + mappingsToSave.push({ + projectId, + tagTypeLabel: tagType.description, + classLabel: tagClass.label, + formCode: register.TYPE_ID, + formName: register.DESC, + remark: register.REMARK, + ep: register.EP_ID, + createdAt: new Date(), + updatedAt: new Date() + }); + } + + const itemCodes = extractItemCodes(register.REMARK || ''); + if (!itemCodes.length) { + console.log(`Register ${register.TYPE_ID} (${register.DESC})의 REMARK에 유효한 itemCode가 없습니다`); + continue; + } + // 폼 레코드 준비 + for (const itemCode of itemCodes) { + const contractItemId = itemCodeToContractItemId.get(itemCode); + + if (!contractItemId) { + console.warn(`itemCode: ${itemCode}에 대한 contractItemId를 찾을 수 없습니다`); + continue; + } + + // 폼이 있는 contractItemId 추적 + contractItemIdsWithForms.add(contractItemId); + + formsToSave.push({ + contractItemId, + formCode: register.TYPE_ID, + formName: register.DESC, + eng: true, + createdAt: new Date(), + updatedAt: new Date() + }); + } + } + + // 트랜잭션으로 모든 작업 처리 + let totalSaved = 0; + + await db.transaction(async (tx) => { + // 기존 데이터 삭제 + await tx.delete(tagTypeClassFormMappings).where(eq(tagTypeClassFormMappings.projectId, projectId)); + await tx.delete(formMetas).where(eq(formMetas.projectId, projectId)); + + // 해당 contractItemId에 대한 기존 폼 삭제 + if (contractItemIdsWithForms.size > 0) { + await tx.delete(forms).where(inArray(forms.contractItemId, [...contractItemIdsWithForms])); + } + + // 매핑 저장 + if (mappingsToSave.length > 0) { + await tx.insert(tagTypeClassFormMappings).values(mappingsToSave); + totalSaved += mappingsToSave.length; + console.log(`프로젝트 ID ${projectId}에 대해 ${mappingsToSave.length}개의 태그 타입-클래스-폼 매핑을 저장했습니다`); + } + + // 폼 메타 저장 + if (formMetasToSave.length > 0) { + await tx.insert(formMetas).values(formMetasToSave); + totalSaved += formMetasToSave.length; + console.log(`프로젝트 ID ${projectId}에 대해 ${formMetasToSave.length}개의 폼 메타 레코드를 저장했습니다`); + } + + // 폼 레코드 저장 + if (formsToSave.length > 0) { + await tx.insert(forms).values(formsToSave); + totalSaved += formsToSave.length; + console.log(`프로젝트 ID ${projectId}에 대해 ${formsToSave.length}개의 폼 레코드를 저장했습니다`); + } + }); + + return totalSaved; + } catch (error) { + console.error(`폼 매핑 및 메타 저장 실패 (프로젝트 ID: ${projectId}):`, error); + throw error; + } +} + +// 메인 동기화 함수 +export async function syncTagFormMappings() { + try { + console.log('태그 폼 매핑 동기화 시작:', new Date().toISOString()); + + // 모든 프로젝트 가져오기 + const allProjects = await db.select().from(projects); + + // 각 프로젝트에 대해 폼 매핑 동기화 + const results = await Promise.allSettled( + allProjects.map(async (project: Project) => { + try { + // 레지스터 데이터 가져오기 + const registers = await getRegisters(project.code); + + // 데이터베이스에 저장 + const count = await saveFormMappingsAndMetas(project.id, project.code, registers); + return { + project: project.code, + success: true, + count + } as SyncResult; + } catch (error) { + console.error(`프로젝트 ${project.code} 폼 매핑 동기화 실패:`, error); + return { + project: project.code, + success: false, + error: error instanceof Error ? error.message : String(error) + } as SyncResult; + } + }) + ); + + // 결과 처리를 위한 배열 준비 + const successfulResults: SyncResult[] = []; + const failedResults: SyncResult[] = []; + + // 결과 분류 + results.forEach((result) => { + if (result.status === 'fulfilled') { + if (result.value.success) { + successfulResults.push(result.value); + } else { + failedResults.push(result.value); + } + } else { + // 거부된 프로미스는 실패로 간주 + failedResults.push({ + project: 'unknown', + success: false, + error: result.reason?.toString() || 'Unknown error' + }); + } + }); + + const successCount = successfulResults.length; + const failCount = failedResults.length; + + // 이제 안전하게 count 속성에 접근 가능 + const totalItems = successfulResults.reduce((sum, result) => + sum + (result.count || 0), 0 + ); + + console.log(`태그 폼 매핑 동기화 완료: ${successCount}개 프로젝트 성공 (총 ${totalItems}개 항목), ${failCount}개 프로젝트 실패`); + + return { + success: successCount, + failed: failCount, + items: totalItems, + timestamp: new Date().toISOString() + }; + } catch (error) { + console.error('태그 폼 매핑 동기화 중 오류 발생:', error); + throw error; + } +}
\ No newline at end of file diff --git a/lib/sedp/sync-form.ts b/lib/sedp/sync-form.ts index 2cb677b7..c293c98e 100644 --- a/lib/sedp/sync-form.ts +++ b/lib/sedp/sync-form.ts @@ -1,6 +1,6 @@ // src/lib/cron/syncTagFormMappings.ts import db from "@/db/db"; -import { projects, tagTypes, tagClasses, tagTypeClassFormMappings, formMetas, forms, contractItems, items, contracts } from '@/db/schema'; +import { projects, tagTypes, tagClasses, tagTypeClassFormMappings, formMetas, forms, contractItems, items, contracts, templateItems } from '@/db/schema'; import { eq, and, inArray, ilike } from 'drizzle-orm'; import { getSEDPToken } from "./sedp-token"; @@ -37,6 +37,51 @@ interface FormRecord { createdAt: Date; updatedAt: Date; } + +interface TemplateItem { + TMPL_ID: string; + NAME: string; + TMPL_TYPE: string; + SPR_LST_SETUP: { + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }; + GRD_LST_SETUP: { + REG_TYPE_ID: string; + SPR_ITM_IDS: Array<string>; + ATTS: Array<{ + ATT_ID: string; + ALIAS: string; + HEAD_TEXT: string; + HIDN_YN: boolean; + SEQ:number; + DFLT_YN:boolean; + }>; + }; + SPR_ITM_LST_SETUP: { + ACT_SHEET: string; + HIDN_SHEETS: Array<string>; + CONTENT?: string; + DATA_SHEETS: Array<{ + SHEET_NAME: string; + REG_TYPE_ID: string; + MAP_CELL_ATT: Array<{ + ATT_ID: string; + IN: string; + }>; + }>; + }; +} + interface Register { PROJ_NO: string; TYPE_ID: string; @@ -75,6 +120,42 @@ interface LinkAttribute { UOM_ID: string | null; } +interface newRegister { + PROJ_NO: string; + MAP_ID: string; + EP_ID: string; + CATEGORY: string; + BYPASS: boolean; + REG_TYPE_ID: string; + TOOL_ID: string; + TOOL_TYPE: string; + MAP_CLS: { + TOOL_ATT_NAME: string; + ITEMS: ClassItmes[]; + }; + MAP_ATT: MapAttribute[]; + MAP_TMPLS: string[]; + CRTER_NO: string; + CRTE_DTM: string; + CHGER_NO: string; + _id: string; +} + + + +interface ClassItmes { + SEDP_OBJ_CLS_ID: string; + TOOL_VALS: string; + ISDEFALUT: boolean; +} + +interface MapAttribute { + SEDP_ATT_ID: string; + TOOL_ATT_NAME: string; + KEY_YN: boolean; + INOUT: string | null; +} + interface Attribute { PROJ_NO: string; ATT_ID: string; @@ -167,6 +248,9 @@ interface FormColumn { uom?: string; uomId?: string; shi?: Boolean; + hidden?: boolean; + seq?: number; + head?: string; } // 아이템 코드 추출 함수 @@ -249,6 +333,63 @@ async function getDefaulTAttributes(): Promise<string[]> { } } +async function fetchTemplateFromSEDP(projectCode: string, formCode: string): Promise<TemplateItem[]> { + try { + // Get the token + const apiKey = await getSEDPToken(); + + // Make the API call + const response = await fetch( + `${SEDP_API_BASE_URL}/Template/GetByRegisterID`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + WithContent: true, + ProjectNo: projectCode, + REG_TYPE_ID: formCode + }) + } + ); + + if (!response.ok) { + if (response.status === 404) { + console.warn(`템플릿을 찾을 수 없음: ${formCode}`); + return []; + } + const errorText = await response.text(); + throw new Error(`SEDP Template API request failed: ${response.status} ${response.statusText} - ${errorText}`); + } + + // 안전하게 JSON 파싱 + try { + const data = await response.json(); + // 데이터가 배열인지 확인 + const templates: TemplateItem[] = Array.isArray(data) ? data : [data]; + return templates.filter(template => template && template.TMPL_ID); + } catch (parseError) { + console.error(`템플릿 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + try { + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + } catch (textError) { + console.error('응답 내용 로깅 실패:', textError); + } + return []; + } + } catch (error: any) { + console.error('Error calling SEDP Template API:', error); + console.warn(`템플릿 가져오기 실패 (${formCode}): ${error.message || 'Unknown error'}`); + return []; + } +} + // 레지스터 데이터 가져오기 async function getRegisters(projectCode: string): Promise<Register[]> { try { @@ -315,6 +456,55 @@ async function getRegisters(projectCode: string): Promise<Register[]> { } } +async function getNewRegisters(projectCode: string): Promise<newRegister[]> { + try { + // 토큰(API 키) 가져오기 + const apiKey = await getSEDPToken(); + + const response = await fetch( + `${SEDP_API_BASE_URL}/AdapterDataMapping/GetByToolID`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'accept': '*/*', + 'ApiKey': apiKey, + 'ProjectNo': projectCode + }, + body: JSON.stringify({ + ProjectNo: projectCode, + "TOOL_ID": "eVCP" + }) + } + ); + + if (!response.ok) { + throw new Error(`새 레지스터 요청 실패: ${response.status} ${response.statusText}`); + } + + // 안전하게 JSON 파싱 + let data; + try { + data = await response.json(); + } catch (parseError) { + console.error(`프로젝트 ${projectCode}의 새 레지스터 응답 파싱 실패:`, parseError); + // 응답 내용 로깅 + const text = await response.clone().text(); + console.log(`응답 내용: ${text.substring(0, 200)}${text.length > 200 ? '...' : ''}`); + throw new Error(`새 레지스터 응답 파싱 실패: ${parseError instanceof Error ? parseError.message : String(parseError)}`); + } + + // 결과를 배열로 변환 (단일 객체인 경우 배열로 래핑) + let registers: newRegister[] = Array.isArray(data) ? data : [data]; + + console.log(`프로젝트 ${projectCode}에서 ${registers.length}개의 새 레지스터를 가져왔습니다.`); + return registers; + } catch (error) { + console.error(`프로젝트 ${projectCode}의 새 레지스터 가져오기 실패:`, error); + throw error; + } +} + // 프로젝트의 모든 속성을 가져와 맵으로 반환 async function getAttributes(projectCode: string): Promise<Map<string, Attribute>> { try { @@ -716,249 +906,167 @@ async function getContractItemsByItemCodes(itemCodes: string[], projectId: numbe } } -// 데이터베이스에 태그 타입 클래스 폼 매핑 및 폼 메타 저장 -async function saveFormMappingsAndMetas( +// UPDATED: saveFormMappingsAndMetas() +// ------------------------------------ +// Primary loop is **newRegisters**‑first; legacy **registers** are consulted +// only for supplemental details. +// +// 2025‑07‑09 fix: newRegister.MAP_CLS is a **single object**, not an array. +// Updated class‑ID extraction accordingly. +// +export async function saveFormMappingsAndMetas( projectId: number, projectCode: string, - registers: Register[] + registers: Register[], // legacy SEDP Register list (supplemental) + newRegisters: newRegister[] // AdapterDataMapping list (primary) ): Promise<number> { try { - // 프로젝트의 태그 타입과 클래스 가져오기 - const tagTypeRecords = await db.select() - .from(tagTypes) - .where(eq(tagTypes.projectId, projectId)); + /* ------------------------------------------------------------------ */ + /* 1. Prepare look‑up structures & common data */ + /* ------------------------------------------------------------------ */ - const tagClassRecords = await db.select() - .from(tagClasses) - .where(eq(tagClasses.projectId, projectId)); + const tagTypeRecords = await db.select().from(tagTypes).where(eq(tagTypes.projectId, projectId)); + const tagClassRecords = await db.select().from(tagClasses).where(eq(tagClasses.projectId, projectId)); + const tagTypeMap = new Map(tagTypeRecords.map(t => [t.code, t])); + const tagClassMap = new Map(tagClassRecords.map(c => [c.code, c])); - // 태그 타입과 클래스 매핑 - const tagTypeMap = new Map(tagTypeRecords.map(type => [type.code, type])); - const tagClassMap = new Map(tagClassRecords.map(cls => [cls.code, cls])); + const registerMap = new Map(registers.map(r => [r.TYPE_ID, r])); - // 모든 속성, 코드 리스트, UOM을 한 번에 가져와 반복 API 호출 방지 const attributeMap = await getAttributes(projectCode); - const codeListMap = await getCodeLists(projectCode); - const uomMap = await getUOMs(projectCode); - - // 기본 속성 가져오기 + const codeListMap = await getCodeLists(projectCode); + const uomMap = await getUOMs(projectCode); const defaultAttributes = await getDefaulTAttributes(); - // 모든 register에서 itemCode를 추출하여 한 번에 조회 - const allItemCodes: string[] = []; - registers.forEach(register => { - if (register.REMARK) { - const itemCodes = extractItemCodes(register.REMARK); - allItemCodes.push(...itemCodes); - } - }); - - // 중복 제거 - const uniqueItemCodes = [...new Set(allItemCodes)]; - - // 모든 itemCode에 대한 contractItemId 조회 - const itemCodeToContractItemId = await getContractItemsByItemCodes(uniqueItemCodes , projectId); - - console.log(`${uniqueItemCodes.length}개의 고유 itemCode 중 ${itemCodeToContractItemId.size}개의 contractItem을 찾았습니다`); + /* ------------------------------------------------------------------ */ + /* 2. Contract‑item look‑up (TOOL_TYPE) */ + /* ------------------------------------------------------------------ */ + const uniqueItemCodes = [...new Set(newRegisters.filter(nr => nr.TOOL_TYPE).map(nr => nr.TOOL_TYPE as string))]; + const itemCodeToContractItemId = await getContractItemsByItemCodes(uniqueItemCodes, projectId); - // 저장할 데이터 준비 + /* ------------------------------------------------------------------ */ + /* 3. Buffers for bulk insert */ + /* ------------------------------------------------------------------ */ const mappingsToSave: TagTypeClassFormMapping[] = []; const formMetasToSave: FormMeta[] = []; const formsToSave: FormRecord[] = []; - - // 폼이 있는 contractItemId 트래킹 const contractItemIdsWithForms = new Set<number>(); + const templateDataByFormCode: Map<string, TemplateItem[]> = new Map(); - // 각 register 처리 - for (const register of registers) { - // 삭제된 register 건너뛰기 - if (register.DELETED) continue; + /* ------------------------------------------------------------------ */ + /* 4. Iterate over newRegisters */ + /* ------------------------------------------------------------------ */ + for (const newReg of newRegisters) { + const formCode = newReg.REG_TYPE_ID; + const legacy = registerMap.get(formCode); - // REMARK에서 itemCodes 추출 + /* ---------- 4‑a. templates ------------------------------------ */ + let templates: TemplateItem[] = []; + try { + const fetched = await fetchTemplateFromSEDP(projectCode, formCode); + templates = fetched.filter(t => (newReg.MAP_TMPLS?.length ? newReg.MAP_TMPLS.includes(t.TMPL_ID) : true)); + if (templates.length) templateDataByFormCode.set(formCode, templates); + } catch (e) { + console.warn(`템플릿 가져오기 실패 (${formCode})`, e); + } + const templateAttrMap = new Map<string, { hidden: boolean; seq: number; head: string }>(); + templates.forEach(t => t.GRD_LST_SETUP?.ATTS?.forEach(att => { + if (!templateAttrMap.has(att.ATT_ID)) templateAttrMap.set(att.ATT_ID, { hidden: att.HIDN_YN, seq: att.SEQ, head: att.HEAD_TEXT }); + })); - // 폼 메타용 columns 구성 + /* ---------- 4‑b. columns -------------------------------------- */ const columns: FormColumn[] = []; - - for (const linkAtt of register.LNK_ATT) { - let attribute = null; - - // 기본 속성인지 확인 - if (defaultAttributes && defaultAttributes.includes(linkAtt.ATT_ID)) { - // 기본 속성에 대한 기본 attribute 객체 생성 - attribute = { - DESC: linkAtt.ATT_ID, - VAL_TYPE: 'STRING' - }; - } else { - // 맵에서 속성 조회 - attribute = attributeMap.get(linkAtt.ATT_ID); - - // 속성을 찾지 못한 경우 다음으로 넘어감 - if (!attribute) continue; + for (const mapAtt of newReg.MAP_ATT) { + const attId = mapAtt.SEDP_ATT_ID; + const attribute = defaultAttributes.includes(attId) ? { DESC: attId, VAL_TYPE: "STRING" } as Partial<Attribute> : attributeMap.get(attId); + if (!attribute) continue; + + const tmplMeta = templateAttrMap.get(attId); + const isShi = mapAtt.INOUT === "OUT"; + + let uomSymbol: string | undefined; let uomId: string | undefined; + if (legacy?.LNK_ATT) { + const l = legacy.LNK_ATT.find(a => a.ATT_ID === attId); + if (l?.UOM_ID) { const u = uomMap.get(l.UOM_ID); if (u) { uomSymbol = u.SYMBOL; uomId = u.UOM_ID; } } } - // 컬럼 정보 생성 - const column: FormColumn = { - key: linkAtt.ATT_ID, - label: attribute.DESC, - type: (attribute.VAL_TYPE === 'LIST' || attribute.VAL_TYPE === 'DYNAMICLIST') - ? 'LIST' - : (attribute.VAL_TYPE || 'STRING'), - shi: attribute.REMARK?.toLocaleLowerCase() === "shi" + const col: FormColumn = { + key: attId, + label: attribute.DESC as string, + type: (attribute.VAL_TYPE === "LIST" || attribute.VAL_TYPE === "DYNAMICLIST") ? "LIST" : (attribute.VAL_TYPE || "STRING"), + shi: isShi, + hidden: tmplMeta?.hidden ?? false, + seq: tmplMeta?.seq ?? 0, + head: tmplMeta?.head ?? "", + ...(uomSymbol ? { uom: uomSymbol, uomId } : {}) }; - // 리스트 타입에 대한 옵션 추가 (기본 속성이 아닌 경우) - if (!defaultAttributes.includes(linkAtt.ATT_ID) && - (attribute.VAL_TYPE === 'LIST' || attribute.VAL_TYPE === 'DYNAMICLIST') && - attribute.CL_ID) { - - // 맵에서 코드 리스트 조회 - const codeList = codeListMap.get(attribute.CL_ID); - - if (codeList && codeList.VALUES) { - const options = [...new Set( - codeList.VALUES - .filter(value => value.USE_YN) - .map(value => value.VALUE) - )]; - - if (options.length > 0) { - column.options = options; - } - } + if (!defaultAttributes.includes(attId) && (attribute.VAL_TYPE === "LIST" || attribute.VAL_TYPE === "DYNAMICLIST") && attribute.CL_ID) { + const cl = codeListMap.get(attribute.CL_ID); + if (cl?.VALUES?.length) col.options = [...new Set(cl.VALUES.filter(v => v.USE_YN).map(v => v.VALUE))]; } - // UOM 정보 추가 - if (linkAtt.UOM_ID) { - const uom = uomMap.get(linkAtt.UOM_ID); - - if (uom) { - column.uom = uom.SYMBOL; - column.uomId = uom.UOM_ID; - } - } - - columns.push(column); - } - - // 컬럼이 없으면 건너뛰기 - if (columns.length === 0) { - console.log(`폼 ${register.TYPE_ID} (${register.DESC})에 컬럼이 없어 건너뜁니다`); - continue; + columns.push(col); } + if (!columns.length) { console.log(`폼 ${formCode} 건너뜀 (컬럼 없음)`); continue; } + columns.sort((a, b) => (a.seq ?? 999999) - (b.seq ?? 999999)); - // 폼 메타 데이터 준비 - formMetasToSave.push({ - projectId, - formCode: register.TYPE_ID, - formName: register.DESC, - columns: JSON.stringify(columns), - createdAt: new Date(), - updatedAt: new Date() - }); - - // 클래스 매핑 처리 - for (const classId of register.MAP_CLS_ID) { - const tagClass = tagClassMap.get(classId); - - if (!tagClass) { - console.warn(`프로젝트 ID ${projectId}에서 클래스 ID ${classId}를 찾을 수 없습니다`); - continue; - } - - const tagTypeCode = tagClass.tagTypeCode; - const tagType = tagTypeMap.get(tagTypeCode); - - if (!tagType) { - console.warn(`프로젝트 ID ${projectId}에서 태그 타입 ${tagTypeCode}를 찾을 수 없습니다`); - continue; - } + formMetasToSave.push({ projectId, formCode, formName: legacy?.DESC || formCode, columns: JSON.stringify(columns), createdAt: new Date(), updatedAt: new Date() }); - // 매핑 정보 저장 - mappingsToSave.push({ - projectId, - tagTypeLabel: tagType.description, - classLabel: tagClass.label, - formCode: register.TYPE_ID, - formName: register.DESC, - remark: register.REMARK, - ep: register.EP_ID, - createdAt: new Date(), - updatedAt: new Date() - }); + /* ---------- 4‑c. class mappings -------------------------------- */ + const classIds = new Set<string>(); + if (newReg.MAP_CLS?.ITEMS?.length) { + newReg.MAP_CLS.ITEMS.forEach(it => classIds.add(it.SEDP_OBJ_CLS_ID)); } - const itemCodes = extractItemCodes(register.REMARK || ''); - if (!itemCodes.length) { - console.log(`Register ${register.TYPE_ID} (${register.DESC})의 REMARK에 유효한 itemCode가 없습니다`); - continue; - } - // 폼 레코드 준비 - for (const itemCode of itemCodes) { - const contractItemId = itemCodeToContractItemId.get(itemCode); - - if (!contractItemId) { - console.warn(`itemCode: ${itemCode}에 대한 contractItemId를 찾을 수 없습니다`); - continue; - } - - // 폼이 있는 contractItemId 추적 - contractItemIdsWithForms.add(contractItemId); + classIds.forEach(classId => { + const cls = tagClassMap.get(classId); + if (!cls) { console.warn(`클래스 ${classId} 없음`); return; } + const tp = tagTypeMap.get(cls.tagTypeCode); + if (!tp) { console.warn(`태그 타입 ${cls.tagTypeCode} 없음`); return; } + mappingsToSave.push({ projectId, tagTypeLabel: tp.description, classLabel: cls.label, formCode, formName: legacy?.DESC || formCode, remark: newReg.TOOL_TYPE || null, ep: newReg.EP_ID || legacy?.EP_ID || "", createdAt: new Date(), updatedAt: new Date() }); + }); - formsToSave.push({ - contractItemId, - formCode: register.TYPE_ID, - formName: register.DESC, - eng: true, - createdAt: new Date(), - updatedAt: new Date() - }); + /* ---------- 4‑d. contractItem ↔ form --------------------------- */ + if (newReg.TOOL_TYPE) { + const cId = itemCodeToContractItemId.get(newReg.TOOL_TYPE); + if (cId) { contractItemIdsWithForms.add(cId); formsToSave.push({ contractItemId: cId, formCode, formName: legacy?.DESC || formCode, eng: true, createdAt: new Date(), updatedAt: new Date() }); } + else console.warn(`itemCode ${newReg.TOOL_TYPE} 의 contractItemId 없음`); } } - // 트랜잭션으로 모든 작업 처리 + /* ------------------------------------------------------------------ */ + /* 5. DB transaction */ + /* ------------------------------------------------------------------ */ let totalSaved = 0; - - await db.transaction(async (tx) => { - // 기존 데이터 삭제 + await db.transaction(async tx => { + const old = await tx.select({ id: tagTypeClassFormMappings.id }).from(tagTypeClassFormMappings).where(eq(tagTypeClassFormMappings.projectId, projectId)); + if (old.length) await tx.delete(templateItems).where(inArray(templateItems.formMappingId, old.map(o => o.id))); await tx.delete(tagTypeClassFormMappings).where(eq(tagTypeClassFormMappings.projectId, projectId)); await tx.delete(formMetas).where(eq(formMetas.projectId, projectId)); + if (contractItemIdsWithForms.size) await tx.delete(forms).where(inArray(forms.contractItemId, [...contractItemIdsWithForms])); - // 해당 contractItemId에 대한 기존 폼 삭제 - if (contractItemIdsWithForms.size > 0) { - await tx.delete(forms).where(inArray(forms.contractItemId, [...contractItemIdsWithForms])); - } - - // 매핑 저장 - if (mappingsToSave.length > 0) { - await tx.insert(tagTypeClassFormMappings).values(mappingsToSave); - totalSaved += mappingsToSave.length; - console.log(`프로젝트 ID ${projectId}에 대해 ${mappingsToSave.length}개의 태그 타입-클래스-폼 매핑을 저장했습니다`); - } + const savedMappings = mappingsToSave.length ? await tx.insert(tagTypeClassFormMappings).values(mappingsToSave).returning({ id: tagTypeClassFormMappings.id, formCode: tagTypeClassFormMappings.formCode }) : []; + totalSaved += mappingsToSave.length; - // 폼 메타 저장 - if (formMetasToSave.length > 0) { - await tx.insert(formMetas).values(formMetasToSave); - totalSaved += formMetasToSave.length; - console.log(`프로젝트 ID ${projectId}에 대해 ${formMetasToSave.length}개의 폼 메타 레코드를 저장했습니다`); + if (savedMappings.length) { + const rows: any[] = []; + savedMappings.forEach(m => (templateDataByFormCode.get(m.formCode) || []).forEach(t => rows.push({ formMappingId: m.id, tmplId: t.TMPL_ID, name: t.NAME, tmplType: t.TMPL_TYPE, sprLstSetup: t.SPR_LST_SETUP, grdLstSetup: t.GRD_LST_SETUP, sprItmLstSetup: t.SPR_ITM_LST_SETUP, description: `Template for form ${m.formCode}`, isActive: true, createdAt: new Date(), updatedAt: new Date() }))); + if (rows.length) { await tx.insert(templateItems).values(rows); totalSaved += rows.length; } } - // 폼 레코드 저장 - if (formsToSave.length > 0) { - await tx.insert(forms).values(formsToSave); - totalSaved += formsToSave.length; - console.log(`프로젝트 ID ${projectId}에 대해 ${formsToSave.length}개의 폼 레코드를 저장했습니다`); - } + if (formMetasToSave.length) { await tx.insert(formMetas).values(formMetasToSave); totalSaved += formMetasToSave.length; } + if (formsToSave.length) { await tx.insert(forms).values(formsToSave); totalSaved += formsToSave.length; } }); return totalSaved; - } catch (error) { - console.error(`폼 매핑 및 메타 저장 실패 (프로젝트 ID: ${projectId}):`, error); - throw error; + } catch (err) { + console.error(`폼 매핑 및 메타 저장 실패 (프로젝트 ID:${projectId})`, err); + throw err; } } + // 메인 동기화 함수 export async function syncTagFormMappings() { try { @@ -973,9 +1081,10 @@ export async function syncTagFormMappings() { try { // 레지스터 데이터 가져오기 const registers = await getRegisters(project.code); + const newRegisters = await getNewRegisters(project.code); // 데이터베이스에 저장 - const count = await saveFormMappingsAndMetas(project.id, project.code, registers); + const count = await saveFormMappingsAndMetas(project.id, project.code, registers, newRegisters); return { project: project.code, success: true, diff --git a/lib/tag-numbering/table/tagNumbering-table-columns.tsx b/lib/tag-numbering/table/tagNumbering-table-columns.tsx index 6e9b8191..1f3abfc4 100644 --- a/lib/tag-numbering/table/tagNumbering-table-columns.tsx +++ b/lib/tag-numbering/table/tagNumbering-table-columns.tsx @@ -90,7 +90,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<ViewTag if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/tags/table/tag-table-column.tsx b/lib/tags/table/tag-table-column.tsx index 47746000..80c25464 100644 --- a/lib/tags/table/tag-table-column.tsx +++ b/lib/tags/table/tag-table-column.tsx @@ -100,7 +100,7 @@ export function getColumns({ header: ({ column }) => ( <DataTableColumnHeaderSimple column={column} title="Created At" /> ), - cell: ({ cell }) => formatDate(cell.getValue() as Date), + cell: ({ cell }) => formatDate(cell.getValue() as Date, "KR"), meta: { excelHeader: "created At" }, @@ -113,7 +113,7 @@ export function getColumns({ header: ({ column }) => ( <DataTableColumnHeaderSimple column={column} title="Updated At" /> ), - cell: ({ cell }) => formatDate(cell.getValue() as Date), + cell: ({ cell }) => formatDate(cell.getValue() as Date, "KR"), meta: { excelHeader: "updated At" }, diff --git a/lib/tasks/table/tasks-table-columns.tsx b/lib/tasks/table/tasks-table-columns.tsx index 3737c2e5..7b0991dc 100644 --- a/lib/tasks/table/tasks-table-columns.tsx +++ b/lib/tasks/table/tasks-table-columns.tsx @@ -219,7 +219,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Task>[] if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // code etc... diff --git a/lib/tbe/table/comments-sheet.tsx b/lib/tbe/table/comments-sheet.tsx index 0952209d..35c29d39 100644 --- a/lib/tbe/table/comments-sheet.tsx +++ b/lib/tbe/table/comments-sheet.tsx @@ -178,7 +178,7 @@ export function CommentSheet({ </div> )} </TableCell> - <TableCell> { c.createdAt ? formatDate(c.createdAt): "-"}</TableCell> + <TableCell> { c.createdAt ? formatDate(c.createdAt, "KR"): "-"}</TableCell> <TableCell> {c.commentedBy ?? "-"} </TableCell> diff --git a/lib/tbe/table/file-dialog.tsx b/lib/tbe/table/file-dialog.tsx index b569f2b1..d22671da 100644 --- a/lib/tbe/table/file-dialog.tsx +++ b/lib/tbe/table/file-dialog.tsx @@ -118,7 +118,7 @@ export function TBEFileDialog({ <FileListInfo className="flex-1 min-w-0"> <FileListName className="text-sm font-medium truncate">{file.fileName}</FileListName> <FileListDescription className="text-xs text-muted-foreground"> - {file.uploadedAt ? formatDateTime(file.uploadedAt) : ""} + {file.uploadedAt ? formatDateTime(file.uploadedAt, "KR") : ""} </FileListDescription> </FileListInfo> </div> diff --git a/lib/tbe/table/tbe-table-columns.tsx b/lib/tbe/table/tbe-table-columns.tsx index 8f0de88c..f30cd0e0 100644 --- a/lib/tbe/table/tbe-table-columns.tsx +++ b/lib/tbe/table/tbe-table-columns.tsx @@ -215,7 +215,7 @@ export function getColumns({ if (cfg.id === "tbeUpdated") { const dateVal = val as Date | undefined if (!dateVal) return null - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // 그 외 필드는 기본 값 표시 diff --git a/lib/tech-project-avl/table/accepted-quotations-table-columns.tsx b/lib/tech-project-avl/table/accepted-quotations-table-columns.tsx index 68a61f0a..dae19395 100644 --- a/lib/tech-project-avl/table/accepted-quotations-table-columns.tsx +++ b/lib/tech-project-avl/table/accepted-quotations-table-columns.tsx @@ -293,7 +293,7 @@ export function getColumns(): ColumnDef<AcceptedQuotationItem>[] { ),
cell: ({ row }) => (
<div>
- {row.original.dueDate ? formatDate(row.original.dueDate) : "-"}
+ {row.original.dueDate ? formatDate(row.original.dueDate, "KR") : "-"}
</div>
),
enableSorting: true,
@@ -309,7 +309,7 @@ export function getColumns(): ColumnDef<AcceptedQuotationItem>[] { ),
cell: ({ row }) => (
<div>
- {row.original.acceptedAt ? formatDate(row.original.acceptedAt) : "-"}
+ {row.original.acceptedAt ? formatDate(row.original.acceptedAt, "KR") : "-"}
</div>
),
enableSorting: true,
diff --git a/lib/tech-vendor-candidates/table/candidates-table-columns.tsx b/lib/tech-vendor-candidates/table/candidates-table-columns.tsx index 113927cf..aa6d0ef1 100644 --- a/lib/tech-vendor-candidates/table/candidates-table-columns.tsx +++ b/lib/tech-vendor-candidates/table/candidates-table-columns.tsx @@ -156,7 +156,7 @@ const actionsColumn: ColumnDef<VendorCandidatesWithVendorInfo> = { if (cfg.id === "createdAt" ||cfg.id === "updatedAt" ) { const dateVal = cell.getValue() as Date - return formatDateTime(dateVal) + return formatDateTime(dateVal, "KR") } // code etc... diff --git a/lib/tech-vendors/contacts-table/contact-table-columns.tsx b/lib/tech-vendors/contacts-table/contact-table-columns.tsx index f80fae33..fece5013 100644 --- a/lib/tech-vendors/contacts-table/contact-table-columns.tsx +++ b/lib/tech-vendors/contacts-table/contact-table-columns.tsx @@ -146,12 +146,12 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } diff --git a/lib/tech-vendors/table/tech-vendors-table-columns.tsx b/lib/tech-vendors/table/tech-vendors-table-columns.tsx index f690d266..69396c99 100644 --- a/lib/tech-vendors/table/tech-vendors-table-columns.tsx +++ b/lib/tech-vendors/table/tech-vendors-table-columns.tsx @@ -318,7 +318,7 @@ export function getColumns({ setRowAction, router, openItemsDialog }: GetColumns // 날짜 컬럼 포맷팅 if (cfg.type === "date" && cell.getValue()) { - return formatDate(cell.getValue() as Date); + return formatDate(cell.getValue() as Date, "KR"); } return cell.getValue(); diff --git a/lib/techsales-rfq/service.ts b/lib/techsales-rfq/service.ts index 14d7a45e..9689e855 100644 --- a/lib/techsales-rfq/service.ts +++ b/lib/techsales-rfq/service.ts @@ -634,7 +634,7 @@ export async function sendTechSalesRfqToVendors(input: { projectCode: rfq.biddingProject?.pspid || '', projectName: rfq.biddingProject?.projNm || '', description: rfq.remark || '', - dueDate: rfq.dueDate ? formatDate(rfq.dueDate) : 'N/A', + dueDate: rfq.dueDate ? formatDate(rfq.dueDate, "KR") : 'N/A', materialCode: rfq.materialCode || '', type: rfq.rfqType || 'SHIP', }, diff --git a/lib/techsales-rfq/table/detail-table/quotation-history-dialog.tsx b/lib/techsales-rfq/table/detail-table/quotation-history-dialog.tsx index 0195b10c..ce701e13 100644 --- a/lib/techsales-rfq/table/detail-table/quotation-history-dialog.tsx +++ b/lib/techsales-rfq/table/detail-table/quotation-history-dialog.tsx @@ -137,7 +137,7 @@ function QuotationCard({ <div>
<p className="text-sm font-medium text-muted-foreground">유효 기한</p>
<p className="text-sm">
- {data.validUntil ? formatDate(data.validUntil) : "미설정"}
+ {data.validUntil ? formatDate(data.validUntil, "KR") : "미설정"}
</p>
</div>
</div>
@@ -187,8 +187,8 @@ function QuotationCard({ <Clock className="size-3" />
<span>
{isCurrent
- ? `수정: ${data.updatedAt ? formatDate(data.updatedAt) : "N/A"}`
- : `변경: ${revisedAt ? formatDate(revisedAt) : "N/A"}`
+ ? `수정: ${data.updatedAt ? formatDate(data.updatedAt, "KR") : "N/A"}`
+ : `변경: ${revisedAt ? formatDate(revisedAt, "KR") : "N/A"}`
}
</span>
</div>
diff --git a/lib/techsales-rfq/table/detail-table/vendor-communication-drawer.tsx b/lib/techsales-rfq/table/detail-table/vendor-communication-drawer.tsx index 4172ccd7..0312451d 100644 --- a/lib/techsales-rfq/table/detail-table/vendor-communication-drawer.tsx +++ b/lib/techsales-rfq/table/detail-table/vendor-communication-drawer.tsx @@ -351,7 +351,7 @@ export function VendorCommunicationDrawer({ {selectedAttachment.fileName} </DialogTitle> <DialogDescription> - {formatFileSize(selectedAttachment.fileSize)} • {formatDateTime(selectedAttachment.uploadedAt)} + {formatFileSize(selectedAttachment.fileSize)} • {formatDateTime(selectedAttachment.uploadedAt, "KR")} </DialogDescription> </DialogHeader> diff --git a/lib/techsales-rfq/table/rfq-table-column.tsx b/lib/techsales-rfq/table/rfq-table-column.tsx index 3009e036..89054d0e 100644 --- a/lib/techsales-rfq/table/rfq-table-column.tsx +++ b/lib/techsales-rfq/table/rfq-table-column.tsx @@ -234,7 +234,7 @@ export function getColumns({ ), cell: ({ cell }) => { const value = cell.getValue(); - return value ? formatDateTime(value as Date) : ""; + return value ? formatDateTime(value as Date, "KR") : ""; }, meta: { excelHeader: "등록일" @@ -249,7 +249,7 @@ export function getColumns({ ), cell: ({ cell }) => { const value = cell.getValue(); - return value ? formatDateTime(value as Date) : ""; + return value ? formatDateTime(value as Date, "KR") : ""; }, meta: { excelHeader: "수정일" diff --git a/lib/techsales-rfq/table/tech-sales-quotation-attachments-sheet.tsx b/lib/techsales-rfq/table/tech-sales-quotation-attachments-sheet.tsx index 21c61773..6d6bde5a 100644 --- a/lib/techsales-rfq/table/tech-sales-quotation-attachments-sheet.tsx +++ b/lib/techsales-rfq/table/tech-sales-quotation-attachments-sheet.tsx @@ -190,7 +190,7 @@ export function TechSalesQuotationAttachmentsSheet({ </Badge>
</div>
<p className="text-xs text-muted-foreground mt-1">
- {formatDate(attachment.createdAt)}
+ {formatDate(attachment.createdAt, "KR")}
</p>
{attachment.description && (
<p className="text-xs text-muted-foreground mt-1 break-words">
diff --git a/lib/techsales-rfq/table/tech-sales-rfq-attachments-sheet.tsx b/lib/techsales-rfq/table/tech-sales-rfq-attachments-sheet.tsx index fa9be9e3..0593206a 100644 --- a/lib/techsales-rfq/table/tech-sales-rfq-attachments-sheet.tsx +++ b/lib/techsales-rfq/table/tech-sales-rfq-attachments-sheet.tsx @@ -379,7 +379,7 @@ export function TechSalesRfqAttachmentsSheet({ {existingFields.map((field, index) => { const typeLabel = attachmentConfig.fileTypeLabel const sizeText = field.fileSize ? prettyBytes(field.fileSize) : "알 수 없음" - const dateText = field.createdAt ? formatDate(field.createdAt) : "" + const dateText = field.createdAt ? formatDate(field.createdAt, "KR") : "" return ( <div key={field.id} className="flex items-start justify-between p-3 border rounded-md gap-3"> diff --git a/lib/users/access-control/users-table-columns.tsx b/lib/users/access-control/users-table-columns.tsx index 7e510b96..f832085d 100644 --- a/lib/users/access-control/users-table-columns.tsx +++ b/lib/users/access-control/users-table-columns.tsx @@ -95,7 +95,7 @@ export function getColumns(): ColumnDef<User>[] { if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "domain") { diff --git a/lib/users/table/users-table-columns.tsx b/lib/users/table/users-table-columns.tsx index c0eb9520..217fefcf 100644 --- a/lib/users/table/users-table-columns.tsx +++ b/lib/users/table/users-table-columns.tsx @@ -99,7 +99,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<UserVie if (cfg.id === "created_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "roles") { diff --git a/lib/vendor-candidates/table/candidates-table-columns.tsx b/lib/vendor-candidates/table/candidates-table-columns.tsx index 113927cf..aa6d0ef1 100644 --- a/lib/vendor-candidates/table/candidates-table-columns.tsx +++ b/lib/vendor-candidates/table/candidates-table-columns.tsx @@ -156,7 +156,7 @@ const actionsColumn: ColumnDef<VendorCandidatesWithVendorInfo> = { if (cfg.id === "createdAt" ||cfg.id === "updatedAt" ) { const dateVal = cell.getValue() as Date - return formatDateTime(dateVal) + return formatDateTime(dateVal, "KR") } // code etc... diff --git a/lib/vendor-candidates/table/view-candidate_logs-dialog.tsx b/lib/vendor-candidates/table/view-candidate_logs-dialog.tsx index 8f0ea2eb..c429826a 100644 --- a/lib/vendor-candidates/table/view-candidate_logs-dialog.tsx +++ b/lib/vendor-candidates/table/view-candidate_logs-dialog.tsx @@ -105,7 +105,7 @@ export function ViewCandidateLogsDialog({ `"${log.comment?.replace(/"/g, '""') || ''}"`, `"${log.userName || ''}"`, `"${log.userEmail || ''}"`, - `"${formatDateTime(log.createdAt)}"` + `"${formatDateTime(log.createdAt, "KR")}"` ].join(",")) ].join("\n") @@ -136,7 +136,7 @@ export function ViewCandidateLogsDialog({ <Dialog open={open} onOpenChange={onOpenChange}> <DialogContent className="sm:max-w-[700px]"> <DialogHeader> - <DialogTitle>Audit Logs</DialogTitle> + <DialogTitle>협력업체 상태변경 히스토리</DialogTitle> </DialogHeader> {/* Filters and search */} @@ -211,7 +211,7 @@ export function ViewCandidateLogsDialog({ <div className="flex justify-between items-start mb-2"> <Badge className="text-xs">{log.action}</Badge> <div className="text-xs text-muted-foreground"> - {formatDateTime(log.createdAt)} + {formatDateTime(log.createdAt, "KR")} </div> </div> diff --git a/lib/vendor-evaluation-submit/table/evaluation-submissions-table-columns.tsx b/lib/vendor-evaluation-submit/table/evaluation-submissions-table-columns.tsx index aa6255bc..86355d54 100644 --- a/lib/vendor-evaluation-submit/table/evaluation-submissions-table-columns.tsx +++ b/lib/vendor-evaluation-submit/table/evaluation-submissions-table-columns.tsx @@ -212,7 +212,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Evaluat ), cell: ({ row }) => { const date = row.getValue("submittedAt") as Date; - return date ? formatDate(date) : ( + return date ? formatDate(date, "KR") : ( <span className="text-muted-foreground">-</span> ); }, @@ -234,7 +234,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Evaluat return ( <div className="space-y-1"> - <div className="text-sm">{formatDate(reviewedAt)}</div> + <div className="text-sm">{formatDate(reviewedAt, "KR")}</div> {reviewedBy && ( <div className="text-xs text-muted-foreground">{reviewedBy}</div> )} @@ -436,7 +436,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Evaluat ), cell: ({ row }) => { const date = row.getValue("createdAt") as Date; - return formatDate(date); + return formatDate(date, "KR"); }, size: 140, }, @@ -447,7 +447,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<Evaluat ), cell: ({ row }) => { const date = row.getValue("updatedAt") as Date; - return formatDate(date); + return formatDate(date, "KR"); }, size: 140, }, diff --git a/lib/vendor-type/table/vendorTypes-table-columns.tsx b/lib/vendor-type/table/vendorTypes-table-columns.tsx index b5cfca71..a713ecc2 100644 --- a/lib/vendor-type/table/vendorTypes-table-columns.tsx +++ b/lib/vendor-type/table/vendorTypes-table-columns.tsx @@ -137,7 +137,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorT if (cfg.id === "createdAt"||cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } return row.getValue(cfg.id) ?? "" diff --git a/lib/vendor-users/table/ausers-table-columns.tsx b/lib/vendor-users/table/ausers-table-columns.tsx index 38281c7e..41b78adb 100644 --- a/lib/vendor-users/table/ausers-table-columns.tsx +++ b/lib/vendor-users/table/ausers-table-columns.tsx @@ -173,7 +173,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<UserVie if (cfg.id === "created_at") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "roles") { diff --git a/lib/vendors/contacts-table/contact-table-columns.tsx b/lib/vendors/contacts-table/contact-table-columns.tsx index f80fae33..fece5013 100644 --- a/lib/vendors/contacts-table/contact-table-columns.tsx +++ b/lib/vendors/contacts-table/contact-table-columns.tsx @@ -146,12 +146,12 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorC if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } diff --git a/lib/vendors/items-table/item-table-columns.tsx b/lib/vendors/items-table/item-table-columns.tsx index 769722e4..61bd0325 100644 --- a/lib/vendors/items-table/item-table-columns.tsx +++ b/lib/vendors/items-table/item-table-columns.tsx @@ -146,12 +146,12 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorI if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } diff --git a/lib/vendors/materials-table/item-table-columns.tsx b/lib/vendors/materials-table/item-table-columns.tsx index d2aa0f8f..6a37d404 100644 --- a/lib/vendors/materials-table/item-table-columns.tsx +++ b/lib/vendors/materials-table/item-table-columns.tsx @@ -146,12 +146,12 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<VendorM if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } diff --git a/lib/vendors/rfq-history-table/rfq-history-table-columns.tsx b/lib/vendors/rfq-history-table/rfq-history-table-columns.tsx index 7e22e96a..66ddee47 100644 --- a/lib/vendors/rfq-history-table/rfq-history-table-columns.tsx +++ b/lib/vendors/rfq-history-table/rfq-history-table-columns.tsx @@ -189,7 +189,7 @@ export function getColumns({ setRowAction, openItemsModal }: GetColumnsProps): C if (cfg.id === "dueDate" || cfg.id === "createdAt") {
column.cell = ({ row }) => (
<div className="whitespace-nowrap">
- {formatDate(row.getValue(cfg.id))}
+ {formatDate(row.getValue(cfg.id), "KR")}
</div>
)
}
diff --git a/lib/vendors/table/request-vendor-investigate-dialog.tsx b/lib/vendors/table/request-vendor-investigate-dialog.tsx index b3deafce..a0d84128 100644 --- a/lib/vendors/table/request-vendor-investigate-dialog.tsx +++ b/lib/vendors/table/request-vendor-investigate-dialog.tsx @@ -210,10 +210,10 @@ export function RequestVendorsInvestigateDialog({ <TableCell> <Badge variant={status.variant as any}>{status.text}</Badge> </TableCell> - <TableCell>{formatDate(investigation.createdAt)}</TableCell> + <TableCell>{formatDate(investigation.createdAt, "KR")}</TableCell> <TableCell> {investigation.scheduledStartAt - ? formatDate(investigation.scheduledStartAt) + ? formatDate(investigation.scheduledStartAt, "KR") : "미정"} </TableCell> </TableRow> diff --git a/lib/vendors/table/vendor-all-export.ts b/lib/vendors/table/vendor-all-export.ts index cef801fd..31ab2b52 100644 --- a/lib/vendors/table/vendor-all-export.ts +++ b/lib/vendors/table/vendor-all-export.ts @@ -184,7 +184,7 @@ function createBasicInfoSheet( representativeName: vendor.representativeName, creditRating: vendor.creditRating, cashFlowRating: vendor.cashFlowRating, - createdAt: vendor.createdAt ? formatDate(vendor.createdAt) : "", + createdAt: vendor.createdAt ? formatDate(vendor.createdAt, "KR") : "", }); }); } @@ -280,7 +280,7 @@ function createItemsSheet( itemCode: item.itemCode, itemName: item.itemName, description: item.description || "", - createdAt: item.createdAt ? formatDate(item.createdAt) : "", + createdAt: item.createdAt ? formatDate(item.createdAt, "KR") : "", }); }); } else { @@ -335,8 +335,8 @@ function createRFQsSheet( rfqNumber: rfq.rfqNumber, title: rfq.title, status: rfq.status, - requestDate: rfq.requestDate ? formatDate(rfq.requestDate) : "", - dueDate: rfq.dueDate ? formatDate(rfq.dueDate) : "", + requestDate: rfq.requestDate ? formatDate(rfq.requestDate, "KR") : "", + dueDate: rfq.dueDate ? formatDate(rfq.dueDate, "KR") : "", description: rfq.description || "", }); }); @@ -405,10 +405,10 @@ function createContractsSheet( status: contract.status, paymentTerms: contract.paymentTerms, deliveryTerms: contract.deliveryTerms, - deliveryDate: contract.deliveryDate ? formatDate(contract.deliveryDate) : "", + deliveryDate: contract.deliveryDate ? formatDate(contract.deliveryDate, "KR") : "", deliveryLocation: contract.deliveryLocation, - startDate: contract.startDate ? formatDate(contract.startDate) : "", - endDate: contract.endDate ? formatDate(contract.endDate) : "", + startDate: contract.startDate ? formatDate(contract.startDate, "KR") : "", + endDate: contract.endDate ? formatDate(contract.endDate, "KR") : "", currency: contract.currency, totalAmount: contract.totalAmount ? formatAmount(contract.totalAmount) : "", }); diff --git a/lib/vendors/table/vendors-table-columns.tsx b/lib/vendors/table/vendors-table-columns.tsx index 21086918..0a5f066f 100644 --- a/lib/vendors/table/vendors-table-columns.tsx +++ b/lib/vendors/table/vendors-table-columns.tsx @@ -375,12 +375,12 @@ export function getColumns({ setRowAction, router, userId }: GetColumnsProps): C if (cfg.id === "createdAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } if (cfg.id === "updatedAt") { const dateVal = cell.getValue() as Date - return formatDate(dateVal) + return formatDate(dateVal, "KR") } // code etc... diff --git a/lib/vendors/table/view-vendors_logs-dialog.tsx b/lib/vendors/table/view-vendors_logs-dialog.tsx index 7402ae55..521c52e9 100644 --- a/lib/vendors/table/view-vendors_logs-dialog.tsx +++ b/lib/vendors/table/view-vendors_logs-dialog.tsx @@ -104,7 +104,7 @@ export function ViewVendorLogsDialog({ `"${log.comment?.replace(/"/g, '""') || ''}"`, `"${log.userName || ''}"`, `"${log.userEmail || ''}"`, - `"${formatDateTime(log.createdAt)}"` + `"${formatDateTime(log.createdAt, "KR")}"` ].join(",")) ].join("\n") @@ -135,7 +135,7 @@ export function ViewVendorLogsDialog({ <Dialog open={open} onOpenChange={onOpenChange}> <DialogContent className="sm:max-w-[700px]"> <DialogHeader> - <DialogTitle>Audit Logs</DialogTitle> + <DialogTitle>협력업체 상태변경 히스토리</DialogTitle> </DialogHeader> {/* Filters and search */} @@ -209,7 +209,7 @@ export function ViewVendorLogsDialog({ <div className="flex justify-between items-start mb-2"> <Badge className="text-xs">{log.action}</Badge> <div className="text-xs text-muted-foreground"> - {formatDateTime(log.createdAt)} + {formatDateTime(log.createdAt, "KR")} </div> </div> diff --git a/lib/welding/repository.ts b/lib/welding/repository.ts index 1e96867b..e3351358 100644 --- a/lib/welding/repository.ts +++ b/lib/welding/repository.ts @@ -36,6 +36,8 @@ export async function selectOcrRows( // ocrRows의 모든 필드 id: ocrRows.id, tableId: ocrRows.tableId, + fileName: ocrRows.fileName, + inspectionDate: ocrRows.inspectionDate, sessionId: ocrRows.sessionId, rowIndex: ocrRows.rowIndex, reportNo: ocrRows.reportNo, diff --git a/lib/welding/table/ocr-table-columns.tsx b/lib/welding/table/ocr-table-columns.tsx index 93ee1004..d4ca9f5f 100644 --- a/lib/welding/table/ocr-table-columns.tsx +++ b/lib/welding/table/ocr-table-columns.tsx @@ -51,7 +51,25 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<OcrRow> enableSorting: false, enableHiding: false, }, - + { + accessorKey: "fileName", + header: ({ column }) => ( + <DataTableColumnHeaderSimple column={column} title="file Name" /> + ), + cell: ({ getValue }) => { + const fileName = getValue() as string + return ( + <div className="text-sm"> + {/* <Badge variant="outline" className="font-mono text-xs"> */} + {fileName || "N/A"} + {/* </Badge> */} + + </div> + ) + }, + enableSorting: true, + enableHiding: false, + }, // Report No 컬럼 { accessorKey: "reportNo", @@ -233,7 +251,25 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<OcrRow> // }, // enableSorting: true, // }, - + { + accessorKey: "inspectionDate", + header: ({ column }) => ( + <DataTableColumnHeaderSimple column={column} title="Inspection(Confirmed) Date" /> + ), + cell: ({ getValue }) => { + const inspectionDate = getValue() as string + return ( + <div className="text-sm"> + {/* <Badge variant="outline" className="font-mono text-xs"> */} + {inspectionDate || "N/A"} + {/* </Badge> */} + + </div> + ) + }, + enableSorting: true, + enableHiding: false, + }, { accessorKey: "userName", |
