diff options
Diffstat (limited to 'db/schema/vendorData.ts')
| -rw-r--r-- | db/schema/vendorData.ts | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/db/schema/vendorData.ts b/db/schema/vendorData.ts index 01608df4..20025dc0 100644 --- a/db/schema/vendorData.ts +++ b/db/schema/vendorData.ts @@ -292,4 +292,40 @@ export const vendorDataReportTemps = pgTable("vendor_data_report_temps", { .notNull(), }); -export type VendorDataReportTemps = typeof vendorDataReportTemps.$inferSelect;
\ No newline at end of file +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; |
