import { Injectable, NotFoundException } from "@nestjs/common"; import { ExpertInsurerService } from "src/expert-insurer/expert-insurer.service"; import { buildInsurerFileReport } from "./case-expert-report.builder"; import { CaseExpertReportPdfService } from "./case-expert-report-pdf.service"; import { InsurerFileReportPdfResult } from "./case-expert-report.types"; @Injectable() export class CaseExpertReportService { constructor( private readonly expertInsurerService: ExpertInsurerService, private readonly pdfService: CaseExpertReportPdfService, ) {} async generateForInsurer( publicId: string, actor: { clientKey?: string }, ): Promise { const clientKey = actor?.clientKey; if (!clientKey) { throw new NotFoundException("Insurer context not found"); } const file = await this.expertInsurerService.retrieveFileDetailsByPublicId( clientKey, publicId, ); const model = buildInsurerFileReport(file); return this.pdfService.render(model); } }