summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-09 12:19:05 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-09 12:19:05 +0000
commit6d654b1ba2c19e0bf1745b636908e3b00a0f02c7 (patch)
treef6d48c0d3a65b428a828acea5db65db8e7bf0db8
parent44794a8628997c0d979adb5bd6711cd848b3e397 (diff)
(대표님) 20250709 변경사항 (약 18시 30분까지)
-rw-r--r--app/[lng]/evcp/(evcp)/b-rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/evcp/(evcp)/budgetary-rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/evcp/(evcp)/budgetary/[id]/layout.tsx2
-rw-r--r--app/[lng]/evcp/(evcp)/project-gtc/page.tsx2
-rw-r--r--app/[lng]/evcp/(evcp)/rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/partners/(partners)/vendor-data/layout.tsx2
-rw-r--r--app/[lng]/procurement/(procurement)/b-rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/procurement/(procurement)/budgetary-rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/procurement/(procurement)/budgetary/[id]/layout.tsx2
-rw-r--r--app/[lng]/procurement/(procurement)/project-gtc/page.tsx2
-rw-r--r--app/[lng]/procurement/(procurement)/rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/sales/(sales)/budgetary-rfq/[id]/layout.tsx2
-rw-r--r--app/[lng]/sales/(sales)/budgetary/[id]/layout.tsx2
-rw-r--r--app/api/ocr/enhanced/route.ts41
-rw-r--r--app/api/ocr/utils/tableExtraction.ts651
-rw-r--r--components/form-data/form-data-table-columns.tsx218
-rw-r--r--components/form-data/spreadJS-dialog copy.tsx539
-rw-r--r--components/form-data/spreadJS-dialog.tsx498
-rw-r--r--components/information/information-button.tsx2
-rw-r--r--components/information/information-client.tsx2
-rw-r--r--components/notice/notice-client.tsx2
-rw-r--r--components/pq/pq-review-detail.tsx4
-rw-r--r--components/pq/pq-review-table.tsx2
-rw-r--r--config/dashboard-table.ts2
-rw-r--r--config/menuConfig.ts114
-rw-r--r--db/migrations/0205_perfect_zzzax.sql23
-rw-r--r--db/migrations/meta/0205_snapshot.json38522
-rw-r--r--db/migrations/meta/_journal.json7
-rw-r--r--db/schema/ocr.ts2
-rw-r--r--db/schema/vendorData.ts243
-rw-r--r--lib/admin-users/table/ausers-table-columns.tsx2
-rw-r--r--lib/b-rfq/attachment/attachment-columns.tsx8
-rw-r--r--lib/b-rfq/attachment/revision-dialog.tsx2
-rw-r--r--lib/b-rfq/final/final-rfq-detail-columns.tsx4
-rw-r--r--lib/b-rfq/initial/initial-rfq-detail-columns.tsx6
-rw-r--r--lib/b-rfq/service.ts37
-rw-r--r--lib/b-rfq/vendor-response/vendor-responses-table.tsx12
-rw-r--r--lib/basic-contract/status/basic-contract-columns.tsx2
-rw-r--r--lib/basic-contract/template/basic-contract-template-columns.tsx2
-rw-r--r--lib/bidding-projects/table/projects-table-columns.tsx2
-rw-r--r--lib/cbe/table/cbe-table-columns.tsx2
-rw-r--r--lib/cbe/table/comments-sheet.tsx2
-rw-r--r--lib/dashboard/dashboard-client.tsx6
-rw-r--r--lib/equip-class/table/equipClass-table-columns.tsx2
-rw-r--r--lib/esg-check-list/table/esg-evaluations-table-columns.tsx4
-rw-r--r--lib/evaluation-submit/table/evaluation-submissions-table-columns.tsx4
-rw-r--r--lib/form-list/table/formLists-table-columns.tsx2
-rw-r--r--lib/incoterms/table/incoterms-table-columns.tsx2
-rw-r--r--lib/items-tech/table/hull/offshore-hull-table-columns.tsx4
-rw-r--r--lib/items-tech/table/ship/items-ship-table-columns.tsx4
-rw-r--r--lib/items-tech/table/top/offshore-top-table-columns.tsx4
-rw-r--r--lib/items/table/items-table-columns.tsx2
-rw-r--r--lib/login-session/table/login-sessions-table-columns.tsx4
-rw-r--r--lib/page-visits/table/page-visits-table-columns.tsx2
-rw-r--r--lib/payment-terms/table/payment-terms-table-columns.tsx2
-rw-r--r--lib/po/service.ts2
-rw-r--r--lib/po/table/item-dialog.tsx2
-rw-r--r--lib/po/table/po-table-columns.tsx2
-rw-r--r--lib/poa/table/poa-table-columns.tsx2
-rw-r--r--lib/pq/pq-review-table-new/vendors-table-columns.tsx4
-rw-r--r--lib/pq/pq-review-table/vendors-table-columns.tsx4
-rw-r--r--lib/pq/table/pq-table-column.tsx4
-rw-r--r--lib/procurement-rfqs/services.ts4
-rw-r--r--lib/procurement-rfqs/table/detail-table/vendor-communication-drawer.tsx4
-rw-r--r--lib/procurement-rfqs/table/pr-item-dialog.tsx2
-rw-r--r--lib/project-avl/table/projectAVL-table-columns.tsx2
-rw-r--r--lib/project-gtc/table/project-gtc-table-columns.tsx4
-rw-r--r--lib/projects/table/projects-table-columns.tsx2
-rw-r--r--lib/qna/table/qna-table-columns.tsx4
-rw-r--r--lib/rfqs/cbe-table/cbe-table-columns.tsx2
-rw-r--r--lib/rfqs/cbe-table/comments-sheet.tsx2
-rw-r--r--lib/rfqs/cbe-table/invite-vendors-dialog.tsx6
-rw-r--r--lib/rfqs/table/attachment-rfq-sheet.tsx2
-rw-r--r--lib/rfqs/table/rfqs-table-columns.tsx2
-rw-r--r--lib/rfqs/tbe-table/comments-sheet.tsx2
-rw-r--r--lib/rfqs/tbe-table/file-dialog.tsx2
-rw-r--r--lib/rfqs/tbe-table/tbe-table-columns.tsx2
-rw-r--r--lib/rfqs/tbe-table/vendor-contact/vendor-contact-table-column.tsx4
-rw-r--r--lib/rfqs/validations.ts2
-rw-r--r--lib/roles/table/roles-table-columns.tsx2
-rw-r--r--lib/roles/userTable/assginedUsers-table-columns.tsx2
-rw-r--r--lib/sedp/sync-form copy.ts1037
-rw-r--r--lib/sedp/sync-form.ts503
-rw-r--r--lib/tag-numbering/table/tagNumbering-table-columns.tsx2
-rw-r--r--lib/tags/table/tag-table-column.tsx4
-rw-r--r--lib/tasks/table/tasks-table-columns.tsx2
-rw-r--r--lib/tbe/table/comments-sheet.tsx2
-rw-r--r--lib/tbe/table/file-dialog.tsx2
-rw-r--r--lib/tbe/table/tbe-table-columns.tsx2
-rw-r--r--lib/tech-project-avl/table/accepted-quotations-table-columns.tsx4
-rw-r--r--lib/tech-vendor-candidates/table/candidates-table-columns.tsx2
-rw-r--r--lib/tech-vendors/contacts-table/contact-table-columns.tsx4
-rw-r--r--lib/tech-vendors/table/tech-vendors-table-columns.tsx2
-rw-r--r--lib/techsales-rfq/service.ts2
-rw-r--r--lib/techsales-rfq/table/detail-table/quotation-history-dialog.tsx6
-rw-r--r--lib/techsales-rfq/table/detail-table/vendor-communication-drawer.tsx2
-rw-r--r--lib/techsales-rfq/table/rfq-table-column.tsx4
-rw-r--r--lib/techsales-rfq/table/tech-sales-quotation-attachments-sheet.tsx2
-rw-r--r--lib/techsales-rfq/table/tech-sales-rfq-attachments-sheet.tsx2
-rw-r--r--lib/users/access-control/users-table-columns.tsx2
-rw-r--r--lib/users/table/users-table-columns.tsx2
-rw-r--r--lib/vendor-candidates/table/candidates-table-columns.tsx2
-rw-r--r--lib/vendor-candidates/table/view-candidate_logs-dialog.tsx6
-rw-r--r--lib/vendor-evaluation-submit/table/evaluation-submissions-table-columns.tsx8
-rw-r--r--lib/vendor-type/table/vendorTypes-table-columns.tsx2
-rw-r--r--lib/vendor-users/table/ausers-table-columns.tsx2
-rw-r--r--lib/vendors/contacts-table/contact-table-columns.tsx4
-rw-r--r--lib/vendors/items-table/item-table-columns.tsx4
-rw-r--r--lib/vendors/materials-table/item-table-columns.tsx4
-rw-r--r--lib/vendors/rfq-history-table/rfq-history-table-columns.tsx2
-rw-r--r--lib/vendors/table/request-vendor-investigate-dialog.tsx4
-rw-r--r--lib/vendors/table/vendor-all-export.ts14
-rw-r--r--lib/vendors/table/vendors-table-columns.tsx4
-rw-r--r--lib/vendors/table/view-vendors_logs-dialog.tsx6
-rw-r--r--lib/welding/repository.ts2
-rw-r--r--lib/welding/table/ocr-table-columns.tsx40
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",