summaryrefslogtreecommitdiff
path: root/db/schema/basicContractDocumnet.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-19 06:15:43 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-19 06:15:43 +0000
commitc92bd1b8caa6ddabe6acee42018262febd5d91fb (patch)
tree833a62c9577894b0f77d3677d4d0274e1cb99385 /db/schema/basicContractDocumnet.ts
parent9bf5b15734cdf87a02c68b2d2a25046a0678a037 (diff)
(임수민) 기본계약 코멘트, 법무검토 수정
Diffstat (limited to 'db/schema/basicContractDocumnet.ts')
-rw-r--r--db/schema/basicContractDocumnet.ts11
1 files changed, 9 insertions, 2 deletions
diff --git a/db/schema/basicContractDocumnet.ts b/db/schema/basicContractDocumnet.ts
index 0f335e90..8cfd3baa 100644
--- a/db/schema/basicContractDocumnet.ts
+++ b/db/schema/basicContractDocumnet.ts
@@ -6,6 +6,7 @@ import { biddingCompanies } from './bidding';
import { rfqLastVendorResponses } from './rfqVendor';
import { rfqLastDetails } from './rfqLast';
import { generalContracts } from './generalContract';
+import { legalWorks } from './legal';
export const basicContractTemplates = pgTable('basic_contract_templates', {
id: integer("id").primaryKey().generatedAlwaysAsIdentity(),
@@ -60,6 +61,7 @@ export const basicContract = pgTable('basic_contract', {
deadline: date('deadline').notNull(), // 마감일 (요청일로부터 10일 후)
vendorSignedAt: timestamp('vendor_signed_at'), // 협력업체 서명일
buyerSignedAt: timestamp('buyer_signed_at'), // 구매팀 서명일
+ negotiationCompletedAt: timestamp('negotiation_completed_at'), // GTC 협의 완료일
legalReviewRequestedAt: timestamp('legal_review_requested_at'), // 법무검토 요청일
legalReviewCompletedAt: timestamp('legal_review_completed_at'), // 법무검토 완료일
@@ -89,6 +91,7 @@ export const basicContractView = pgView('basic_contract_view').as((qb) => {
deadline: sql<string | null>`${basicContract.deadline}`.as('deadline'),
vendorSignedAt: sql<Date | null>`${basicContract.vendorSignedAt}`.as('vendor_signed_at'),
buyerSignedAt: sql<Date | null>`${basicContract.buyerSignedAt}`.as('buyer_signed_at'),
+ negotiationCompletedAt: sql<Date | null>`${basicContract.negotiationCompletedAt}`.as('negotiation_completed_at'),
legalReviewRequestedAt: sql<Date | null>`${basicContract.legalReviewRequestedAt}`.as('legal_review_requested_at'),
legalReviewCompletedAt: sql<Date | null>`${basicContract.legalReviewCompletedAt}`.as('legal_review_completed_at'),
@@ -110,7 +113,10 @@ export const basicContractView = pgView('basic_contract_view').as((qb) => {
templateStatus: sql<string | null>`${basicContractTemplates.status}`.as('template_status'),
validityPeriod: sql<number | null>`${basicContractTemplates.validityPeriod}`.as('validity_period'),
legalReviewRequired: sql<boolean | null>`${basicContractTemplates.legalReviewRequired}`.as('legal_review_required'),
-
+
+ // 법무검토 상태 (legalWorks에서 가져옴)
+ legalReviewStatus: sql<string | null>`${legalWorks.status}`.as('legal_review_status'),
+
// 템플릿 파일 정보
templateFilePath: sql<string | null>`${basicContractTemplates.filePath}`.as('template_file_path'),
templateFileName: sql<string | null>`${basicContractTemplates.fileName}`.as('template_file_name'),
@@ -130,7 +136,8 @@ export const basicContractView = pgView('basic_contract_view').as((qb) => {
.from(basicContract)
.leftJoin(vendors, eq(basicContract.vendorId, vendors.id))
.leftJoin(users, eq(basicContract.requestedBy, users.id))
- .leftJoin(basicContractTemplates, eq(basicContract.templateId, basicContractTemplates.id));
+ .leftJoin(basicContractTemplates, eq(basicContract.templateId, basicContractTemplates.id))
+ .leftJoin(legalWorks, eq(basicContract.id, legalWorks.basicContractId));
});
// 타입 정의