diff options
Diffstat (limited to 'db/schema/vendorDocu.ts')
| -rw-r--r-- | db/schema/vendorDocu.ts | 52 |
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(), + } +) |
