From 58f66bb1752c5871e6fb585fafe7f0ad40bf6245 Mon Sep 17 00:00:00 2001 From: Shreeya Adhikari Date: Mon, 25 May 2026 21:19:54 -0400 Subject: [PATCH] Add report_type: DB column, persistence, API response --- apps/backend/db/db_setup.sql | 1 + apps/backend/lambdas/reports/db-types.d.ts | 1 + apps/backend/lambdas/reports/handler.ts | 1 + apps/backend/lambdas/reports/openapi.yaml | 6 ++++++ apps/backend/lambdas/reports/report-service.ts | 8 +++++--- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/backend/db/db_setup.sql b/apps/backend/db/db_setup.sql index c25cd888..0798eb4d 100644 --- a/apps/backend/db/db_setup.sql +++ b/apps/backend/db/db_setup.sql @@ -64,6 +64,7 @@ CREATE TABLE reports ( report_id SERIAL PRIMARY KEY, project_id INT NOT NULL REFERENCES projects(project_id) ON DELETE CASCADE, object_url TEXT NOT NULL, + report_type TEXT NOT NULL DEFAULT 'technical' CHECK (report_type IN ('technical', 'narrative')), date_created DATE NOT NULL DEFAULT CURRENT_DATE ); diff --git a/apps/backend/lambdas/reports/db-types.d.ts b/apps/backend/lambdas/reports/db-types.d.ts index f5ce7754..65983be1 100644 --- a/apps/backend/lambdas/reports/db-types.d.ts +++ b/apps/backend/lambdas/reports/db-types.d.ts @@ -65,6 +65,7 @@ export interface BranchReports { object_url: string; project_id: number; report_id: Generated; + report_type: string; } export interface BranchUsers { diff --git a/apps/backend/lambdas/reports/handler.ts b/apps/backend/lambdas/reports/handler.ts index 3f93b5fd..f9a088d9 100644 --- a/apps/backend/lambdas/reports/handler.ts +++ b/apps/backend/lambdas/reports/handler.ts @@ -72,6 +72,7 @@ export const handler = async (event: any): Promise => { ok: true, report_id: record.report_id, object_url: record.object_url, + report_type: record.report_type, }); } diff --git a/apps/backend/lambdas/reports/openapi.yaml b/apps/backend/lambdas/reports/openapi.yaml index 24d2e80f..d7683301 100644 --- a/apps/backend/lambdas/reports/openapi.yaml +++ b/apps/backend/lambdas/reports/openapi.yaml @@ -64,6 +64,9 @@ paths: type: integer object_url: type: string + report_type: + type: string + enum: [technical, narrative] date_created: type: string format: date @@ -116,6 +119,9 @@ paths: type: integer object_url: type: string + report_type: + type: string + enum: [technical, narrative] '400': description: Invalid input '401': diff --git a/apps/backend/lambdas/reports/report-service.ts b/apps/backend/lambdas/reports/report-service.ts index 616fefa3..ec93b9a6 100644 --- a/apps/backend/lambdas/reports/report-service.ts +++ b/apps/backend/lambdas/reports/report-service.ts @@ -337,15 +337,17 @@ export async function uploadToS3(pdfBuffer: Buffer, projectId: number): Promise< export async function saveReportRecord( projectId: number, objectUrl: string, -): Promise<{ report_id: number; object_url: string }> { + reportType: 'technical' | 'narrative' = 'technical', +): Promise<{ report_id: number; object_url: string; report_type: string }> { const row = await db .insertInto('branch.reports') .values({ project_id: projectId, object_url: objectUrl, + report_type: reportType, }) - .returning(['report_id', 'object_url']) + .returning(['report_id', 'object_url', 'report_type']) .executeTakeFirstOrThrow(); - return { report_id: row.report_id, object_url: row.object_url }; + return { report_id: row.report_id, object_url: row.object_url, report_type: row.report_type }; }