summaryrefslogtreecommitdiff
path: root/db/schema/vendorData.ts
diff options
context:
space:
mode:
Diffstat (limited to 'db/schema/vendorData.ts')
-rw-r--r--db/schema/vendorData.ts38
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;