diff --git a/backend/src/modules/invoices/gemini-extractor.service.ts b/backend/src/modules/invoices/gemini-extractor.service.ts index f1050d3..25b8189 100644 --- a/backend/src/modules/invoices/gemini-extractor.service.ts +++ b/backend/src/modules/invoices/gemini-extractor.service.ts @@ -67,12 +67,19 @@ export class GeminiExtractorService { Pay close attention to Jordanian Tax Rules (subtotal - discount + tax = grand_total). `; + // Detect MIME type based on extension + const ext = path.extname(filePath).toLowerCase(); + let mimeType = 'image/jpeg'; + if (ext === '.pdf') mimeType = 'application/pdf'; + else if (ext === '.png') mimeType = 'image/png'; + else if (ext === '.webp') mimeType = 'image/webp'; + const result = await this.model.generateContent([ prompt, { inlineData: { data: fileData.toString('base64'), - mimeType: 'image/jpeg', // Adjusted based on file extension in prod + mimeType: mimeType, }, }, ]); diff --git a/frontend/src/pages/invoices/InvoicesPage.tsx b/frontend/src/pages/invoices/InvoicesPage.tsx index 790cc11..b8e4c5e 100644 --- a/frontend/src/pages/invoices/InvoicesPage.tsx +++ b/frontend/src/pages/invoices/InvoicesPage.tsx @@ -200,23 +200,42 @@ export const InvoicesPage = () => {