diff --git a/apps/backend/db/db_setup.sql b/apps/backend/db/db_setup.sql index b2075d5e..d988d421 100644 --- a/apps/backend/db/db_setup.sql +++ b/apps/backend/db/db_setup.sql @@ -67,6 +67,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/handler.ts b/apps/backend/lambdas/reports/handler.ts index 2e8a8112..065907ce 100644 --- a/apps/backend/lambdas/reports/handler.ts +++ b/apps/backend/lambdas/reports/handler.ts @@ -81,6 +81,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 a14423b4..92d0c20b 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 @@ -123,6 +126,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 988fbc76..ae060d29 100644 --- a/apps/backend/lambdas/reports/report-service.ts +++ b/apps/backend/lambdas/reports/report-service.ts @@ -505,15 +505,17 @@ export async function uploadToS3(fileBuffer: Buffer, projectId: number, fileType 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 }; } diff --git a/shared/types/db-types.d.ts b/shared/types/db-types.d.ts index fea62bf6..1f152d9d 100644 --- a/shared/types/db-types.d.ts +++ b/shared/types/db-types.d.ts @@ -75,6 +75,7 @@ export interface BranchReports { object_url: string; project_id: number; report_id: Generated; + report_type: string; } export interface BranchUsers {