summaryrefslogtreecommitdiff
path: root/db/schema/vendorDocu.ts
diff options
context:
space:
mode:
Diffstat (limited to 'db/schema/vendorDocu.ts')
-rw-r--r--db/schema/vendorDocu.ts52
1 files changed, 51 insertions, 1 deletions
diff --git a/db/schema/vendorDocu.ts b/db/schema/vendorDocu.ts
index 812206c8..b7cef5e5 100644
--- a/db/schema/vendorDocu.ts
+++ b/db/schema/vendorDocu.ts
@@ -2086,4 +2086,54 @@ export const stageSubmissionView = pgView("stage_submission_view", {
ORDER BY ed.document_id, ist.stage_order
`);
-export type StageSubmissionView = typeof stageSubmissionView.$inferSelect \ No newline at end of file
+export type StageSubmissionView = typeof stageSubmissionView.$inferSelect
+
+// 프로젝트 커버 페이지 템플릿
+export const projectCoverTemplates = pgTable(
+ "project_cover_templates",
+ {
+ id: integer("id").primaryKey().generatedAlwaysAsIdentity(),
+ projectId: integer("project_id")
+ .notNull()
+ .references(() => projects.id, { onDelete: "cascade" }),
+
+ // 템플릿 파일 정보
+ templateName: varchar("template_name", { length: 255 }).notNull(),
+ originalFileName: varchar("original_file_name", { length: 255 }).notNull(),
+ filePath: varchar("file_path", { length: 1024 }).notNull(), // S3 또는 로컬 경로
+ fileSize: integer("file_size"),
+
+ // 템플릿 변수 설정 (JSON으로 저장)
+ variables: jsonb("variables"), // {docNumber: "{{docNumber}}", customVar1: "{{customVar1}}"} 형태
+
+ // 메타데이터
+ isActive: boolean("is_active").default(true), // 여러 템플릿 중 활성화된 것
+ createdBy: varchar("created_by", { length: 255 }),
+ updatedBy: varchar("updated_by", { length: 255 }),
+
+ createdAt: timestamp("created_at").defaultNow().notNull(),
+ updatedAt: timestamp("updated_at").defaultNow().notNull(),
+ }
+)
+
+// 생성된 커버 페이지 (실제 사용 시 생성되는 문서)
+export const generatedCoverPages = pgTable(
+ "generated_cover_pages",
+ {
+ id: integer("id").primaryKey().generatedAlwaysAsIdentity(),
+ templateId: integer("template_id")
+ .notNull()
+ .references(() => projectCoverTemplates.id, { onDelete: "cascade" }),
+
+ // 변수 값 (실제 입력된 값들)
+ variableValues: jsonb("variable_values"), // {docNumber: "DOC-2024-001", customVar1: "value"}
+
+ // 생성된 파일
+ fileName: varchar("file_name", { length: 255 }).notNull(),
+ filePath: varchar("file_path", { length: 1024 }).notNull(),
+ fileSize: integer("file_size"),
+
+ generatedBy: varchar("generated_by", { length: 255 }),
+ generatedAt: timestamp("generated_at").defaultNow().notNull(),
+ }
+)