From 5b3a1afea0b348bdd22d6085aec1ff00e2ea7ce3 Mon Sep 17 00:00:00 2001 From: Jun-te kim Date: Tue, 19 Aug 2025 12:05:28 +0000 Subject: [PATCH] database from python is now linked --- .../insert_data_to_uploaded_files/route.ts | 3 +-- src/app/db/surveyDB/schema/documents.ts | 20 ++++++++++++++++++- src/app/db/surveyDB/schema/surveyDB.ts | 12 ++++++++--- src/app/db/surveyDB/utils/utility.ts | 5 +++-- .../[propertyId]/documents/UploadModal.tsx | 2 +- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/app/db/surveyDB/api/insert_data_to_uploaded_files/route.ts b/src/app/db/surveyDB/api/insert_data_to_uploaded_files/route.ts index be51420..dcc2ae7 100644 --- a/src/app/db/surveyDB/api/insert_data_to_uploaded_files/route.ts +++ b/src/app/db/surveyDB/api/insert_data_to_uploaded_files/route.ts @@ -2,8 +2,7 @@ import { NextResponse } from "next/server"; import { z, ZodError } from "zod"; import { insertUploadedFile } from "../../utils/utility"; // ensure path is correct -import { ReportTypeSchema } from "../../schema/documents"; - +import { ReportTypeSchema, reportTypeToDbLabel } from "../../schema/documents"; export const runtime = "nodejs"; // Helper: "" or whitespace -> undefined (so optional() can drop it) diff --git a/src/app/db/surveyDB/schema/documents.ts b/src/app/db/surveyDB/schema/documents.ts index 4fbf05e..f11bcb9 100644 --- a/src/app/db/surveyDB/schema/documents.ts +++ b/src/app/db/surveyDB/schema/documents.ts @@ -52,4 +52,22 @@ export const documentTypeFileTypes: Record DB enum NAME +export const reportTypeToDbLabel: Record = { + osmosis_condition_pas_2035_report: "ECO_CONDITION_REPORT", + energy_performance_report_summary_information: "ENERGY_PERFORMANCE_REPORT_SUMMARY_INFORMATION", + lodgement_xml_needed_for_lodgement_to_like_trademark: "LIG_XML", + reduce_xml_needed_to_generate_full_sap_xml: "RDSAP_XML", + full_xml_needed_for_co_ordination: "FULLSAP_XML", +}; + +// Optional reverse map (for reading from API): +export const dbLabelToReportType: Record = { + ECO_CONDITION_REPORT: "osmosis_condition_pas_2035_report", + ENERGY_PERFORMANCE_REPORT_SUMMARY_INFORMATION: "energy_performance_report_summary_information", + LIG_XML: "lodgement_xml_needed_for_lodgement_to_like_trademark", + RDSAP_XML: "reduce_xml_needed_to_generate_full_sap_xml", + FULLSAP_XML: "full_xml_needed_for_co_ordination", +}; \ No newline at end of file diff --git a/src/app/db/surveyDB/schema/surveyDB.ts b/src/app/db/surveyDB/schema/surveyDB.ts index 1e9f1f5..1c16a7a 100644 --- a/src/app/db/surveyDB/schema/surveyDB.ts +++ b/src/app/db/surveyDB/schema/surveyDB.ts @@ -1,9 +1,15 @@ import { pgTable, uuid, text, timestamp } from "drizzle-orm/pg-core"; import { pgEnum } from "drizzle-orm/pg-core"; + +export const DB_REPORT_TYPES = [ + "ECO_CONDITION_REPORT", + "ENERGY_PERFORMANCE_REPORT_SUMMARY_INFORMATION", + "LIG_XML", + "RDSAP_XML", + "FULLSAP_XML", +] as const; -import { REPORT_TYPES } from "./documents"; - -export const docTypeEnum = pgEnum("doc_type_enum", [...REPORT_TYPES]); +export const docTypeEnum = pgEnum("reporttype", DB_REPORT_TYPES); export const uploaded_files = pgTable("uploaded_files", { id: uuid("id").primaryKey().defaultRandom(), diff --git a/src/app/db/surveyDB/utils/utility.ts b/src/app/db/surveyDB/utils/utility.ts index b789c9e..5fbd0c8 100644 --- a/src/app/db/surveyDB/utils/utility.ts +++ b/src/app/db/surveyDB/utils/utility.ts @@ -1,7 +1,8 @@ // insertUploadedFile.ts import { uploaded_files } from "@/app/db/surveyDB/schema/surveyDB"; import { surveyDB } from "../connection"; -import type { ReportType } from "../schema/documents"; +import type { ReportType, ReportTypeSchema} from "../schema/documents"; +import { reportTypeToDbLabel } from "../schema/documents"; export interface UploadedFileInput { s3JsonUri?: string; // optional @@ -18,7 +19,7 @@ export async function insertUploadedFile(data: UploadedFileInput) { .values({ s3JsonUri: data.s3JsonUri ?? null, // Pass null if missing s3FileUri: data.s3FileUri, - docType: data.docType, + docType: reportTypeToDbLabel[data.docType], // map UI value -> DB enum NAME s3FileUploadTimestamp: data.s3FileUploadTimestamp, s3JsonUploadTimestamp: data.s3JsonUploadTimestamp ?? null, // Pass null if missing uprn: data.uprn, diff --git a/src/app/portfolio/[slug]/building-passport/[propertyId]/documents/UploadModal.tsx b/src/app/portfolio/[slug]/building-passport/[propertyId]/documents/UploadModal.tsx index 4619430..c44e654 100644 --- a/src/app/portfolio/[slug]/building-passport/[propertyId]/documents/UploadModal.tsx +++ b/src/app/portfolio/[slug]/building-passport/[propertyId]/documents/UploadModal.tsx @@ -128,7 +128,7 @@ export const UploadModal = ({ open, onClose, documentType, uprn }: UploadModalPr console.error("DB insert failed:", err); throw new Error("Failed to insert uploaded file record"); } - + console.log("returned",res.json()); // Success — close the dialog and let parent refresh UI onClose(); } catch (err) {